🎮Unreal4/Blueprint

[UE4] AttachActorToComponent/AttachActorToActor, Get Owner, Get Component by Class 함수

공대 컴린이 2023. 1. 27. 22:24
728x90

📗 AttachActorToComponent / AttachActorToActor

AttachActorTo~ 함수는 원하는 액터에 컴포넌트를 원하는 위치에 붙일 수 있는 기능을 제공한다. 즉, 액터의 RootComponent를 제공된 컴포넌트에 어태치하며, 선택적으로 명명된 소켓에서도 어태치할 수 있다. 

 

  • 타깃: 붙이고 싶은 대상이 되는 Actor 오브젝트 레퍼런스를 연결한다. (디폴트 값: self)
  • Parent (Actor): 타깃이 붙어질 대상이 되는 Actor/Scene Component 오브젝트 레퍼런스를 연결한다. 
  • Socket Name: Parent에 붙일 선택적인 소켓의 이름을 연결한다.

사용예시)

해당 Attach 함수를 선언한 곳은 검(Sword) 액터이다. 해당 액터를 캐릭터의 Mesh에 생성해둔 "Holster_Sword" 소켓에 붙이는 기능을 구현하였다.

📘 Get Owner

선언된 블루프린트의 액터를 소유하고 있는 액터를 반환해주는 함수이다. 외부 체인을 따라 해당 컴포넌트를 소유하고 있는 AActor를 반환해준다.

 

내가 유용하게 사용했던 예시로는 플레이어에 붙여둔(Attach) 검(Sword) 액터에 Get Owner를 호출한 뒤 변수로 만든 Player 객체에 Player 형변환을 하여 Owner를 저장해두었다. Player가 성공적으로 형변환되어 실행되면 현재 프로그램이 게임모드에서 실행되고 있다고 판단할 수 있는 방법이 되었다.

📙 Get Component by Class

Get Component by Class 함수는 선택된 할당된 컴포넌트를 찾아서 반환해주는 기능을 수행한다. Get "Components" by Class 함수는 할당된 모든 컴포넌트를 배열로 반환하는 함수이다.

타깃에 컴포넌트를 찾을 액터를 연결해준 뒤, 찾고자 하는 컴포넌트를 Component Class에 설정한 뒤 같은 자료형의 컴포넌트 변수에 Return값을 저장하여 사용하면 된다.

사용예시)

캐릭터 클래스에 State Component를 생성해놓았는데, Weapon 클래스에서 해당 컴포넌트를 State 변수에 저장하는 기능을 구현해보았다.

728x90