今天看代码时看到一个之前不知道的技巧,可以扩展Unity的GameObject类,为GameObject添加自己定义的方法:
using UnityEngine;
using System.Collections;
public static class GameObjectEx {
public static T MakeSureComponent<T>(this GameObject gameObject) where T : Component
{
T t = gameObject.GetComponent<T>();
if (t == null)
{
t = gameObject.AddComponent<T>();
}
return t;
}
}
这个类添加在工程中后,所以的gameObject上都可以直接调用MakeSureCompoent这个方法,真是超级便捷.
this.m_footstepHandler = base.gameObject.MakeSureComponent<FootstepHandler>();
同理,Unity自带的其它类应该也是可以进行扩展的。
查找了下是哪个天才想到的这个办法,google找到最早的一篇是这个:
https://forum.unity3d.com/threads/howto-add-method-to-the-gameobject-class-ie-add-custom-variables-to-every-instance.89791/
近期评论