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



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

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

GameObject prefabObject = Instantiate(...);

然后你显然可以做类似的事情

prefabObject.GetComponent<moveScript>().speed = 4;

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

这是由另一个脚本还是您在预制件上附加的 Move 脚本完成?

如果从移动脚本,则:

private void Awake()
{
speed = MY_NEW_SPEED;
}

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

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

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

相关内容

  • 没有找到相关文章

最新更新