通过一些内置的API可以帮助解释Unity面板的一些参量的含义:
当你的项目展示给他人看的时候,可以更快地帮助他人理解并调整游戏内的参数。同时在自己开发的后期也可以起到提示自己代码的功能的作用。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
[RequireComponent(typeof(Rigidbody))]
public class Movement : MonoBehaviour
{
[Header("物理属性")]
// Unity面板数据
[SerializeField]
// 移动速度
[Tooltip("玩家的移动速度")]
private float speed = 10.0f;
}
这里主要用到了几个API:
- [RequireComponent(typeof(Rigidbody))]
- [Header(“物理属性”)]
- [SerializeField]
- [Tooltip(“玩家的移动速度”)]
其中RequireComponent很好理解,会在你将代码绑定到Unity内部的GameObject时会自动的检测物体上是否有对应的组件,如果没有组件,将自动为物体添加组件,同时当你错误的移除组件时,会弹出窗口提示该代码必须要对应的组件才可以生效。
这样有效的避免了编程新手的一类常见错误,null空指针也就是获取不到组件的情况。
其次,Header则是当你在Unity的面板中,一段代码里设置了许多可以修改的参数时,进行分层次,类似小标题的效果。
然后,SerializeField则是因为有些变量声明的是private,而私有变量一般是无法在Unity的面板中预览的,只有公开变量,即声明为public才可以预览。如果说想要预览私有变量,则需要用这个API强制Unity把私有变量序列化,然后在面板中可见。
最后,Tooltip则是当鼠标停留在参数上面时,会自动显示注释的文字,可以对参数进行更深一步的解释和描述,便于理解。