Unity全视角跟随鼠标右键转换视角实现——研究笔记

时间:2023-03-08 22:00:44
 using UnityEngine;
using System.Collections; public class CameraMove : MonoBehaviour
{
public Transform m_Player;
public float m_RotaSpeed = ;
public float m_Slow = 5f; private bool m_isAnXia = false;
private Vector3 m_xdPos; void Start ()
{
m_xdPos = this.transform.position - m_Player.position;
} void Update ()
{
Move();
Rote();
} void Move()
{
this.transform.position = m_Player.position + m_xdPos;
} void Rote()
{
if (Input.GetMouseButtonDown())
{
m_isAnXia = true;
}
if (Input.GetMouseButtonUp())
{
m_isAnXia = false;
}
if (m_isAnXia)
{
this.transform.RotateAround(m_Player.position, Vector3.up, Input.GetAxis("Mouse X") * m_RotaSpeed);
var pos = this.transform.position;
var rota = this.transform.rotation;
this.transform.RotateAround(m_Player.position, this.transform.right, Input.GetAxis("Mouse Y") * -m_RotaSpeed);
var x = this.transform.eulerAngles.x;
if (x < || x > )
{
this.transform.position = pos;
this.transform.rotation = rota;
} m_xdPos = this.transform.position - m_Player.position;
}
}
}