전투시스템 설명
- 필요한거 : 무기 관리 (무기 조합)
- 무기 장착 담당, 장착이 어떻게 이루어질건지
- Weapon
- CAttackment : 무기가 붙을 모양을 결정 (검일지, 활일지, 맨몸이면 충돌체들) ⇒ 즉, 어떤거 붙을지
- CEquipment : 장착 관리 (무기 뽑는 애니메이션)
- CDoAction : 공격 관리 (붙는게 검, 장착이 검일때 공격도 검이라고 함)
- CSubAction : 부수적인거 붙일거 ⇒ 시간이 나면
- WeaponAsset : 위의 C들을 관리한다.
- WeaponComponent : WeaponAsset에 명령을 내린다.
- Item은 Item 영역 따로 작업한다.
- Item을 바꿔도 Weapon에 영향을 미치지 않는다.
- ACharacter - 플레이어, Enemy
언리얼 C와 일반 C 차이
- 직렬화 : RAM에서 SSD으로 올라가는 또는 이동장치(I/O) 로 내보내는 과정이다.
- RAM으로 들어가면 ‘역 직렬화’다.
- C에는 델리게이트, 가비지 컬렉터, 리플렉션 등이 없다.
- UPROPERTY / UFUNCTION / USTRUCT / UENUM / UCLASS
- 얘네들이 직렬화가 된 애들이다.
- 가비지 컬렉터도 있어서 필요 없다고 판단되면 자동으로 지워준다.
- 직렬화가 지원된다. = 가비지 컬렉터가 존재한다. = 에디터에도 보여진다.
- 직렬화 조건
- UObject로부터 상속받아야한다.
- generated.h에 직렬화 코드가 포함되어있다.
- UCLASS가 붙는 파일이어야 직렬화가 시작된다.
- GENERATED_BODY() : 직렬화 코드를 불러오는 메크로다.
- 리플렉션 : 구조체나 타입을 변수로 직접 사용하는 기능이다.