[언리얼엔진 5] Cast to 캐스팅(형변환)
간단한 예를 들어보자.
친한 친구 철수에게 할말이 있어 전화를 건다. 그러고 누가 전화를 받았는데 제일 먼저 무엇을 할 것인가?
용건부터 말하지 않고 "여보세요?" "철수야" 와 같이 말할 것이다. 철수가 맞으면 이제야 할 말을 한다.
이것이 캐스팅이다.
기타 작업을 하기전 그 대상이 맞는지 확인을 한다. 캐스팅에 성공한다면 커뮤니케이션할 준비가 된 것이다. sender(송신자)는 자신의 데이터를 보낼 수 있고 수신자(receiver)는 데이터를 받거나 직접기능을 호출할 수도 있다.

성공하면 Pawn 클래스와 커뮤니케이션할 준비가 된것이다. As Pawn을 통해 Pawn에 접근할 수 있게 된 것이다. 즉 Pawn클래스의 변수나 함수에 접근할 수 있다.

다음은 PaperZDAnimNotify에서 캐스팅하는 예시이다. 전에 간단하게 Get Owning Actor를 집고가자
입력으로 AnimInstance 레퍼런스를 받는다.
출력으로 AnimInstance의 소유 액터를 반환한다.
위 노티파이는 BP_Skeleton의 AnimInstance에 속한다. 즉 Get Owning Actor노드를 통해 BP_Skeleton과 캐스팅할 수 있던 것이다. 이후 이 PaperZDAnimNotify에서 BP_Skeleton에 접근할 수 있다.

여기서는 BP_Skeleton의 Attack Damage를 알고 싶었기에 캐스팅하여 사용한 것이다.

다음은 WB_PlayerFloatingDamage라는 위젯블루프린트의 함수에 접근하고 싶어 캐스팅을 하는 예시이다. Get User Widget Object 로 해당 위젯을 캐스팅하여 가져온다.
간단하게 캐스팅은 커뮤니케이션하고 싶은 대상이 맞는지 확인을 한 후 맞다면 그 대상에 접근 할 수 있게 된다고 이해하였다. 상속(Inheritance)는 캐스팅과 밀접한 관계를 지니는데 캐스팅에 기능을 쉽게 설명하기 위해 나중에 상속을 작성할 때 추가해서 언급하겠다.