본문 바로가기
유니티강좌

마우스 클릭 위치로 오브젝트 회전하면서 이동시키기 Rotate & Move To Click Position | 유니티 게임 개발 튜토리얼(Unity & C# Script)

by Ncube 2021. 1. 19.

 

 

마우스 클릭한 지점으로 캐릭터를 회전과 동시에 이동하는 방법, 마우스 클릭을 유지한 상태일때 마우스 위치를 지속적으로 회전시키며서 따라 다니게 하는 방법등을 알려드립니다.

 


 

 

[RotateMoveToClick.cs]

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

public class RotateMoveToClick : MonoBehaviour
{
    [SerializeField] float speed = 2f;
    Vector3 mousePos, transPos, targetPos, dist;

    void Update()
    {
        if (Input.GetMouseButtonDown(0))
            CalTargetPos();

        RotateMove();
    }

    void CalTargetPos()
    {
        mousePos = Input.mousePosition;
        transPos = Camera.main.ScreenToWorldPoint(mousePos);
        targetPos = new Vector3(transPos.x, transPos.y, 0);
    }

    void RotateMove()
    {
        dist = targetPos - transform.position;
        transform.position += dist * speed * Time.deltaTime;

        float angle = Mathf.Atan2(dist.y, dist.x) * Mathf.Rad2Deg;
        transform.rotation = Quaternion.AngleAxis(angle - 90, Vector3.forward);
    }
}

 

 

댓글