描述

什么是Init(args)?

Init(args)是Unity的一个依赖注入框架,它专注于确保工具集的各个方面与本地编辑器体验无缝融合。

Init(args)解决了哪些问题?

Unity Editor的基于场景的工作流是一个强大的工具,在Inspector中拖放对字段的引用的能力已经是向对象注入依赖关系的良好基础!因此,Init(args)的目标并不是在这方面重新发明轮子,而是修复它的各种缺点并释放其全部潜力。

在香草Unity中,所有组件都负责查找对其所依赖对象的引用。实现这一点的一种方法是添加序列化字段,使用户可以使用Inspector分配引用。尽管这很酷,但它也有其局限性,不能在任何情况下都使用:

无法将对象分配给接口字段。

无法在场景或预制件之间指定对象。

一次又一次地将相同的管理器拖到组件上是很费力的。

若要将管理器交换到其他管理器,必须手动更新所有组件中的引用。

无法分配动态值,这使得处理本地化文本、可寻址资产和随机化值等内容变得更加困难。

 

由于这些限制,组件通常必须将序列化字段的使用与其他解决依赖关系的方法相结合:singleton、GetComponent、GetComponentInChildren、FindObjectOfType、FindWithTag、静态方法。。。等等。这种获取组件依赖关系的大杂烩方式也有其自身的问题:

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注