작성
·
490
0
영상 10분 쯤에서 스크린샷과 같이
GetAnimInstance를 찾으신다고 하셨었는데 이 부분이 이해가 잘 되지않아 질문을 드립니다!
왜 GetAnimInstance를 찾으시는지 궁금합니다
GetAnimInstance의 반환값이 애니메이션 컴포넌트라는것을 알았는데 UMyAnimInstance의 애니메이션 컴포넌트를 반환하는건가요?
왜 AnimInstance의 초기화를 애니메이션 컴포넌트로 하는지 궁금합니다!
너무 많은 질문을 드려 죄송합니다. 하루동안 구글링을 해도 답을 찾을 수 없어 질문을 드립니다. 언제나 좋은 강의 영상 감사합니다!
답변 1
1
우리가 만든 UMyAnimInstance 클래스가
애니메이션 관리하는 용도의 클래스인 UAnimInstance를 상속 받아 만들어져 있기 때문입니다.
왜? 라는 질문은 큰 의미가 없는게, 언리얼은 이미 클래스 구조가 잡혀 있으니 그에 순응해야 합니다.
(애니메이션 관리 = UAnimInstance를 상속받은 클래스로 관리! 이런 식이죠)
상속 구조이기 때문에, 부모 클래스를 자식 클래스로 캐스팅하는 것입니다.
우리가 실제로 넣어준 것은, UMyAnimInstance 클래스이기 때문이죠.
단순히 AnimInstance가 없을 수도 있지만, UMyAnimInstance가 아닌 다른 타입 (ex. RookissAnimInstance)이라도 캐스팅이 실패하게 됩니다.
C++의 dynamic_cast와 유사하다고 보시면 됩니다.
3번은 질문이 잘 이해가 안 가네요.
빠른 답변 정말 감사합니다! 3번은 AnimInstance를 변수로 선언하시고 초기화를 하실 때 왜 GetAnimInstance로 초기화하셨는지 궁금하여 그랬습니다! 감사합니다!