분류 전체보기 264

2D RPG - (15 - 2) 단검 투척 스킬 구현_02

이번 포스트에서는 단검 투척 스킬에서 단검을 위한 스크립트를 구현해보겠습니다. 1) SkillThrowingSwordControllerpublic class SkillThrowingSwordController : MonoBehaviour{ private Animator _animator; private Rigidbody2D _rigidBody2D; private CircleCollider2D _circleCollider2D; private PlayerController _playerController; private void Awake() { _animator = GetComponentInChildren(); _rigidBody2D = GetCom..

2D RPG - (15 - 1) 단검 투척 스킬 구현_01

이번 포스트에서는 캐릭터의 스킬 중에서 단검을 투척하는 스킬을 구현해보겠습니다.우선, 캐릭터가 단검을 투척하는 동작을 수행할 수 있도록 설정하는 과정과 구성을 알아보겠습니다. 1) 사용하는 요소1) 단검 투척 스킬을 사용하기 위한 액션 2) 단검 조준 / 단검 투척 / 단검 회수의 3개의 애니메이션 3) 단검 투척시 Instantiate 함수로 생성할 단검 프리팹 4) 단검이 박히거나 / 단검이 움직이는 동안 연출될 단검의 애니메이션 2) 애니메이터의 구성1) Player의 애니메이터 2) 단검(=Sword)의 애니메이터 위와 같이 필요한 구성을 준비하였습니다.이제 코드로 넘어가보겠습니다. 3) 코드3 - 1) PlayerStateAimSwordusing System.Collections;using Sy..

JobTimer

현재 상태의 코드에서는 하나의 GameRoom 만이 존재하여 문제없이 동작하지만,만약 현재 GameRoom 외에도 다른 용도의 Room들이 추가되면 동시에 개별 Room들의 작업을 처리해야 하므로 부하가 발생하게 됩니다. 따라서 이번 포스트에서는 해당 문제를 해결하기 위한 작업을 수행해보겠습니다. 1) Server - 메인 스레드에서 Tick을 통한 처리class Server{ . . . static void Main(string[] args) { . . . int roomTick = 0; while (true) { int now = System.Environment.TickCount; ..

C# 2025.01.27

패킷을 모아서 전송하기

이번 포스트에서는 이전의 포스트에서 미리 예고하였던패킷을 모아서 전송하는 방법으로 기존의 코드를 수정해보겠습니다. 1) Serverclass Server{ static Listener serverListener = new Listener(); // 새로운 채팅방을 위한 GameRoom 생성 public static GameRoom Room = new GameRoom(); static void Main(string[] args) { . . . while (true) { Room.Push(() => Room.Flush()); Thread.Sleep(250); } }} Server의..

C# 2025.01.27

GameplayAbilitySystem을 이용한 RPG 프로젝트 - (35) Secondary Attribute를 GameplayEffect로 초기화하기

이번 포스트에서는 이전에 추가만 해놓은 Secondary Attribute를 GE를 통해 초기화하겠습니다.이 과정은 Primary Attribute를 초기화하는 것과 매우 동일하므로기존의 구조를 리팩토링하여 유연성과 확장성을 높히도록 하겠습니다. 1) AuraCharacterBase#pragma once#include "CoreMinimal.h"#include "GameFramework/Character.h"#include "AbilitySystemInterface.h"#include "AuraCharacterBase.generated.h"class USkeletalMeshComponent;class UAbilitySystemComponent;class UAttributeSet;class UGamepla..

GameplayAbilitySystem을 이용한 RPG 프로젝트 - (34) Attribute와 연관된 Attribute

이번 포스트에서는 이전에 만든 Primary Attribute를 자세하게 알아보고이 Primary Attribute에 영향을 받아 동작하는 새로운 Attribute들을 알아보겠습니다. 1) Primary Attribute1) Strength : 물리적 데미지를 증가시키는 스탯2) Intelligence : 마법 데미지를 증가시키는 스탯3) Resilience : 방어구와 방어구 효율을 증가시키는 스탯4) Vigor : 체력을 증가시키는 스탯크게 위의 4가지로 구성되어 있습니다.오늘 만들어볼 Secondary Attribute의 경우 Primary Attribute에 영향을 받으면서추가적으로 Secondary Attribute끼리도 영향을 받게끔 설계하도록 하겠습니다. 2) Secondary Attribu..

GameplayAbilitySystem을 이용한 RPG 프로젝트 - (33) GE의 모디파이어_Attribute Based 파헤치기 03

이번 포스트에서는 Gameplay Effect에 사용가능한Attribute Base 모디파이어에서 다음의 3가지 요소를 알아보겠습니다.  위의 3가지 요소는 매우 간단한 방식으로 사용되는데, 다음의 식으로 이를 표현할 수 있습니다. (Backing Attribute의 값 + Pre Multiply Additive Value) * Coefficient + Post Multiply Additive Value 위의 식을 통해 Backing Attribute를 타깃 Attribute에 적용하게 됩니다.간단하게 현재 사용중인 프로젝트에서 예를 들어보겠습니다. 현재 Vigor의 값은 9입니다.이때 Pre Multiply Additive Value의 값은 3.0이므로 12.0의 값이 나옵니다.여기에 Coefficie..