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

本文关键字:2d 对象 位置 定位 Unity3D | 更新日期: 2023-09-27 18:18:38

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

我还希望它们在固定的时间间隔内随机生成,一次一个。(所以如果它出现在一个位置,比如说5秒,它将被销毁,下一个将出现在不同的位置。)

我试图做固定产卵位置,但无效产卵者不想工作。

我得到一个"类型为"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();
        }
    }

如果有人能给我指路,我会很感激的。

谢谢。

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

我明白了。原来我用的预制件是不正确的,所以我需要把它们换成正确的。感谢那些帮助过我的人。