C# 在Unity中的其他脚本中重新启动一个脚本
如何在其他脚本中重新启动一个脚本? 我试过这个,但不起作用C# 在Unity中的其他脚本中重新启动一个脚本,c#,unity3d,C#,Unity3d,如何在其他脚本中重新启动一个脚本? 我试过这个,但不起作用 Ball.Start(); 从Unity手册: Like the Awake function, Start is called exactly once in the lifetime of the script. 你能做的是: void Start() { Init(); } public void Init() { // Some logic here } 然后,您可以在任何需要的地方调用Init() 如果您指
Ball.Start();
从Unity手册:
Like the Awake function, Start is called exactly once in the lifetime of the script.
你能做的是:
void Start()
{
Init();
}
public void Init()
{
// Some logic here
}
然后,您可以在任何需要的地方调用Init()
如果您指的是完全重置单一行为,您可以删除/添加它:
Destroy(gameObject.GetComponent<MyMonoBehaviour>());
gameObject.AddComponent<MyMonoBehaviour>();
Destroy(gameObject.GetComponent());
gameObject.AddComponent();
您是否尝试过Ball.Reset()
?根据文档:Start在脚本生命周期中只调用一次。问题在于您已停止脚本,但无法再次启动它?根据,您可以通过使用SetActive
启用/禁用并实现OnEnabled
方法来重新启动脚本。您希望“重新启动”做什么?如果将Start
设置为公共函数,则可以从其他脚本调用它(只要有对象可调用)。如果在控制台窗口中看到错误,它们是什么?如果没有,发生了什么或没有发生什么,这与你的预期有什么不同?@ShawnicHedgehog它也不起作用。是的,Start()在脚本的生命周期中只调用了一次,因此我想再次启动这个脚本。我有一个制作Arkanoid等级的脚本,我想重置球的寿命。@JohnOdom,我可以用它来制作脚本吗,但它不起作用,我想知道它是用于游戏对象的。