在我们运用Unity的基础组件编写游戏逻辑的时候,会发现一些我们频繁使用的一些功能Unity却没有提供给我们,而如果让我们为这个功能新扩展一个类,又感觉不划算,如果能直接把我们扩展的功能附加在基础功能中,该多好呀~~~
现实是美好的,在Unity中有这样的功能呢:
using UnityEngine;
public static class TransformExtensions {
public static string GetFullHierarchyPath(this Transform transform) {
string path = "/" + transform.name;
while (transform.parent != null)
{
transform = transform.parent;
path = "/" + transform.name + path;
}
return path;
}
}
在这个功能中,我们就给Transform组件扩展了一个获取全局路径的一个功能,在使用时只需像调用普通函数一样调用这个函数:
string path= transform.GetFullHierarchyPath();
如果你的智能提示助手足够智能,就会在你需要的时候显示这个函数,是不是很简单!!!
下面再来一个带参数的示例吧
public static void SetParent(this Transform go, Transform par)
{
go.parent = par;
go.localPosition = Vector3.zero;
go.localEulerAngles = Vector3.zero;
}
下面是使用方法:
effect.transform.SetParent(transform);