在我的游戏中,我们正在尝试制作一个可以使任何敌人都陷入麻痹的武器。但是,每个敌人都有自己的AI脚本,这使得事情变得非常复杂。例如,一些敌人可以被麻痹,这样看起来是这样的: void Update() { if (enemyHealth.stunned) return; // 其余代码 } void StartStun() { // 停止移动和重置一些动画 } void EndStun() { // 与StartStun相反的代码 } 我不想去每个敌人那里添加这三个对象,而且未来可能会积累更多。这让我考虑创建一个大型、模块化的脚本来处理所有敌人——我之前在2D中做过,但这次是3D。注意:我已经有一个EnemyBase.cs脚本来处理共享的事情,但它们主要是由敌人AI代码读取的,如: target = enemyBase.player; EnemyBase还处理重定向。这个帖子不是用AI写的——我只是喜欢用EmDashes。