본문 바로가기

분류 전체보기

(4)
액터의 수명 주기(Actor Life Cycle) 아래 사진은 액터가 레벨에 어떻게 생성, 소멸 되는지를 나타낸 표 대표적인 수명 주기 스폰 액터를 스폰(인스턴싱)할 때 따르게 되는 경로입니다. SpawnActor (액터 스폰)이 호출됩니다. PostSpawnInitialize (스폰 초기화 이후)가 호출됩니다. PostActorCreated 액터 생성 이후 - 스폰된 액터의 생성 이후에 호출됩니다. 생성자같은 것이 여기에 와야 합니다. PostActorCreated (액터 생성 이후)는 PostLoad (로드 이후)와 상호 배제적입니다. ExecuteConstruction (생성 실행): OnConstruction 생성시 - 액터의 생성 지점으로, 블루프린트 액터가 컴포넌트를 만들고 블루프린트 변수를 초기화시키는 곳입니다. PostActorConstr..
언리얼 스마트 포인터 스마트 포인터의 이점 메모리 누수 방지 스마트 포인터들은 (위크 포인터 제외) 더 이상 공유된 레퍼런스가 없으면 오브젝트가 자동 소멸됩니다. 위크 레퍼런싱 위크 포인터는 참조 주기에 영향을 주지 않고, 삭제된 오브젝트를 참조하는(dangling) 포인터를 방지합니다. 선택적인 스레드 안전 언리얼 스마트 포인터 라이브러리에는 멀티스레드에 걸쳐 참조 카운팅을 관리하는 코드인 스레드 세이프(thread-safe) 코드가 포함되어 있습니다. 스레드 안정성이 필요하지 않다면 그 대신에 향상된 퍼포먼스를 구현할 수 있습니다. 런타임 안전성 쉐어드 레퍼런스는 절대 null 일 수 없으며 언제든지 참조 해제될 수 있습니다. 명확한 의도 관찰자 중에서 오브젝트의 소유자를 쉽게 분별할 수 있습니다. 메모리 스마트 포인터는..
외부 기호 참조에 대한 모듈 추가 및 추가 포함 디렉토리 설정 모듈 생성 게임플레이 모듈에는 헤더(.h)파일, C++(.cpp)파일, 빌드(.*.Build.cs)파일이 들어있어야 한다. 헤더 파일은 모듈 디렉터리의 Public폴더, 즉 [게임명]\Source[모듈명]\Public 디렉터리에 있어야 한다. 이 파일에는 모듈의 자동 생성 헤더를 포함해서, 모듈에 들어있는 클래스를 컴파일하는 데 필요한 헤더 파일이 포함된다. C++ 파일은 모듈 디렉터리의 Private 폴더, 즉 [게임명]\Source[모듈명]\Private 디렉터리에 들어가며, 모듈을 등록하고 구현한다 즉, Source폴더에 포함시킬 모듈의 build.cs, private, public 파일 혹은 폴더가 있어야한다. 이후 C++ 클래스의 형태로 구현하고 컴파일을 한 뒤, 모듈을 프로젝트에 포함시킨다. ..
델리게이트(DELEGATE) *DECLARE_DELEGATE의 종류와 Bind, Add등 바인딩 키워드 델리게이트 : 함수를 안전하게 호출할 수 있는 기능, 동일한 리턴값과 인자 타입을 가지는 여러개를 관리 장점) 간편한 문법과 안전성을 갖춰 콜백함수를 호출 가능 특징) 발행/구독의 패턴 ㄴex) 신문의 구독자가 신문 구독의 의사를 밝히고 등록하면 신문이 발행될 때 마다 동일한 시간대에 모든 구독자의 집에 신문이 배달되듯, 특정 이벤트 발생 시 델리게이트의 모든 함수를 한꺼번에 호출 가능. ㄴex2) 보스가 죽는 이벤트를 델리게이트로 등록 후 보스가 소환한 미니언들이 이를 구독하면 보스가 죽을 때 모든 미니언에게 호출 가능하다. 함수 포인터의 직접 접근이 아닌 대리자를 통한 함수 호출 방식 호출할 함수나 이를 포함하는 객체가 없어져..