unity 角度限制_Unity实现角度限制

  • Post author:
  • Post category:其他


在Unity(C#)中实现角度限制,有一个坑点(角度换算),相信大多数人都遇到过,本文会对其探究,同时补充点相机角度控制的算法。

1. 通过角度换算来实现角度限制

假设世界空间中存在一游戏物体Object,左手坐标系,以Z轴为朝向,如果属性面板中Rotator的z值为30,则逆时针旋转30度,如果-30则顺时针选择30度。

z = 30

z= -30

很多人受到这个属性面板的影响,在写角度限制代码的时候(假设将角度限制在-30

if (transform.localEulerAngles.z<30f && transform.localEulerAngles.z>-30f){…}

看着是没啥毛病,运行程序,看属性面板,当z开始为负数(0

public float CheckAngle(float value) // 将大于180度角进行以负数形式输出

{

float angle = value – 180;

if (angle > 0)

{

return angle – 180;

}

if (value == 0)

{

return 0;

}

return angle + 180;

}

这样问题就解决了!下面给出完整代码:



版权声明:本文为weixin_31556371原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。