Beispiel #1
0
        private void OnValidate()
        {
            PlayerControllerTest playerControllerTest = GameObject.FindObjectOfType <PlayerControllerTest>();

            if (playerControllerTest)
            {
                AdjacentRoomCulling adjacentRoomCulling = playerControllerTest.head.gameObject.GetComponent <AdjacentRoomCulling>();
                if (!adjacentRoomCulling)
                {
                    adjacentRoomCulling = playerControllerTest.head.gameObject.AddComponent <AdjacentRoomCulling>();
                }
                adjacentRoomCulling.enabled = dungeonCullAdjacentRoom;
            }
        }
Beispiel #2
0
        private void OnGenerationStatusChanged(DungeonGenerator generator, GenerationStatus status)
        {
            if (status != GenerationStatus.Complete)
            {
                return;
            }

            SceneManager.MoveGameObjectToScene(generator.CurrentDungeon.gameObject, this.gameObject.scene);

            StringBuilder stringBuilder = new StringBuilder();

            stringBuilder.AppendLine("Seed: " + generator.ChosenSeed);
            stringBuilder.AppendLine("Generation time: " + generator.GenerationStats.TotalTime + " ms");
            stringBuilder.AppendLine("Main room count: " + generator.GenerationStats.MainPathRoomCount);
            stringBuilder.AppendLine("Branch room count: " + generator.GenerationStats.BranchPathRoomCount);
            stringBuilder.AppendLine("Total room count: " + generator.GenerationStats.TotalRoomCount);
            stringBuilder.AppendLine("Retry count: " + generator.GenerationStats.TotalRetries);
            Debug.Log(stringBuilder.ToString());

            GenerateNavMesh();

            PlayerSpawner playerSpawner = GameObject.FindObjectOfType <PlayerSpawner>();

            if (playerSpawner)
            {
                playerStart = playerSpawner.transform;
                PlayerControllerTest playerControllerTest = GameObject.FindObjectOfType <PlayerControllerTest>();
                if (playerControllerTest)
                {
                    playerControllerTest.transform.SetPositionAndRotation(playerStart.position, playerStart.rotation);
                    AdjacentRoomCulling adjacentRoomCulling = playerControllerTest.head.gameObject.GetComponent <AdjacentRoomCulling>();
                    if (!adjacentRoomCulling)
                    {
                        adjacentRoomCulling = playerControllerTest.head.gameObject.AddComponent <AdjacentRoomCulling>();
                    }
                    adjacentRoomCulling.enabled = dungeonCullAdjacentRoom;
                }
            }
            else
            {
                Debug.LogError("No player spawner found for dungeon!");
            }
        }