使用版本:2021.3.19f1c1
新建项目打卡导入fbx模型,文件夹空白地方,右键,[Create]---[C# Scrcpt]
外层定义:
private float angles;
在Update()事件中写入代码:
//三选一,都是自动旋转
transform.rotation = Quaternion.Euler(0, angles++, 0);//自动横向旋转
transform.Rotate(new Vector3(0,1,0),0.5f,Space.World);//三个参数,(旋转围绕的轴[X轴:1,0,1][Y轴:0.1.0][Z轴:0,0,1],每帧旋转的角度,参考坐标系) 自动旋转
transform.Rotate(new Vector3(0, 1, 0));//自动旋转
//这个属性与rotate的区别是这个是相对于父物体的旋转,而rotation是相对于世界的绝对旋转,没有父物体时俩者没有区别
20240328更新:
public float sensitvity = 8.0f;//鼠标滑动灵敏度
public Vector3 newPivotPosition;
bool isDown = false;
void Start()
{
Transform modelTransform = GetComponent<Transform>();
//modelTransform.pivot = modelTransform;
//modelTransform.transform.
}
void Update()
{
if (Input.GetMouseButtonDown(0))//鼠标左键按下
{
isDown = true;
}
if (Input.GetMouseButtonUp(0))//鼠标左键抬起
{
isDown = false;
}
if (isDown)
{
float mouseX = Input.GetAxis("Mouse X");
float mouseY = Input.GetAxis("Mouse Y");
transform.Rotate(Vector3.up * -mouseX * sensitvity, Space.World);
transform.Rotate(Vector3.right * mouseY * sensitvity, Space.World);
}
}
链接:
Unity 如何模型本身不旋转实现Camera旋转,推进查看模型