Unity-Spawn Prefabs(克隆对象)的位置错误

时间:2019-03-02 15:26:04

标签: c# unity3d

我尝试在 SetActive(false)之后生成具有随机位置的预制件(克隆对象)再次


我想要什么:

游泳者对象之后,使用预制件(克隆对象)输入触发器,

预制件(克隆对象)设置为 SetActive(false),然后它必须在随机位置生成。


我做了什么:

Swimmer.cs <-这是在触发时使克隆对象 SetActive(false)

void OnTriggerEnter2D (Collider2D other) {
        if (other.gameObject.tag == "Trash") {
            other.gameObject.SetActive (false);
        }
}

Trash.cs

    public GameObject columnPrefab;                                 
    public int columnPoolSize = 5;                                 
    public float spawnRate = 3f;                                    
    public float columnMin = -1f;                                  
    public float columnMax = 3.5f;                                  

    private GameObject[] columns;                                   
    private int currentColumn = 0;                                  

    private Vector2 objectPoolPosition = new Vector2 (-15,-25);     
    private float spawnXPosition = 10f;

    private float timeSinceLastSpawned;  

void Start()
        {
            timeSinceLastSpawned = 0f;


            columns = new GameObject[columnPoolSize];

            for(int i = 0; i < columnPoolSize; i++)
            {
                columns [i] = (GameObject)Instantiate (columnPrefab, objectPoolPosition, Quaternion.identity);
            }
        }


        void Update()
        {
            timeSinceLastSpawned += Time.deltaTime;
                if (GameControl.instance.gameOver == false && timeSinceLastSpawned >= spawnRate) {   
                    timeSinceLastSpawned = 0f;


                    float spawnYPosition = Random.Range (columnMin, columnMax);

                    // This part what I am using to set it active
                    columns [currentColumn].SetActive(true);
                    columns [currentColumn].transform.position = new Vector2 (spawnXPosition, spawnYPosition);

                    currentColumn++;

                    if (currentColumn >= columnPoolSize) {
                        currentColumn = 0;
                    }
                }
        }



我所拥有的:

预制件(克隆对象)成功生成,但位置错误(浮动在右侧)

您可以看这张图片Click here.


那么,如何设置ActiveSet克隆对象并为其随机生成位置呢?谢谢

1 个答案:

答案 0 :(得分:1)

实际上没有问题,并且游戏中的所有内容都可以正常工作。

您将“场景视图”滚动到比“游戏视图”略远的位置。您可以看到屏幕左侧的绿色海藻。看看您的“场景视图”如何显示更多的叶子?

“场景视图”仅用于Unity编辑器,您可以独立于游戏视图中相机的位置进行缩放和滚动。如果要在“游戏视图”中移动摄像机,则必须在层次结构中的“主摄像机”对象上更改摄像机参数,或者可以通过代码更新Camera.main