유니티 자주 사용하는 에디터 스크립트 함수 모음

유니티 자주 사용하는 에디터 스크립트 함수 모음

UnityEditor 네임스페이스 추가
using UnityEditor;

 

 

EditorWindow 클래스 상속

public class NewBehaviourScript: EditorWindow

 

 

에디터 메뉴 항목 추가
MenuItem 속성을 사용하여 정적 함수를 메뉴 명령으로 설정(static 한정자를 사용하여 정적 메서드로 선언)

[MenuItem("MyMenu/Do Something")]
static void DoSomething()
{
Debug.Log("Doing Something...");
}
https://docs.unity3d.com/ScriptReference/MenuItem.html

 

 

씬에 새로운 게임 오브젝트 생성
GameObject obj = new GameObject("Empty");

 


오브젝트에 컴포넌트 추가
BoxCollider collider= ObjectFactory.AddComponent<BoxCollider>(obj);

 

 

현재 선택한 게임 오브젝트
Selection.activeGameObject

 

 

현재 선택한 게임 오브젝트에 컴포넌트 추가

Selection.activeGameObject.AddComponent<BoxCollider>();

 

 

대상 트랜스폼을 현재 선택된 오브젝트로 설정(대상 트랜스폼의 게임오브젝트를 선택)

Transform t;

Selection.activeTransform = t;

 

 

씬뷰에서 현재 선택한 게임 오브젝트를 확대하여 표시
SceneView.lastActiveSceneView.FrameSelected();
https://docs.unity3d.com/ScriptReference/SceneView.html

 

 

오브젝트 제거

DestroyImmediate(obj);

DestroyImmediate  함수는 에셋을 영구적으로 제거할수있음으로 주의하여 사용한다

https://docs.unity3d.com/ScriptReference/Object.DestroyImmediate.html

 

컴포넌트 제거
BoxCollider collider= obj.GetComponent<BoxCollider>();
DestroyImmediate(collider);

 

 

게임 오브젝트를 프로젝트 폴더에 프리팹 에셋으로 저장

string localPath = "Assets/Prefabs/" + gameObject.name + ".prefab";
PrefabUtility.SaveAsPrefabAsset(gameObject, localPath);

https://docs.unity3d.com/ScriptReference/PrefabUtility.SaveAsPrefabAsset.html

https://docs.unity3d.com/ScriptReference/AssetDatabase.GenerateUniqueAssetPath.html

 

 

 

에셋 폴더(Assets)에 새로운 폴더와 에셋 생성
https://docs.unity3d.com/ScriptReference/AssetDatabase.CreateFolder.html
https://docs.unity3d.com/ScriptReference/AssetDatabase.CreateAsset.html

댓글

Designed by JB FACTORY