</pre>//功能实在很简单,放着吧<pre name="code" class="csharp">using UnityEngine;
using System.Collections;
public class rotate : MonoBehaviour {
Vector3 StartPosition; //左键按下时鼠标的位置
Vector3 previousPosition; //上一帧鼠标的位置。
Vector3 offset; //在两帧之间鼠标位置的偏移量,也就是这一帧鼠标的位置减去上一帧鼠标的位置。
Vector3 finalOffset; //最终总的鼠标位置的偏移量,即当松开鼠标时那一帧时鼠标的位置减去鼠标按下时的位置。
bool isSlide; //鼠标松开后,是否继续旋转一定角度。
float angle; //随随便便,大略的就把鼠标位置的偏移量看做是旋转的角度,不是很精确,。,不是重点
void Update()
{
if (Input.GetMouseButtonDown(0))
{
StartPosition = Input.mousePosition; //记录鼠标按下的时候的鼠标位置
previousPosition = Input.mousePosition; //记录下当前这一帧的鼠标位置
}
if (Input.GetMouseButton(0))
{
offset = Input.mousePosition - previousPosition; //这一帧鼠标的位置减去上一帧鼠标的位置就是鼠标的偏移量
previousPosition = Input.mousePosition; //再次记录当前鼠标的位置,以备下一帧求offset使用。
Vector3 Xoffset=new Vector3(offset.x,0,0);//过滤掉鼠标在Y轴方向上的偏移量,只保留X轴的
transform.Rotate(Vector3.Cross(Xoffset, Vector3.forward)
unity实现鼠标让物体绕世界Y轴旋转_C#
最新推荐文章于 2025-06-26 18:18:29 发布