为什么实例化的预制件克隆在上一个实例化成功之前不会在游戏视图中呈现?

问题描述 投票:0回答:0

我正在开发一款名为“保护广场”的小型 2D 游戏,顾名思义,玩家必须通过加电、控制广场本身以及控制用来偏转敌人的桨来保护广场免受圆形敌人的侵害。我目前正在开发一种无尽模式,随着玩家的前进,关卡会不断地从手工制作的预制件中生成,但我遇到了一个问题。在成功实例化 4 到 5 个段(预制件)后,未来的段虽然仍在实例化,但在游戏视图中是不可见的。此功能仍在进行中,所以目前我只有两个预制件片段,并且在关卡开始时,两个预制件都正确实例化,但在达到 4 到 5 段阈值后,之前的预制件相同正确实例化变得不可见。一旦这种情况发生在一个预制件上,它就会发生在所有未来的预制件上,但碰撞仍然会按预期进行。尽管在游戏视图中是不可见的,但预制件在编辑器中显示正常。我曾尝试保存我的游戏并重新启动 Unity,但除此之外,我对导致此问题的原因或如何排除故障和修复它一无所知。我在下面包含了我的关卡生成脚本,尽管我怀疑脚本是问题所在,因为即使是有问题的预制件也会在正确的位置实例化。

    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
     
    public class LevelSpawner : MonoBehaviour
    {
        public GameObject[] levelPrefabs; // Array of level prefabs
        public Transform square; // Reference to the square object
        public float triggerDistance; // Distance at which to trigger the next level piece
        public Transform startingSpawnPoint; // Spawn point of the starting piece
     
        private Transform lastSpawnPoint; // Last spawn point
     
        void Start()
        {
            lastSpawnPoint = startingSpawnPoint;
        }
     
        void Update()
        {
            // Check if the square is close enough to the last spawn point to trigger the next level piece
            if (Vector2.Distance(square.position, lastSpawnPoint.position) <= triggerDistance)
            {
                // Select a random level prefab
                int index = Random.Range(0, levelPrefabs.Length);
                GameObject levelPrefab = levelPrefabs[index];
     
                // Determine the position for instantiating the new level piece
                Vector3 spawnPosition = lastSpawnPoint.position;
     
                // Instantiate the level prefab at the spawn position
                GameObject newLevelPiece = Instantiate(levelPrefab, spawnPosition, Quaternion.identity);
     
                // Update the last spawn point
                lastSpawnPoint = newLevelPiece.transform.Find("SpawnPoint");
            }
        }
    }
c# unity3d
© www.soinside.com 2019 - 2024. All rights reserved.