实例化已应用脚本的GameObject

时间:2017-05-07 20:43:27

标签: unity3d

Unity非常新,但很快学习。

我有一个spawner,它是一个空的GameObject,可以生成气球。产生的气球对象应用了遵循航点的运动脚本。

我遇到的问题是我无法点击并将路标(也是空的游戏对象)拖到公共变量上,我只能在气球首先添加到游戏层次结构中时执行此操作,但是我正在制作预制件,因为我不希望它出现在游戏中。如果我首先将预制件添加到游戏中,我可以将路标设置为游戏对象。

如何解决此问题,以便我能够将航点游戏对象添加到资产中的预制件中?

1 个答案:

答案 0 :(得分:2)

您可以在移动脚本中使用此方法:

public void SetWayPoints(Transform[] waypoints)
{
    this.wayPoints = waypoints;
}

当您实例化预制件时,只需获取组件并设置方式点;

GameObject baloon = Instantiate(baloonPrefab) as GameObject;
var movementScript = baloon.GetComponent<Movement>();
if(movementScript != null)
{
    movementScript.SetWayPoints(waypoints);
}

请注意,上面的代码只是一个例子来说明这样做的方法。您的脚本可能会根据您的航点的实施而有所不同。我假设waypoints是一个运动脚本中的变换数组,baloon一个接一个地跟着它。 spawner类还在层次结构中引用了路径点,您只需从spawner传递该数组。

希望这会有所帮助。 如果您有任何问题,请告诉我。