Joe*_*eyL 0 c# unity-game-engine
我目前正在将一些资产放入 Unity 资产商店,并且正在查看用户为公共变量的输入所犯的错误。其中之一是他们能够选择相机的宽度和高度,我不希望他们选择输入负数。我能找到的最接近的东西是 [Range(x,y)] 但这将我在检查器中的变量输入更改为我不想要的滑块。
我知道我总是可以通过代码检查它是否为负,然后通过调试告诉用户,但我觉得如果我什至不让用户将负数放在首位,这将节省检查和更少的代码。
任何人都有任何想法,或者我基本上坚持检查并通过调试让他们知道?
OnValidate是为此目的创建的 MonoBehaviour 函数。正如文档所说:“这可用于确保当您在编辑器中修改数据时,数据保持在一定范围内。” 在你的脚本中,写
OnValidate()
{
theValue = Mathf.Clamp(theValue, 0, float.MaxValue); // or int.MaxValue, if you need to use an int but can't use uint.
}
Run Code Online (Sandbox Code Playgroud)