전체 글330 2. Reflection & Garbage Collection (MACRO) 언리얼 엔진의 리플렉션이란? - 런타임에 자신을 검사하는 기능 - 반사된 자신의 모습을 보는 것에 비유 - C++ 데이터와 언리얼 Editor를 병합하는데 주로 사용된다. 언리얼 엔진의 Garbage Collection이란? - 참조계수 방식으로 객체를 관리한다. - 더 이상 객체가 참조되지 않으면 객체를 자동으로 삭제한다. - 이 기능을 사용하려면 클래스의 위에 UCLASS()라는 특수한 매크로를 작성해야 한다. - 그리고 멤버변수와 멤버 함수에는 UPROPERTY()라는 매크로를 작성해주어야 블루프린터와 에디터에 노출시킬 수 있다. - 그리고 헤더 파일로 "클래스명.generated.h" 를 추가해주어야 한다. 2023. 3. 22. 9. Collision Callback 구현 & Tile Tool Erase 기능 구현 Collision Callback 구현 - Notification을 함수에서 전달 받았으면, 이 Notification을 통해 실제 GameObject에 통지해주어야 한다. - 이를 위해 GameObject의 Collider 컴포넌트에서 OnCollision을 구현해서 처리를 해주었다. - 이전 포트폴리오에서는 OnCollisionEnter, OnCollision, OnCollisionExit으로 구현했는데, 아마 이번에도 비슷하게 구현하게되지 않을까 싶다. void ContactCallback::onContact(const PxContactPairHeader& pairHeader, const PxContactPair* pPairs, PxU32 iNbPairs) { for (PxU32 i = 0; i <.. 2023. 3. 22. 8. Collision Notification 구현 충돌 통지 기능 구현 - PhysX 4.1버전은 물체 간의 충돌이 일어났을 때 필터 쉐이더를 통해 어떻게 처리할 지를 구분한다. - 필터 쉐이더는 함수이며, 씬이 생성될 때 등록할 수 있다. - 필터는 Shape 객체가 가지고 있는 FilterData를 의미하고, 충돌이 일어나면 이 데이터의 word0, word1 멤버를 토대로 조사하게 된다. - word0은 자신의 레이어이고, word1은 충돌할 레이어인데, word1은 비트마스크로 되어 있어서 여러 그룹과의 충돌을 지정할 수 있다. // 두 필터가 서로 충돌플래그가 세워져 있을 경우 if ((filterData0.word0 & filterData1.word1) || (filterData1.word0 & filterData0.word1)) { pair.. 2023. 3. 21. 12. Scene Query - 1 Scene Query - 씬의 Actor와 연결된 Geometry에 대한 충돌 쿼리를 수행하는 기능을 제공한다. - raycast, sweeping, overlap 총 3가지 유형의 쿼리가 있고, 각각 1개 또는 여러 개의 결과를 반환할 수 있다. - 보다 정밀한 검사는 Geometry Query에서 수행된다. - PxScene은 두 개의 다른 검사 구조를 사용하는데 하나는 정적 Actor, 다른 하나는 동적 Actor이다. Raycast - PxScene::raycast() 쿼리는 사용자가 정의한 레이를 전체 씬과 투영한다. - 이 방법을 통해 주어진 레이를 따라 가장 가까운 교차점을 찾을 수 있다. - 아래는 예제 코드이다. PxScene* scene; PxVec3 origin = ...; // [i.. 2023. 3. 21. 이전 1 ··· 39 40 41 42 43 44 45 ··· 83 다음