【发布时间】:2016-03-27 20:13:50
【问题描述】:
大家好,感谢您抽出宝贵时间。
我目前正在 Unity 中处理 2D 内容,但遇到以下问题:
我们有一个定期创建“事物”的生成器:
public float spawnTime = 3;
public Object thing; //public GameObject thing;
// Use this for initialization
void Start () {
InvokeRepeating("spawn", spawnTime, spawnTime);
}
void spawn ()
{
Vector3 pos = new Vector3(-14, 0, 0);
Quaternion ori = new Quaternion(0, 0, 0, 0);
Instantiate(thing, pos, ori);
}
而且它做得很好。认识“东西”:
void Start () {
InvokeRepeating("move", 0.1f, 0.1f);
}
void move()
{
transform.Translate(0.2f, 0, 0);
if (this.transform.position.x > 14)
{
Destroy(this); //Destroy(GameObject);
所以基本上创造了一个“东西”,将自己从 -14 拖到 14,然后窒息。
问题:一旦第一个“东西”被删除,新创建的(不是已经移动的)永远不会从 -14 移动。
我想我没有正确指定要定期调用的方法,但无法在 unity3d 自上而下的射手或类似示例中找到合适的解决方案。
再次感谢。
€:在应用建议的更改后,生成器在 3 个创建周期后停止创建“事物”。
€:我的错误是没有使用“事物”作为预制件(如漂亮答案中所述将其拖入“资产”),因此我引用了一个即将被删除的“事物”实例。将其拖入地狱(资产)并从此快乐。
【问题讨论】:
标签: c# unity3d 2d instantiation gameobject