Tank를 좌우로 움직이고 Tank의 Turret이 마우스 포인터의 위치대로 움직이는 기능을 구현하였다. 그리고 4개의 Turret이 Tank와의 Distance를 계산하여 설정한 Range에 들어올시 Turret이 Tank 방향으로 돌아가는 기능을 구현하였다.
Toon Tanks#1에서 발생했던 문제를 해결하였다. 부끄러운 실수 였는데 변수명을 착각해 생긴 일이였다. 포인터 선언을 아래와 같이하고
선언하지 않은 포인터를 아래와 같이하니 작동이 될 일이 없었다. 기존에 포인터를 재선언해서 문제를 해결하였지만 결국 문제의 원인은 포인터 선언의 실수 였던 것이다. 다음부터는 이런일이 없도록 할 것이다.
Local Gizmo
World Gizmo
AddActorLocalOffset : 로컬 참조 프레임에서 이 구성요소의 위치에 델타를 추가합니다.
언리얼 엔진에서의 "캐스트(Cast)"는 C++에서 객체 타입 간의 형 변환을 의미합니다. Unreal Engine에서는 주로 액터(Actor), 오브젝트(Object), 컴포넌트(Component) 등의 다양한 타입 간에 형 변환을 할 때 사용됩니다.
상속 계층 구조에서의 다형성
충격 지점 및 해당 지점의 표면 법선과 같은 추적의 한 번의 적중에 대한 정보를 포함하는 구조입니다.
Tank에서 게임이 시작되면 PlayerControllerRef에 PlayerControler의 Bool값을 저장한다.
이 값을 통해 만약 PlayerControllerRef가 True일시 HitResult에 Cursor의 Hit 정보를 저장한다. 그리고 이를 확인하기위해 DrawDebugSphere를 통해 원을 그린다. 그리고 BasePawn의 RotateTurret함수를 호출해 Tank의 Turret을 회전한다.
Tower에는 2가지 기능이 있다.
1. Player가 일정 거리안에 들어왔을때 Tower의 Turret이 Player의 방향으로 회전한다.
2. 일정 거리 안에 들어왔을때 Tower의 Projectile Spawn Point에서 DebugSphere를 소환한다.
이를 위해 매번 Tower는 Player가 거리안에 들어왔는지 검사해야한다. 이를 위해 Tick에 해당기능을 수행할 수 있게 구현하였다.
1. GetActorLocation을 통해 현재 Tower의 Location을 구하고 Tank의 location을 구해 해당 거리가 Fire Range(일정 거리)에 들어왔다면 RotateTurret을 진행하였다.
블로킹 볼륨은 스태틱 메시의 콜리전 표면 대신 사용 가능합니다. 기존 레벨에서는 벽이 없어 Cursor가 맵 맵 밖으로 나갈시 Tank의 Turret이 이상하게 회전하는 문제가 있었다. 이를 해결하기 위해 Blocking Volume을 추가하였다.