Unity基础 静态扩展 GameObject 实现链式编程

tech2023-07-18  112

目录

 

1.链式写法效果

2.扩展类

3.注意格式

4.优劣


1.链式写法效果

public GameObject go; void Start () { //调用1:直接.方法 go.ReName("new name hhhh").Layer(1).Show().End(); //调用2:静态调用 GameObjEx.ReName(go, "ttttt").Layer(5).End(); }

2.扩展类

using UnityEngine; public static class GameObjEx { public static GameObject Show(this GameObject obj) { obj.SetActive(true); return obj; } public static GameObject Hide(this GameObject obj) { obj.SetActive(false); return obj; } public static GameObject ReName(this GameObject obj,string ToName) { obj.name=ToName; return obj; } public static GameObject Layer(this GameObject selfObj, int layer) { selfObj.layer = layer; return selfObj; } public static void End(this GameObject selfObj) { Debug.Log("end ------"); } }

3.注意格式

静态类、静态方法、参数格式:this+扩展类型

如果要持续链式要返回类型本身;不返回链式就结束了

4.优劣

优点:代码紧凑,写起来很爽快,以自己的习惯设计接口,会提高开发效率。 缺点:性能会损耗一丢丢,调试不方便,出异常时候会发现堆栈信息超级长,别人看了会误认为Unity 升级又加了API。不过 DoTween,UniRx 都在这么用… 执行效率 vs 开发效率 + 低 bug 率,就看各位怎么权衡啦。

扩展连接

最新回复(0)