-
카테고리
-
세부 분야
게임 프로그래밍
-
해결 여부
미해결
pawn, character 질문입니다.
22.01.30 18:41 작성 조회수 165
0
1. Pawn을 검사할때 IsValid로 하는 이유가 따로 있나요?
TryGetPawnOwner리턴타입을 보니 APawn* ? 같던데
그냥 if(Pawn)하면 안되나요?
2. 그리고 왜 Pawn을 ACharacter타입으로 변환하는지 궁금합니다
GetMovementComponent()가 ACharacter타입만 쓸 수 있어서 그런가요?
답변을 작성해보세요.
0
Rookiss
지식공유자2022.02.01
1. 조금 다릅니다.
객체가 진짜 메모리에서 사라지면 nullptr이겠지만
UE에서는 메모리를 알아서 관리해주기 때문에
당장 삭제를 요청해도 지연되어 삭제될 수 있습니다.
이런 경우라면 객체는 메모리가 살아있지만 유효하지 않기 때문에
미묘한 상황까지 체크하려면 IsValid로 체크해줘야 합니다.
2.
너무 소소한 부분은 알아서 고치셔도 됩니다.
기본적으로 Cast는 dynamic_cast의 역할을 해서,
1) Character일 때만 실행되길 원할 경우
2) 특정 기능이 Character에만 있는 경우
1or2의 경우에 변환을 이용하시면 됩니다.
답변 1