Unity5의 GUI 클래스에 추가된 Scope 정보
사용법
지금까지
void OnGUI ()
{
GUILayout.BeginHorizontal();
GUILayout.Label("Label 1");
GUILayout.Label("Label 2");
GUILayout.EndHorizontal();
}
앞으로는 다음과 같은 관리가 가능하다.void OnGUI ()
{
using (var scope = new GUILayout.HorizontalScope()) {
GUILayout.Label ("Label 1");
GUILayout.Label ("Label 2");
}
}
원래 Scope 작성
어셈블러 브라우저로 Horizontal Scape를 보면 계승
GUI.Scope
할 수 있을 것 같다.IndentScape을 만들어 보도록 하겠습니다.
GUI 편집은
EditorGUI.indentLevel
에 따라 들여쓰기를 변경할 수 있습니다.Scape로 이것을 실현시키자.IndentScope.cs
using UnityEngine;
using UnityEditor;
public class IndentScope : GUI.Scope
{
int _indentLevel;
public IndentScope (int indentLevel)
{
_indentLevel = EditorGUI.indentLevel;
EditorGUI.indentLevel = indentLevel;
}
protected override void CloseScope ()
{
EditorGUI.indentLevel = _indentLevel;
}
}
다음과 같이 사용할 수 있습니다.NewBehaviourScript.cs
using UnityEngine;
using System.Collections;
using UnityEditor;
public class NewBehaviourScript : EditorWindow
{
[MenuItem("Window/Example")]
static void Open ()
{
GetWindow<NewBehaviourScript> ();
}
void OnGUI ()
{
using (var scope = new IndentScope(0)) {
EditorGUILayout.LabelField ("IndentLevel 0");
}
using (var scope = new IndentScope(1)) {
EditorGUILayout.LabelField ("IndentLevel 1");
}
using (var scope = new IndentScope(2)) {
EditorGUILayout.LabelField ("IndentLevel 2");
}
}
}
Reference
이 문제에 관하여(Unity5의 GUI 클래스에 추가된 Scope 정보), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kyusyukeigo/items/4642ae85d6ff075acf31텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)