Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 스타일 지침
- Canvas Scaler
- 기술면접
- New Input System
- 의존성 주입
- github desktop
- 상태 패턴
- 이벤트 버스
- MVP 패턴
- 개발
- 구글 스프레드 시트
- 테이블 데이터
- 프로젝트 생성
- 유니티
- unity
- 구글플레이콘솔
- 게임 디자인 패턴
- Dependency Injection
- Abstract Factory Pattern
- Object Pool
- Visual Studio Installer
- Unity 기술면접
- 오브젝트 풀
- 콘솔 앱
- 추상 팩토리 패턴
- event bus
- 데이터 형식
- C#
- Di
- Render Mode
Archives
- Today
- Total
DevDino
[Unity] 계층 뷰에서 바로 프리팹 만드는 메뉴 만들기 본문
개발 비용을 조금이라도 줄이기 위해 고안한 방법입니다.
게임 내 텍스트를 배치할 때 기존 UI 생성 메뉴에서 TextMeshPro를 생성하고, 폰트 에셋과 색, 정렬 방식 지정 등 반복작업을 해야합니다.


이런 반복 작업을 없애 조금이라도 개발 비용을 줄이기 위해 프리팹으로 자주 쓰는 설정을 저장하고 계층뷰에서 바로 생성하는 메뉴를 만들어보도록 하겠습니다.
우선 자주 사용하는 폰트, 설정을 적용한 프리팹을 생성하고 코드로 로드가 가능하게 Resources 폴더 아래에 배치했습니다.

프리팹을 만드는 코드를 작성합니다.
using System;
using UnityEngine;
using UnityEditor;
using UnityEditor.SceneManagement;
public static class CreateUtility
{
// 프리팹 생성
public static void CreatePrefab(string path)
{
GameObject obj = PrefabUtility.InstantiatePrefab(Resources.Load(path)) as GameObject;
Place(obj);
}
public static void Place(GameObject obj)
{
// 경로 탐색
SceneView lastView = SceneView.lastActiveSceneView;
// 위치 세팅
obj.transform.position = lastView ? lastView.pivot : Vector3.zero;
// 오브젝트 배치
StageUtility.PlaceGameObjectInCurrentStage(obj);
// 중복 이름 피하기
GameObjectUtility.EnsureUniqueNameForSibling(obj);
// 생성 취소 작업 등록
Undo.RegisterCreatedObjectUndo(obj, "Create Object : " + obj.name);
// 활성 오브젝트 등록
Selection.activeGameObject = obj;
// 씬이 수정됨을 표시
EditorSceneManager.MarkSceneDirty(EditorSceneManager.GetActiveScene());
}
}
텍스트 프리팹을 생성할 코드를 작성합니다.
using UnityEditor;
public static class CreateTextPrefab
{
[MenuItem("GameObject/Custom/BlackText")]
public static void Create(MenuCommand menuCommand)
{
CreateUtility.CreatePrefab("Prefabs/BlackText");
}
}
계층뷰에서 바로 프리팹을 불러올 수 있음을 확인하였습니다.


자주 쓰는 프리팹이 있다면 커스텀 메뉴로 만들어보는 것도 나쁘지 않을 것 같습니다.
참고한 영상입니다.
https://youtu.be/1uqrSONpXkM?si=9p4c6Aja1EQjCv9R
'Unity' 카테고리의 다른 글
| [Unity] 한정된 자원으로 무수한 스크롤 뷰 나타내기(셀 재활용) (0) | 2024.08.27 |
|---|---|
| [Unity] 구글 스프레드 시트 TSV 파일 로드하기 (0) | 2024.04.17 |
| [Unity] 깃허브에 올릴 때 한글이 깨지는 현상 (0) | 2024.04.10 |
| [Unity] 모바일 다양한 해상도 대응하기 (0) | 2024.04.06 |
| [Unity] 씬뷰와 게임뷰 똑같이 배치하기 (0) | 2024.04.06 |