Unity3D在固定位置产生2d对象

时间:2014-08-18 21:26:27

标签: c# unity3d

我有一个对象,点击它时会被销毁,并在计时器上的其他地方随机生成。我试图这样做,而不是它出现在固定位置的随机点。

我还希望他们在定时间隔内一次一个地在那些固定位置随机产生。(因此,如果它出现在一个位置,比如5秒,它将被销毁,下一个将出现在不同的位置。)

我尝试做固定的spawn位置,但是void spawner不想工作。

我得到一个“类型的对象”GameObject“已被破坏,但你仍然试图访问它”。

我可以通过注释On_TouchStart销毁线来解决这个问题,但我需要它。

这是我的代码:

using UnityEngine;
using System.Collections;

public class Spawner : MonoBehaviour {

    public float AppearTime = 0f;
    public Transform[] teleport;
    public GameObject[] prefab;

    void Spawner(){ 
        int tele_num = Random.Range(0,5);
        int prefab_num = Random.Range(0,3);
        if (prefab !=null){
        Instantiate(prefab[prefab_num], teleport[tele_num].position, teleport[tele_num].rotation );
        }
    }


    void StartTime()
    {
        StartCoroutine(DoTime());

    }

    void OnEnable(){
        EasyTouch.On_TouchStart += On_TouchStart;
    }

    IEnumerator DoTime()
    {
        yield return new WaitForSeconds(AppearTime);
        Spawner();

    }

    void On_TouchStart (Gesture gesture){

        if (gesture.pickObject != null){
            Destroy(gesture.pickObject);
            StartTime();
        }
    }

如果有人能带领我走上正轨,我会很感激。

感谢。

1 个答案:

答案 0 :(得分:0)

我明白了。事实证明我使用的预制件是不正确的,所以我需要将它们换掉。 感谢那些帮助过的人。