마우스 클릭한 지점으로 캐릭터를 회전과 동시에 이동하는 방법, 마우스 클릭을 유지한 상태일때 마우스 위치를 지속적으로 회전시키며서 따라 다니게 하는 방법등을 알려드립니다.
[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);
}
}
댓글