728x90
1. Board 판 만들기
2.Editor 만들기
1.Board 판 만들기
- 단순한 보드판 생성 함수를 만듭니다.
- x*y 크기의 보드판을 생성합니다.
- 보드판은 1개만 존재할 것이기 때문에 보드판이 생성되었을때 또 다른 보드판이 있는지 확인후 있다면 그 즉시 삭제하고 새로운 보드판을 만듭니다.
public void BoardGenerator()
{
string holderName = "BoardHolder";
if (transform.Find(holderName))
{
DestroyImmediate(transform.Find(holderName).gameObject);
}
Transform boardHolder = new GameObject(holderName).transform;
boardHolder.transform.parent = transform;
for(int i = 0; i < x; i++)
{
for(int j = 0; j < y; j++)
{
GameObject newDot = Instantiate(dot, new Vector3(start.x + scale * i, start.y + scale * j), Quaternion.identity);
newDot.transform.parent = boardHolder;
}
}
}
2.Editor 만들기
- Editor 폴더를 만듭니다.
- 폴더 안에 스크립트를 추가합니다.
- Editor로 사용할 것이기 때문에 using UnityEditor 을 추가해 줍니다.
- 위 에디터를 어느곳에 적용 시킬지 customEditor(typeof())로 설정해 줍니다.
- 스크립트에 Editor을 상속시켜줍니다.
- OnInspectorGUI 함수를 오버라이드 해줍니다.
- 인스펙터 창이 켜졌을때와, 버튼을 추가해줘서 버튼을 누를때 보트판이 생성되도록 해줍니다.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;
[CustomEditor(typeof(Board))]
public class BoardEditor : Editor
{
public override void OnInspectorGUI()
{
Board board = target as Board;
if (DrawDefaultInspector())
{
board.BoardGenerator();
}
if (GUILayout.Button("Generator"))
{
board.BoardGenerator();
}
}
}
보드의 인스펙터창을 수정하거나 Generator 버튼을 누르면 게임을 실행시키지 않더라도 Sence에서 바로 확인할 수 있습니다.
728x90
'Unity > 제로부터 구현' 카테고리의 다른 글
Electric Attack 구현하기 ( +Overlap) (0) | 2023.12.11 |
---|---|
A* 알고리즘을 사용한 길찾기 구현 (0) | 2023.12.07 |
같은 맵 계속 반복 시키기(3D). (0) | 2023.12.01 |
1인칭 시점 구현하기 + 이동 (0) | 2023.11.30 |
짝 맞추기 카드 만들기, 카드 섞기, 리소스를 사용한 스프라이트 설정 (0) | 2023.11.28 |