欢迎光临散文网 会员登陆 & 注册

Unite 2017-Scriptable Object (二)

2022-11-13 01:01 作者:防辐射君  | 我要投稿

事件架构

有一个这样的事件系统有几大好处:

  • 可复用在任何项目中

  • 独立了预制体

  • 需要时才执行

  • 便于调试

GameEventListener

运行时参数

现在依然有些单例下遇到的问题:

  • 比如一个敌人管理器,管理了所有的敌人对象,他便要负责去追踪所有敌人对象

  • 比如Player对象,以及要获取其追踪的敌人列表

造成的结果:

  • Race Condition(资源竞争)

极大可能会出现的一种情况便是,资源会被竞争,某些地方未被初始化时便被调用,最终导致获得空引用

  • Rigid singleton(刚性引用)

在制作测试场景的时候,需要把全部引用全都加入进来。

因此使用SO制作运行时类,可以解决上述问题。

别过多的使用Enum变量

  • 因为枚举要在程序里做修改,因此我们动的程序部分越少,也就越不容易出错

  • 很难做序列化操作,排序等操作。

  • 很难保存一些额外信息

Asset Base System

设计原则:

  • 系统在程序中,以So的方式在制作系统

  • 可以直接拖拽引用到Inspector上

  • 不需要代码重复检查

  • 不要有直接绑定到场景上的引用。



Unite 2017-Scriptable Object (二)的评论 (共 条)

分享到微博请遵守国家法律