我一直在重新设计我在 Unity 中的所有实体,希望它们能够得到更多的调制,并且组件之间的依赖度会降低。但是,我遇到了似乎无法解决的问题。
如果我在一个实体上有两个脚本组件,例如 PlayerInput 和 PlayerState。PlayerInput 将接受输入并以某种有意义的方式使用它,而 PlayerState 将管理玩家的状态。PlayerState 可能包含一些描述玩家所处状态的数据。问题是,如果需要该状态数据来处理输入,那么除了创建依赖项或更改基本游戏对象类(其中我做不到,而且可能无论如何都不是一个好主意。)
当然,发送消息仅对提供信息有用,而不是请求它。我是否应该尝试跨组件共享数据,或者这本身是否意味着依赖?在这种情况下我做错了什么?