클릭한 위치로 캐릭터를 이동시키는 처리를 합니다.
목적지로 이동하는 처리는 CharacterMove 스크립트를 사용하면 구현 가능하고,
사용자가 마우스로 클릭한 화면 위의 위치는 InputManager 스크립트의 함수로 가져올 수 있습니다.
3D화면 공간 내에서 클릭한 위치는 어디인지 어떻게 아는지는
RayCast함수를 사용해서 화면을 클릭한 위치에서 게임 내 3D 공간의 위치를 구합니다.
---------------------------------------------------------------
이번에도 Scripts에 PlayerCtrl스크립트를 생성하여 코드를 작성 합니다.
using UnityEngine;
using System.Collection;
public class PlayerCtrl : MonoBehaviour {
const float RayCastMaxDistance = 100.0f;
InputManager inputManager;
void Start()
{
inputManager = FindObjectOfType<InputManager>();
}
void Update()
{
Walking();
}
void Walking()
{
if (inputManager.Clicked())
{
Vector2 clickPos = inputManager.GetCursorPosition();
Ray ray = Camera.main.ScreenPointToRay(clickPos);
RaycastHit hitInfo;
if (Physics.Raycast(ray, out hitInfo, RayCastMaxDistance, 1 << LayerMask.NameToLayer("Ground")))
{
SendMessage("SetDestination", hitInfo.point);
}
}
}
}
마지막으로 이 스크립트를 Hierarchy의 캐릭터 오브젝트에 추가합니다.
주의해야 할 점!
캐릭터와 모든 것들을 전부 일단 지정을 해주셔야 할 것 같습니다.
'프로그래밍일지 (고등학생 - 인문계) > 유니티 3D' 카테고리의 다른 글
카메라를 조종하자! - 3인칭 (1/2) (0) | 2018.08.14 |
---|---|
캐릭터를 조종하자! - 클릭 이동 (2/2) (0) | 2018.08.13 |
캐릭터를 조종하자! - 입력 관리 (2/2) (0) | 2018.08.12 |
캐릭터를 조종하자! - 입력 관리 (1/2) (0) | 2018.08.12 |
캐릭터 이동을 테스트 하자! (0) | 2018.08.11 |