【Unity】限制角度-角色抬头和低头的最大角度

直接上代码    

void Update () {
        CapRot();
    }

    /// <summary>
    /// 限制抬头角度和低头角度为-20-20之间
    /// </summary>
    public void CapRot()
    {
        transform.Rotate(Input.GetAxis("Vertical") * Time.deltaTime * 60f, 0, 0);
        if (transform.localEulerAngles.x>30&&transform.localEulerAngles.x<180)
        {
            transform.localEulerAngles = new Vector3(30,transform.localEulerAngles.y,transform.localEulerAngles.z);
        }
        if (transform.localEulerAngles.x<330&&transform.localEulerAngles.x>180)
        {
            transform.localEulerAngles = new Vector3(330,transform.localEulerAngles.y, transform.localEulerAngles.z);
        }
    }

刚开始想着比较简单,直接控制就好,结果发现不是那么容易的,角度有360°,需要限制两面的角度才可以控制在一个范围内。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Unity中,我们可以通过一些方法来限制物体或摄像机的角度。一种常用的方法是使用Mathf.Clamp函数。该函数可以将一个值限制在指定的最小值和最大值之间。例如,如果我们想要限制一个物体的角度在-45度到45度之间,我们可以通过以下代码实现: ```csharp // 获取物体当前的角度 float angle = transform.eulerAngles.y; // 将角度限制在-45度到45度之间 float clampedAngle = Mathf.Clamp(angle, -45f, 45f); // 将物体的角度设置为限制后的角度 transform.eulerAngles = new Vector3(transform.eulerAngles.x, clampedAngle, transform.eulerAngles.z); ``` 这样,无论原始角度是多少,物体的角度都将被限制在-45度到45度之间。 同样,我们也可以使用Mathf.Clamp函数来限制摄像机的角度。假设我们想要限制摄像机的俯仰角度在-30度到30度之间,我们可以通过以下代码实现: ```csharp // 获取摄像机当前的俯仰角度 float pitch = camera.transform.rotation.eulerAngles.x; // 将角度限制在-30度到30度之间 float clampedPitch = Mathf.Clamp(pitch, -30f, 30f); // 将摄像机的俯仰角度设置为限制后的角度 camera.transform.rotation = Quaternion.Euler(clampedPitch, camera.transform.rotation.eulerAngles.y, camera.transform.rotation.eulerAngles.z); ``` 这样,摄像机的俯仰角度将被限制在-30度到30度之间。 通过使用Mathf.Clamp函数,我们可以方便地限制物体或摄像机的角度,确保其在指定的范围内移动或旋转。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夜梦说开发(VR)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值