선택한 오브젝트를 제외한 오브젝트의 SetActive를 false처리한다. 단축키는 Ctrl + Shift + Q

 

같은 부모 오브젝트 아래에서 작동

 

최상단 오브젝트에서 작동

 

-----------------------------------------------------------------------------------

2021.12.13

단축키를 사용하기전에 애초에 꺼져있는 오브젝트는 다시 켜지지 않도록 처리

1.Ctrl + Shift + Q

2.해당 오브젝트의 포지션값 변경

3.Ctrl + Shift + Q (꺼져있던 오브젝트 다시 활성화)

-----------------------------------------------------------------------------------

 

 

https://github.com/hahahohohun/PublicCode/blob/main/README.md#eccustomtoolscs

 

반응형

오브젝트에 인덱스를 추가하여 이름을 변경이 필요할때!

ctrl + D 를 통해 생성한 오브젝트는 (1),(2),(3)~~~ 이름 마지막에 이렇게 숫자가 붙는다. 하나 하나 바꾸기 번거롭기때문에 이것을 한꺼번에 변경이 가능한 간단한 툴을 만들었다.

 

https://github.com/hahahohohun/PublicCode/blob/main/README.md#ecnamingcs

 

반응형

커스텀 에디터를 이용한 맵툴 제작

 

작업 결과물

 

GUILayout.Label(string text );

 GUILayout.Label("Map Name");

=> 윈도 류창에 텍스트 라벨에 원하는 string을 표시할 수 있다.

 

EditorGUILayout.TextField( )

_strMapName = EditorGUILayout.TextField(_strMapName);
 GUI.enabled = (_strMapName == string.Empty || _strMapName == null) ? false : true;

=> 텍스트 입력필드, GUI.enabled을 통해 입력값이 있어야 

 

GUI.enabled

GUI.enabled = (_strMapName == string.Empty || _strMapName == null) ? false : true;

=> 해당 코드 아래에 버튼이나 입력 칸을 활성화 처리 여부를 정한다.

 

GUILayout.Button( )

if (GUILayout.Button("Create New Map", GUILayout.ExpandWidth(true)))
{
    CreateMap();
    _bEditOn = true;
}

=> 버튼 , 클릭하면 if안에 함수들이 실행된다.

 

GUILayout.Space()

GUILayout.Space(12);

=> 여백을 준다.

 

EditorGUILayout.ObjectField()

_txtAssetMapContent = (TextAsset)EditorGUILayout.ObjectField(_txtAssetMapContent, typeof(TextAsset), GUILayout.ExpandWidth(true));

=> 설정한 타입으로 입력받을수있는 링크 필드가 생긴다. 나는 TextAsset으로 텍스트 관련 오브젝트만 입력받을 수 있도록 했지만 해당 타입을 그냥 object라고 하면 어떠한 오브젝트도 받을 수 있는 상태가 된다.

반응형

1. namespace 추가

 

2. EditorWindow상속

monobehavior는 없애주고, start(),update()도 같이 지워준다

 

3. 에디터 이름및 경로 설정

[MenuItem("TestEditor/EditorWindow")]

유니티 에디터의 등록될 이름과 경로를 적어준 뒤 static함수를 하나 만들어주면 아래와 같이 실제 유니티에서 생성된 것을 볼 수 있다.

유니티 에디터

 

4. 에디터 창 띄우기

현재는 클릭해도 아무것도 변화가 없다. 당연!

EditorWindow클래스에있는 GetWindow라는 함수를 사용해 창을 띄울 수 있다.

에디터 창 이름 변경 

아래 My Editor로 변경된 걸 볼 수 있다.

 

5. 글자 띄우기

OnGUI()함수안에 GUILayout.Label("안녕하세요 반갑습니다."); 넣어준다.

 

문자 입력받기

6. 버튼 만들기

GUILayout.Button("버튼")

 

7. 적용

프로젝트 원소 대전에서 플레이 중의 에디터로 속성을 바꿀 수 있게 했다. 속성마다 테스트할 경우가 많기 때문에 만들어봤다.

물일 때는 불속 성이 도망가지만 땅 속성이면 다시 쫒아온다.

물>불>땅>물

반응형

+ Recent posts