【问题标题】:infinitely generating game object in unity统一无限生成游戏对象
【发布时间】:2017-02-12 09:45:42
【问题描述】:
using UnityEngine;
using System.Collections;

public class instantiatescript : MonoBehaviour {

public GameObject house;

// Use this for initialization
void Start () {
     house = GameObject.FindGameObjectWithTag ("house");
    CreatePrefab ();
}

// Update is called once per frame
void Update () {


}


void CreatePrefab()
{



    for (int i = 0; i < 10; i++)
        Instantiate(house, new Vector3(i * 0f, 0f, 2.0f), Quaternion.identity);


}
}

我需要沿z方向无限生成游戏对象房屋。但是现在这段代码实际上什么都不做,谁能提供无限生成对象的参考

【问题讨论】:

    标签: unity3d duplicates infinite gameobject


    【解决方案1】:

    逻辑有点对,但是:

    • house 不需要用实例化的GameObject 进行初始化。只需保持声明不变,并通过 Inspector 在变量处分配一个预制件;
    • for 循环应该考虑多个x 值并在每次迭代时生成一个房子。但是,通过将任意 i 乘以 0,您期望什么?坐标将始终保持不变。也许你想添加?

    【讨论】:

    • 是的,我需要添加新的克隆对象,所以它看起来像游戏中的很多房子......实际上我正在做一个像寺庙跑这样的跑步游戏
    • 好的,明白了。因此,作为第一次尝试,请遵循第二点(即,将“*”替换为“+”。
    • 我会说你应该将生成与玩家运动结合起来。您不想提前生成 1000 个游戏对象。相反,您希望在屏幕的右侧(和左侧)一点点生成(并销毁或移动)它们。例如。你可以根据播放器的运行速度来做。
    • @GunnarB。为什么我的代码不工作,你能提供一些参考
    • @GunnarB。关于长期实施,我同意你的看法。事实上,我刚刚回答是为了解决眼前的问题。在 Martinj:我已经给了你一个建议。你试过吗?我认为这很简单......你至少可以告诉我它是否有效,然后再用“代码不工作”向其他人询问。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多