在 Unity 中可以利用 Transform.RotateAround 围绕指定物体进行旋转,但某些情况下可能需要对旋转角度进行控制。我是先计算出预设角度大小,然后判断是否小于或者超出旋转范围。如果小于则控制在最小范围内,如果大于则控制在最大范围内。
相关代码如下:
1 //预设角度(当前角度加上将要增加/减少的角度) 2 float rotatedAngle = transform.eulerAngles.x + y * roateSpeed; 3 4 //旋转角度小于15则设置为15 5 if (rotatedAngle < 15) 6 { 7 transform.RotateAround(player.position, transform.right, (y * roateSpeed) + (15 - rotatedAngle)); 8 } 9 else if (rotatedAngle > 85) //旋转角度大于85则设置85 10 { 11 transform.RotateAround(player.position, transform.right, (y * roateSpeed) - (rotatedAngle - 85)); 12 } 13 else 14 { 15 transform.RotateAround(player.position, transform.right, y * roateSpeed); 16 }