我们有时候可能需要在面板增加一些引用,可能添加脚本后要手动拖动,这样如果有大量的脚本拖动也是不小的工作量
实例
例如:我的脚本需要添加一个Bone的列表,一个个拖动很麻烦。
实现脚本
我们可以用这样的脚本来实现。
public class FingerDyBone : MonoBehaviour
{
public DynamicBoneCollider[] boneArray = null;
#if UNITY_EDITOR
[ContextMenu("加入所有碰撞体")]
private void MenuAddBone()
{
boneArray = GetComponentsInChildren<DynamicBoneCollider>();
UnityEditor.EditorUtility.SetDirty(this);
}
void OnValidate()
{
Debug.Log("OnValidate");
if (boneArray == null) MenuAddBone();
}
#endif
}
ContextMenu是菜单,添加这个可以手动调用函数。
如果手动麻烦还可以自动添加,那么可以借助OnValidate函数,在添加脚本或者改变属性的时候会自动执行。解决这个原理就可以在添加脚本的时候自动添加。
最终效果
那么这样就比较事半功倍了。