我目前正在 Unity3D 中制作游戏,并在学习过程中尝试将 SOLID 的单一职责原则应用到我的游戏中。
我想知道是否有人可以更多地解释一下 SRP 的良好实施是什么样子,因为我觉得我正在破坏它。
我将我的课程分为基础部分:
PlayerInput.cs - 获取输入并将其存储到变量中(水平、垂直、人民币等)
PlayerController.cs - 处理攻击和玩家状态(空闲、移动、攻击)ATM
PlayerMovement.cs - 处理移动和旋转(看看鼠标)
AnimationController.cs - 处理所有动画
当我开始时,我觉得我遵循的是 SRP,但现在游戏变得越来越复杂。上面列出的每个类都会引用其他类,这似乎是不必要的。我在每个类中使用了大约 5 个 GetComponents,这似乎是重复的,因为它们都在同一个对象上。换句话说,SRP 似乎需要更多工作,并且降低了效率。
例如,PlayerController 和 PlayerMovement 脚本都有对 AnimationController 的引用,其中 AnimationController 也有对两者的引用。所有脚本都有对 PlayerInput 的引用。(请记住,为了保持简单,我省略了其他与玩家相关的脚本,例如制作和装备,但我的 Start 和 Awake 方法充满了一堆 GetComponent 调用)
谁能向我更好地解释 SRP,并可能为我指明正确的方向,这样我就不会在同一个 GameObject 上过多地使用 GetComponent 了。
一只名叫tom的猫
红糖糍粑
相关分类