我在场景中实例化了一个预制件,该预制件在 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