✐37.0℃ʕ̯•͡˔•̯᷅ʔ ᐝ 2021-11-16 15:15 采纳率: 80%
浏览 153
已结题

在unity中怎么使用Mathf.Clamp这个函数

我想用这个函数来限制仪表中指针的旋转角度,但是我看了官方文档还是不太清楚怎么使用,所以想问一下用这个函数怎么限制移动角度大于180度的指针。

  • 写回答

1条回答 默认 最新

  • 「已注销」 2021-11-16 16:35
    关注

    看了你之前的提问,应该是遇到了限制旋转角度的问题,unity中一些特殊的角度需要特殊处理一下把它转换为欧拉角可以允许的范围[0.360]
    以你之前的提问,限制旋转角度在-180°~88°为例:

    
    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    
    public class Test : MonoBehaviour
    {
        //我以y坐标旋转为例
        public GameObject go; //需要控制的对象
        private float myAngle;
        float minY = -180f; //最小角度
        float maxY = 88f; //最大角度
    
        void Start()
        {
            myAngle = go.GetComponent<Transform>().localEulerAngles.y;
        }
    
        void LateUpdate()
        {
            //按下上下键进行旋转
            if(Input.GetKey(KeyCode.UpArrow))
            {
                myAngle -= Time.deltaTime * 10F;
            }
            else if(Input.GetKey(KeyCode.DownArrow))
            {
                myAngle += Time.deltaTime * 10F;
            }
    
            myAngle = MyClampAngle(myAngle, minY, maxY);
            Quaternion quaternion = Quaternion.Euler(0, myAngle, 90);
            go.GetComponent<Transform>().localRotation = quaternion;
        }
    
        /// <summary>
        /// 用于处理特殊角度
        /// </summary>
        /// <param name="angle">需要控制的角度</param> 
        /// <param name="min">最小值</param>
        /// <param name="max">最大值</param>
        /// <returns></returns>
        public float MyClampAngle(float angle, float min, float max)
        {
            if(angle < -360)
            {
                angle += 360;
            }
    
            else if(angle > 360)
            {
                angle -= 360;
            }
            return Mathf.Clamp(angle, min, max);
        }
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 11月26日
  • 已采纳回答 11月18日
  • 创建了问题 11月16日

悬赏问题

  • ¥15 PADS Logic 原理图
  • ¥15 PADS Logic 图标
  • ¥15 电脑和power bi环境都是英文如何将日期层次结构转换成英文
  • ¥20 气象站点数据求取中~
  • ¥15 如何获取APP内弹出的网址链接
  • ¥15 wifi 图标不见了 不知道怎么办 上不了网 变成小地球了
  • ¥50 STM32单片机传感器读取错误
  • ¥15 (关键词-阻抗匹配,HFSS,RFID标签天线)
  • ¥15 机器人轨迹规划相关问题
  • ¥15 word样式右侧翻页键消失