示例#1
0
        void CreatePath()
        {
            for (int i = 0; i < 30; i++)
            {
                var  pos       = _lastTilePos;
                bool movingByX = Random.Range(0f, 1f) < .5f;
                if (movingByX)
                {
                    pos.x++;
                }
                else
                {
                    pos.z++;
                }

                PlaceTile(pos);
                _crystalController.PlaceCrystal(pos);
                _lastTilePos = pos;

                switch (_difficulty)
                {
                case DifficultyLevel.Easy:
                    if (movingByX)
                    {
                        PlaceTile(new Vector3(pos.x, pos.y, pos.z + 1));
                        PlaceTile(new Vector3(pos.x, pos.y, pos.z - 1));
                    }
                    else
                    {
                        PlaceTile(new Vector3(pos.x + 1, pos.y, pos.z));
                        PlaceTile(new Vector3(pos.x - 1, pos.y, pos.z));
                    }

                    break;

                case DifficultyLevel.Medium:
                    if (movingByX)
                    {
                        pos.z++;
                    }
                    else
                    {
                        pos.x++;
                    }

                    PlaceTile(pos);
                    break;

                case DifficultyLevel.Hard:
                    break;

                default:
                    throw new ArgumentOutOfRangeException();
                }
            }
        }