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