52 lines
1.4 KiB
C#
52 lines
1.4 KiB
C#
|
|
using UnityEngine;
|
|||
|
|
using System.Collections.Generic;
|
|||
|
|
|
|||
|
|
public class SimpleMapGenerator : MonoBehaviour
|
|||
|
|
{
|
|||
|
|
public GameObject tilePrefab; // <20><>ġ<EFBFBD><C4A1> Ÿ<><C5B8> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
public int totalTiles = 500; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> Ÿ<><C5B8> <20><>
|
|||
|
|
public float tileSize = 1.0f; // Ÿ<><C5B8> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
void Start()
|
|||
|
|
{
|
|||
|
|
GenerateMap();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void GenerateMap()
|
|||
|
|
{
|
|||
|
|
// <20>ߺ<EFBFBD> <20><>ġ<EFBFBD><C4A1> <20><><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ġ <20><><EFBFBD><EFBFBD>
|
|||
|
|
HashSet<Vector2Int> floorPositions = new HashSet<Vector2Int>();
|
|||
|
|
|
|||
|
|
Vector2Int currentPos = Vector2Int.zero; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (0, 0)
|
|||
|
|
floorPositions.Add(currentPos);
|
|||
|
|
|
|||
|
|
for (int i = 0; i < totalTiles; i++)
|
|||
|
|
{
|
|||
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD>¿<EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
currentPos += GetRandomDirection();
|
|||
|
|
|
|||
|
|
// <20><><EFBFBD>ο<EFBFBD> <20><>ġ<EFBFBD><C4A1><EFBFBD><EFBFBD> <20><><EFBFBD>Ͽ<EFBFBD> <20>߰<EFBFBD>
|
|||
|
|
if (!floorPositions.Contains(currentPos))
|
|||
|
|
{
|
|||
|
|
floorPositions.Add(currentPos);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ġ<EFBFBD><C4A1> Ÿ<><C5B8> <20><><EFBFBD><EFBFBD>
|
|||
|
|
foreach (var pos in floorPositions)
|
|||
|
|
{
|
|||
|
|
Instantiate(tilePrefab, new Vector3(pos.x * tileSize, 0, pos.y * tileSize), Quaternion.identity, transform);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
Vector2Int GetRandomDirection()
|
|||
|
|
{
|
|||
|
|
Vector2Int[] directions = {
|
|||
|
|
Vector2Int.up,
|
|||
|
|
Vector2Int.down,
|
|||
|
|
Vector2Int.left,
|
|||
|
|
Vector2Int.right
|
|||
|
|
};
|
|||
|
|
return directions[Random.Range(0, directions.Length)];
|
|||
|
|
}
|
|||
|
|
}
|