상세 컨텐츠

본문 제목

유니티 마우스 클릭 위치로 캐릭터 이동하기, 카메라가 캐릭터 따라다니기

유니티/기능

by MJ_119 2024. 9. 18. 23:08

본문

- 마우스 클릭 위치로 캐릭터 이동하기.

using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.AI;

public class PlayerMove : MonoBehaviour
{
    [SerializeField] Transform target;
    NavMeshAgent navMeshAgent;

    void Start()
    {
        navMeshAgent = GetComponent<NavMeshAgent>();
    }

    void Update()
    {
        if(Input.GetMouseButtonDown(0))
        {
            MoveToCursor();
        }
    }

    private void MoveToCursor()
    {
        Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
        RaycastHit hit;
        bool hasHit = Physics.Raycast(ray, out hit);
        if (hasHit)
        {
            navMeshAgent.SetDestination(hit.point);
        }
    }
}

 

 

- 카메라가 캐릭터를 따라다니기

 

- 인스펙터 창에서 카메라 위치값, 각도값 조정해가면서 알맞은 카메라 화면 만들기.

 

using UnityEngine;

public class FollowCam : MonoBehaviour
{
    [SerializeField] Vector3 CameraPosition;
    [SerializeField] Vector3 CameraDirection;

    void Update()
    {
        Camera.main.transform.position = transform.position - CameraPosition;
        Camera.main.transform.rotation = transform.rotation * Quaternion.Euler(CameraDirection);
    }
}

 

 

캐릭터 하위 오브젝트를 만들어서 캐릭터와 위치값을 동일하게 만들고, 카메라가 이 하위오브젝트를 따라다니게 한다.

 

 

- 다른 방법

 

- 메인 카메라를 FollowCam오브젝트 밑에 두고 FollowCam오브젝트의 위치값을 플레이어와 동기화시킨다.

- 그리고 메인 카메라의 Transform 값을 조정해서 캐릭터와의 거리를 조절한다.

 

using UnityEngine;

public class FollowCam : MonoBehaviour
{
    [SerializeField] Transform target;
    void Update()
    {
        transform.position = target.position;
    }
}

관련글 더보기