TigerProject/Assets/Test/Block/BlockMapGenerator.cs

48 lines
1.4 KiB
C#
Raw Normal View History

using UnityEngine;
public class BlockMapGenerator : MonoBehaviour
{
[Header("<22><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>")]
[SerializeField]
private GameObject blockPrefab; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> DestructibleBlock <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
[SerializeField]
private int width = 20; // <20><> <20><><EFBFBD><EFBFBD> ũ<><C5A9>
[SerializeField]
private int height = 10; // <20><> <20><><EFBFBD><EFBFBD> ũ<><C5A9>
[SerializeField]
private float spacing = 1.0f; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ ũ<><20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>)
[Header("<22><><EFBFBD><EFBFBD> Ȯ<><C8AE> (0 ~ 1)")]
[Range(0, 1)]
[SerializeField]
private float fillPercent = 0.5f; // 50% Ȯ<><C8AE><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
private void Start()
{
GenerateMap();
}
void GenerateMap()
{
// <20><><EFBFBD><EFBFBD> <20>߾<EFBFBD><DFBE><EFBFBD> (0,0)<29><> <20><><EFBFBD>߱<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ġ <20><><EFBFBD><EFBFBD>
Vector2 startPos = new Vector2(-width / 2f * spacing, -height / 2f * spacing);
for (int x = 0; x < width; x++)
{
for (int y = 0; y < height; y++)
{
// <20>÷<EFBFBD><C3B7>̾<EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ġ(<28>߾<EFBFBD>)<29><> <20><><EFBFBD><EFBFBD><EFBFBD>α<EFBFBD>
if (x == width / 2 && y == height / 2)
{
continue;
}
if (Random.value < fillPercent)
{
Vector2 spawnPos = startPos + new Vector2(x * spacing, y * spacing);
Instantiate(blockPrefab, spawnPos, Quaternion.identity, transform);
}
}
}
}
}