Unity如何限制3D物体的旋转角度
发表于2018-05-15
如果让一个3D物体进行旋转对于多数开发者来说肯定不是什么难事了,但是如果要给这个需求加个难度去限制物体的旋转角度,那应该怎么做?西面就以以东段的触摸屏代码为例,给大家介绍下限制3D物体的旋转角度的方法,当然大家也可以根据需要将操作方式改为PC的。
if (1 == Input.touchCount)
{
Touch touch = Input.GetTouch(0);
Vector2 deltaPos = touch.deltaPosition;
float v_X = -5 * touch.deltaPosition.y;
//float v_Y = -2 * touch.deltaPosition.x;
v1.x = Mathf.Lerp(v1.x, v_X, Time.deltaTime);
transform.localEulerAngles += new Vector3(0, v1.x, 0);
//角度限制
v1.y = Mathf.Lerp(v1.y, v_Y, Time.deltaTime);
transform.localEulerAngles += new Vector3(v1.x, v1.y, 0);
if (transform.localEulerAngles.x > 20 && transform.localEulerAngles.x < 180)
{
transform.localEulerAngles = new Vector3(20, transform.localEulerAngles.y, transform.localEulerAngles.z);
}
if (transform.localEulerAngles.x < 340 && transform.localEulerAngles.x > 180)
{
transform.localEulerAngles = new Vector3(340, transform.localEulerAngles.y, transform.localEulerAngles.z);
}
}
将以上代码放在Update()中就可以了,因为我这里是水平操作Y轴的旋转,垂直操作的是Y轴的旋转,所以大家在复制的时候要根据实际情况进行修改。
