🤍 전 강의 25% 할인 중 🤍

2024년 상반기를 돌아보고 하반기에도 함께 성장해요!
인프런이 준비한 25% 할인 받으러 가기 >>

  • 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

pawn, character 질문입니다.

22.01.30 18:41 작성 조회수 165

0

1. Pawn을 검사할때 IsValid로 하는 이유가 따로 있나요?

TryGetPawnOwner리턴타입을 보니 APawn* ? 같던데

그냥 if(Pawn)하면 안되나요?

 

2. 그리고 왜 Pawn을 ACharacter타입으로 변환하는지 궁금합니다

GetMovementComponent()가 ACharacter타입만 쓸 수 있어서 그런가요?

 

답변 1

답변을 작성해보세요.

0

1. 조금 다릅니다.
객체가 진짜 메모리에서 사라지면 nullptr이겠지만
UE에서는 메모리를 알아서 관리해주기 때문에
당장 삭제를 요청해도 지연되어 삭제될 수 있습니다.
이런 경우라면 객체는 메모리가 살아있지만 유효하지 않기 때문에
미묘한 상황까지 체크하려면 IsValid로 체크해줘야 합니다.

2.
너무 소소한 부분은 알아서 고치셔도 됩니다.
기본적으로 Cast는 dynamic_cast의 역할을 해서,
1) Character일 때만 실행되길 원할 경우
2) 특정 기능이 Character에만 있는 경우
1or2의 경우에 변환을 이용하시면 됩니다.

채널톡 아이콘