从MonoBehavior不允许使用new了解Unity的继承关系
MonoBehavior
下gameObject
不能为static
则导致抽象工厂继承自MonoBehavior
的话不被允许使用new
关键字传递对象。
浅显一点的原因是MonoBehavior
继承自Component
,所以传递的也被规定为Component
。
但是Unity给我们留下了口子。
感谢CSDN大佬( https://blog.csdn.net/woodengm/article/details/126472371 )整理的Unity继承关系图。
从图中我们可以知道基于Component
的MonoBehavior
不行的话可以让抽象工厂继承ScriptableObject
。
同时
也间接告诉了我们可以通过继承ScriptableObject
来实现对象传递。
调用ScriptableObject.CreateInstance
替代new
即可.