클릭한 위치로 캐릭터를 이동시키는 처리를 합니다.

목적지로 이동하는 처리는 CharacterMove 스크립트를 사용하면 구현 가능하고,

사용자가 마우스로 클릭한 화면 위의 위치는 InputManager 스크립트의 함수로 가져올 수 있습니다.

3D화면 공간 내에서 클릭한 위치는 어디인지 어떻게 아는지는

RayCast함수를 사용해서 화면을 클릭한 위치에서 게임 내 3D 공간의 위치를 구합니다.

---------------------------------------------------------------

이번에도 ScriptsPlayerCtrl스크립트를 생성하여 코드를 작성 합니다.

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의 캐릭터 오브젝트에 추가합니다.


주의해야 할 점!

캐릭터와 모든 것들을 전부 일단 지정을 해주셔야 할 것 같습니다.

블로그 이미지

이사가는 사람

안녕하세요 블로그를 옮기려고 생각하고 있습니다. 해당 블로그는 폐기하고 다음 다른 블로그에서 뵙도록 하겠습니다. 감사합니다!

,