728x90
728x90
10번째 수업
간단한 로그라이크 게임 만들기 Start
1.BoardManager
using UnityEngine;
using System;
using System.Collections.Generic;
//using Random = UnityEngine.Random;
//List 활용, 이중For문, class(사용자 정의자료형)
//배열<-->random.range
public class Count
{
public int min, max;
public Count(int _min, int _max)
{
min = _min; max = _max;
}
}
public class BoardManager : MonoBehaviour
{
//자원->object->저장 변수
// public -> 접근제한자 ->공유, 인스펙터 창에 노출
//SerializeField ->공유X, 인스펙터 창 노출
[SerializeField] GameObject[] floorTiles;
[SerializeField] GameObject[] outwallTiles;
[SerializeField] GameObject[] wallTiles;
[SerializeField] GameObject[] enemyTiles;
[SerializeField] GameObject[] foodTiles;
[SerializeField] GameObject exit;
int mapSize = 8;
//random->최소값, 최대값
Count wallCount = new Count(5, 9);
Count foodCount = new Count(1, 5);
}
private void Start()
{
BoardSetup(); //바닥, 외벽
}
private void BoardSetup()
{
boardHolder = new GameObject("boardHolder");
for (int x = -1; x < mapSize + 1; x++)
{
for (int y = -1; y <= mapSize; y++)
{
//idx : 위치 정보
//정수일때 랜덤은 최소값~최대값-1 사이의 값이 생성
//실수일대 랜덤은 최소값~최대값
int idx = Random.Range(0, floorTiles.Length); //배열의 크기(8) -> 0~7
GameObject tile = floorTiles[idx];
//외벽으로 타일을 교체
if (x == -1 || x == mapSize || y == -1 || y == 8)
{
idx = Random.Range(0, outwallTiles.Length);
tile= outwallTiles[idx];
}
GameObject go = Instantiate(tile, new Vector3(x, y), Quaternion.identity);
//Instantiate : (무엇을, 위치, 회전) -> 생성하시오
//부모와 자식의 관계
go.transform.SetParent(boardHolder.transform);
}
}
}
728x90
'유니티 > C#' 카테고리의 다른 글
12. 간단 로그라이크 만들기 - 3 (0) | 2023.04.04 |
---|---|
11. 간단 로그라이크 만들기 - 2 (0) | 2023.04.03 |
9. C# 기초 수업 -9 (0) | 2023.03.30 |
8. C# 기초 수업 -8 (0) | 2023.03.29 |
7. C# 기초 수업 -7 (0) | 2023.03.28 |