如何在运行时通过脚本更改附加到预制件的脚本中的变量?

时间:2018-05-14 09:31:18

标签: unity3d game-development

我已经在场景中实例化了一个预制件,它在2秒后被摧毁。我想在其移动脚本中更改其speed变量,以便在实例化时它具有新的速度。

2 个答案:

答案 0 :(得分:2)

实例化函数返回您创建的游戏对象。

GameObject prefabObject = Instantiate(...);

然后你可以做一些像

这样的事情
prefabObject.GetComponent<moveScript>().speed = 4;

答案 1 :(得分:0)

您没有提供足够的信息,但我会尝试回答。

这是否可以通过另一个脚本或您在预制件上附加的移动脚本来完成?

如果来自Move脚本,那么:

private void Awake()
{
    speed = MY_NEW_SPEED;
}

如果来自另一个脚本,那么首先需要访问实例化对象,然后访问其Move脚本。您没有提供足够的信息,所以我假设您已经有了对实例化对象的引用:

instantiatedObject.GetComponent<Move>().speed = MY_NEW_SPEED;

https://docs.unity3d.com/ScriptReference/GameObject.GetComponent.html