본문 바로가기

분류 전체보기60

[Unity]씬 버튼 하나로 준비하기 새 씬을 만들때마다 기본으로 따라오는 오브젝트들이 있었다. 타일맵, ui 캔버스, 글로벌 라이트, 시네마틱 카메라 등등.. 프리팹으로 만들어서 가져다 쓰면 되긴하지만 그마저도 많아지다 보니 세팅해야할 작업이 많아 여간 귀찮은게 아니었다. 에디터에 버튼하나 만들어서 코드에 필요한 것들을 다 세팅해서 씬 준비를 해보았다.(노가다가 좀 필요하지만 하고 나면 편하다.) 미리 입력한 width height 값으로 타일맵도 자동으로 세팅하게 해주었다. 기본으로 타일맵 밖으로 안나가게 사이즈 가장 바깥쪽은 block 타일로 자동으로 세팅되게 한 사진이다. 2019. 10. 20.
[Unity]error: 프리팹의 parent 변경할 때 실수 조심 unity error: Setting the parent of a transform which resides in a prefab is disabled to prevent data corruption 코드 상에서 프리팹을 불러오고 parent를 수정할 때 하는 실수. 로드한 프리팹을 가지고 setparent 세팅하는 실수를 했다. 인스터스화된 게임오브젝트를 변수로 받은 다음 parent를 세팅하자. GameObject lightPrefab = Resources.Load("Prefabs/LightGroup") as GameObject; GameObject instance = PrefabUtility.InstantiatePrefab(lightPrefab) as GameObject; instance.trans.. 2019. 10. 20.
[Unity]Inspector에 버튼 추가하기 public class PrepareScene : MonoBehaviour { //... } [CustomEditor(typeof(PrepareScene))] public class PrepareSceneEditor : Editor { public override void OnInspectorGUI() { DrawDefaultInspector(); PrepareScene myScript = (PrepareScene)target; if (GUILayout.Button("Prepare Default Tilemap")) { myScript.Prepare(); } } } 매번 씬 생성 후 추가 작업하는게 번거로워 작업해야 할 내용을 만들어 버튼하나로 씬 세팅을 마쳤다. 2019. 10. 20.
[Unity]에디터 상태에서의 프리팹 Instantiate 보통 Instantiate(gameobject) 이런식으로 하는데 이번에 작업하면서 에디터 상태에서 인스턴스화 할 일이 있었다. 그 때는 위에 방식이 PrefabUtility.InstantiatePrerfab 함수를 통해 인스턴스화 해야한다. GameObject canvasPrefab = Resources.Load("Prefabs/UI/UICanvas") as GameObject; PrefabUtility.InstantiatePrefab(canvasPrefab); 2019. 10. 20.