你好!我是一个独立游戏开发者(业余爱好者),正在创建我的第一个游戏。因此,我想在这里问问,看看我能否改进我的游戏中的敌人。我的做法是:https://preview.redd.it/z7plftoca5yh1.png?width=1768&format=png&auto=webp&s=f159487f5674fc5f39bdc3ed5ca114897f016907

总的来说,我使用Unity Animator来创建有限状态机敌人。例如,附上的图片中,有不同的状态可以加载。这些状态主要由两个因素控制:一个公共的敌人脚本,只定义是否可以看到玩家和是否在攻击范围内,以及一个运动脚本,仅仅是一个寻路脚本,附有不同的运动选项(例如,敌人是否可以在地板上移动?是否可以跳跃?等等) https://preview.redd.it/unws12m7a5yh1.png?width=576&format=png&auto=webp&s=8201b62e1c17fdf15d93400f4b07e801426711c4

唯一的问题是:动画脚本被认为是静态的,所以我无法在一个敌人身上改变一个变量而不影响其他敌人。为了解决这个问题,我使用一个“基础脚本”,它是一个MonoBehaviour,附在我的敌人游戏对象上,有几个设置。当敌人想要在动画状态中使用这些设置时,它只获取一个基础脚本的引用(这个是在启动时完成的,并且不需要每次进入状态时获取)。

如果有人想阅读我的代码,我提供了一个PasteBin链接(不要抄袭,lol)。这是一个示例,展示了一个状态和行为(射击子弹)的基础脚本和敌人状态脚本:https://pastebin.com/28SNFrLrhttps://pastebin.com/ZZc64Y7E

所以:我创建敌人的方法是怎么样的?是否有更好的方法?我的代码是怎么样的?是否可以改进?所有的反馈都是欢迎的!

P.S:如果有人感兴趣,可以看看我完成的敌人的视频片段。如果你注意到30fps,别担心,那是Reddit的限制,我的视频质量是正常的。