Exemple #1
0
        private void Start()
        {
            if (isWorld)
            {
                return;
            }

            roomColor = Random.ColorHSV(0f, 1f, 0.5f, 1f);

            oldName = transform.name;
            if (volumes.Count < 1)
            {
                RoomVolume volume = new RoomVolume
                {
                    scale    = new Vector3(5f, 3f, 5f),
                    position = new Vector3(0f, 1f, 0f)
                };
                volumes.Add(volume);
            }
            if (Application.isPlaying)
            {
                for (int i = 0; i < volumes.Count; i++)
                {
                    GameObject obj = new GameObject();
                    obj.name = roomName + " Collider " + i;
                    obj.transform.position = transform.position + volumes[i].position;
                    obj.transform.rotation = Quaternion.Euler(volumes[i].rotation);
                    obj.transform.parent   = transform;
                    obj.gameObject.layer   = LayerMask.NameToLayer("Post Processing Volumes");

                    BoxCollider col = obj.AddComponent <BoxCollider>();
                    col.size      = volumes[i].scale;
                    col.isTrigger = true;
                    col.tag       = "Room";
                    spawnedColliders.Add(col);

                    NodeManager       nodeManager       = GameManager.instance.GetNodeManager();
                    PostProcessVolume postProcessVolume = obj.AddComponent <PostProcessVolume>();
                    postProcessVolume.profile       = nodeManager.GetProfile(environment);
                    postProcessVolume.priority      = Random.Range(nodeManager.profilePriorityMinMax.x, nodeManager.profilePriorityMinMax.y);
                    postProcessVolume.blendDistance = nodeManager.profileBlendDistance;
                }
            }
        }