예제 #1
0
파일: TerrainTile.cs 프로젝트: AJ213/Awitu
        public void OnDrawGizmos_Tmp()
        {
            Gizmos.color = Color.blue;
            Vector3 center = (Vector3)(coord.vector2d * mapMagic.tileSize.x + mapMagic.tileSize / 2);

            Gizmos.DrawWireCube(center, (Vector3)mapMagic.tileSize);

            center.y += 150;

            //active terrain
            Gizmos.color = Color.red;
            if (draft != null && ActiveTerrain == draft.terrain)
            {
                Gizmos.color = Color.yellow;
            }
            if (main != null && ActiveTerrain == main.terrain)
            {
                Gizmos.color = Color.green;
            }
            Gizmos.DrawCube(center + new Vector3(-150, 0, 0), new Vector3(60, 60, 60));

            //main state
            Gizmos.color = Color.black;
            if (main != null)
            {
                Gizmos.color = Color.green;
                if (!main.applyReady)
                {
                    if (main.task.Enqueued)
                    {
                        Gizmos.color = Color.red;
                    }
                    if (main.task.Active)
                    {
                        Gizmos.color = new Color(0.8f, 0.3f, 0, 1);
                    }

                    if (main.applyMainCoroutines != null)
                    {
                        foreach (CoroutineManager.Task coroutine in main.applyMainCoroutines)
                        {
                            if (coroutine.Active || coroutine.Enqueued)
                            {
                                Gizmos.color = Color.yellow;
                            }
                        }
                    }
                }
            }
            Gizmos.DrawSphere(center + new Vector3(-30, 0, 0), 60);

            //draft state
            Gizmos.color = Color.black;
            if (draft != null)
            {
                Gizmos.color = Color.green;
                if (!draft.applyReady)
                {
                    if (draft.task.Enqueued)
                    {
                        Gizmos.color = Color.red;
                    }
                    if (draft.task.Active)
                    {
                        Gizmos.color = new Color(0.8f, 0.3f, 0, 1);
                    }

                    if (draft.applyMainCoroutines != null)
                    {
                        foreach (CoroutineManager.Task coroutine in draft.applyMainCoroutines)
                        {
                            if (coroutine.Active || coroutine.Enqueued)
                            {
                                Gizmos.color = Color.yellow;
                            }
                        }
                    }
                }
            }
            Gizmos.DrawSphere(center + new Vector3(90, 0, 0), 40);

            //lod switch enqueued
            if (CoroutineManager.IsNameEnqueued("LodSwitch " + coord))
            {
                Gizmos.color = Color.red;
            }
            else if (CoroutineManager.IsNameActive("LodSwitch " + coord))
            {
                Gizmos.color = Color.yellow;
            }
            else
            {
                Gizmos.color = Color.green;
            }
            Gizmos.DrawSphere(center + new Vector3(180, 0, 0), 30);

            //data size
            Gizmos.color = Color.gray;
            int dataSize = 0;

            if (main != null)
            {
                dataSize += main.data.Count();
            }
            if (draft != null)
            {
                dataSize += draft.data.Count();
            }
            dataSize *= 10;
            Gizmos.DrawCube(center + new Vector3(0, 0, -120), new Vector3(dataSize, 30, 30));
        }