Exemplo n.º 1
0
        void Sync()
        {
            // ダンジョン生成した情報とScene上のオブジェクト群を同期する
            m_dungeonMapModules.ForEach(cell =>
            {
                switch (cell.Status)
                {
                case CellStatus.Road:
                    RoadCells.Add(cell);
                    cell.gameObject.SetActive(false);
                    break;

                case CellStatus.Goal:
                case CellStatus.Start:
                    cell.gameObject.SetActive(false);
                    break;

                case CellStatus.DigableWall:
                case CellStatus.UndigableWall:
                    // cellのカラーをランダムに設定
                    cell.GetComponent <MeshRenderer>().material.color = new Color(Random.Range(0f, 1f), Random.Range(0f, 1f), Random.Range(0f, 1f), m_alpha);
                    break;
                }
            });
        }
Exemplo n.º 2
0
        /// <summary>
        /// Portalを各地に設定する. 設定場所は各行き止まり地点
        /// </summary>
        void SpawnPortals()
        {
#if false
            // inspectorで設定した個数分ランダムに排出する
            var portal = Resources.Load <GameObject>("Portal_green");

            foreach (var cell in RoadCells)
            {
                if (cell.Status == CellStatus.Start)
                {
                    continue;
                }
                var go = Instantiate(portal, transform);
                go.transform.localPosition = cell.transform.localPosition;
                go.transform.localScale    = cell.transform.localScale;

                var vec = Rotation[Random.Range(0, Rotation.Count - 1)];
                go.transform.rotation = Quaternion.Euler(vec);
                AllPortals++;
            }
#else
            // inspectorで設定した個数分ランダムに排出する
            var portal = Resources.Load <GameObject>("Portal_green");
            for (int i = 0; i < m_spawnPortalVolue; i++)
            {
                var cell = RoadCells[Random.Range(0, RoadCells.Count - 1)];
                if (cell.Status == CellStatus.Start)
                {
                    i--;
                    continue;
                }

                var go = Instantiate(portal, transform);
                go.transform.localPosition = cell.transform.localPosition;
                go.transform.localScale    = cell.transform.localScale;

                var vec = Rotation[Random.Range(0, Rotation.Count - 1)];
                go.transform.rotation = Quaternion.Euler(vec);
                RoadCells.Remove(cell);
                AllPortals++;
            }
#endif
        }