C# 统一:玩家在失去控制的情况下重生

C# 统一:玩家在失去控制的情况下重生,c#,unity3d,C#,Unity3d,所以我有这个密码,当我的玩家击中他的敌人时,他会复活。一切都很好,但当球员们产生时,他是无法控制的。出于某种原因,播放器克隆在检查器中未选中控制器脚本 有人知道为什么会发生这种情况以及如何解决吗 }你可以简单地重置玩家的状态并移动他们,而不是摧毁玩家 或者,您可以在生成新玩家时启用控制器。无论控制器脚本的名称是什么,都可以执行以下操作: Clone.GetComponent<Controller>().enabled = true; 你可能还想进一步考虑你的设计。让每个敌人都持有

所以我有这个密码,当我的玩家击中他的敌人时,他会复活。一切都很好,但当球员们产生时,他是无法控制的。出于某种原因,播放器克隆在检查器中未选中控制器脚本

有人知道为什么会发生这种情况以及如何解决吗


}

你可以简单地重置玩家的状态并移动他们,而不是摧毁玩家

或者,您可以在生成新玩家时启用控制器。无论控制器脚本的名称是什么,都可以执行以下操作:

Clone.GetComponent<Controller>().enabled = true;

<>你可能还想进一步考虑你的设计。让每个敌人都持有一个对繁殖点的引用,玩家有点傻,而那些查找操作将是繁重的,因为你正在繁殖大量的敌人。理想情况下,因为你只有一个玩家和很多敌人,你应该在玩家类中拥有控制玩家的代码,而不是敌人。

我认为实例化一个不是预设的游戏对象是个坏主意。你应该只实例化预置,并且你的代码正在实例化一个游戏对象的实例,抱歉冗余

当您的实例被销毁时,在尝试对其而不是像您正在经历的那样在预置上调用instance时,可能会导致意外行为


您应该为您的玩家创建一个预设,然后将您的玩家变量公开,并在inspector中将其设置为该玩家的预设。

确定。谢谢你的回复,我会试试你的建议!
Clone.GetComponent<Controller>().enabled = true;