【发布时间】:2018-05-15 12:58:10
【问题描述】:
我在场景中实例化了一个预制件,该预制件在 2 秒后被销毁。我想在其移动脚本中更改其速度变量,以便在实例化时具有新的速度。
【问题讨论】:
我在场景中实例化了一个预制件,该预制件在 2 秒后被销毁。我想在其移动脚本中更改其速度变量,以便在实例化时具有新的速度。
【问题讨论】:
instantiate 函数返回您创建的游戏对象。
GameObject prefabObject = Instantiate(...);
那么你显然可以做类似的事情
prefabObject.GetComponent<moveScript>().speed = 4;
【讨论】:
gameObject,因为它是用于访问此脚本脚本所附加到的游戏对象的变量的名称。
您没有提供足够的信息,但我会尽力回答。
这将由另一个脚本或您附加在预制件上的移动脚本来完成吗?
如果来自移动脚本,则:
private void Awake()
{
speed = MY_NEW_SPEED;
}
如果来自另一个脚本,那么您首先需要访问实例化的对象,然后是其移动脚本。您没有提供足够的信息,所以我假设您已经引用了您的实例化对象:
instantiatedObject.GetComponent<Move>().speed = MY_NEW_SPEED;
https://docs.unity3d.com/ScriptReference/GameObject.GetComponent.html
【讨论】: