今天看代码时看到一个之前不知道的技巧,可以扩展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/
近期评论