[Unity] GUIlayout에 표시되는 정보를 창화하여 드래그 이동 가능

이 기사는?

  • 제목과 같이 Unity 내의 GUILAyout에 표시된 정보를 창화하여 드래그 이동을 할 수 있는 보도입니다
  • Unity에서 Ongui와 GUIlayout을 사용하여 화면 상부에 디버깅 정보를 표시할 때 알기 쉽게 하기 위해 사용하는 기법에 대한 소개입니다
  • 운영 환경

  • Unity 2018.4.12f1
  • 전제. - 질문이 뭐예요?

  • GUIlayout은 다음과 같이 표시됩니다
  • ScriptA.cs
    void OnGUI()
    {
        GUILayout.Label("スクリプトAの情報1");
        GUILayout.Label("スクリプトAの情報2");
        GUILayout.Label("スクリプトAの情報3");
        GUILayout.Label("スクリプトAの情報4");
    }
    
  • 다른 스크립트도 마찬가지로 GUIlayout에 표시될 때 중첩됩니다
  • 원래 Rect로 GUI의 위치를 지정하면 돼요
  • GUI.Label(new Rect(100, 100, 200, 200), “位置指定ラベル”);
    
  • 번거롭기 때문에 겹치더라도 문제가 없습니다
  • 주제 - OnGUI의 정보 창 지정

  • 아래 스크립트에 따라 변경, 창화
  • ScriptA.cs
    Rect windowRect = new Rect (0, 0, 200, 100);
    
    void OnGUI()
    {
        windowRect = GUILayout.Window(0, windowRect, MovableWindow, "Movable window");
    }
    
    private void MovableWindow(int windowId)
    {
        GUILayout.Label("スクリプトAの情報1");
        GUILayout.Label("スクリプトAの情報2");
        GUILayout.Label("スクリプトAの情報3");
        GUILayout.Label("スクリプトAの情報4");
    
        GUI.DragWindow();
    }
    

    ↓ 드래그
  • 드래그를 통해 창의 위치를 변경할 수 있습니다
  • 프로젝트가 겹치지 않으면 보기 쉽다
  • 결과는 창을 생성하기 위해 Rect를 설정했습니다
  • 간단한 스크립트 설명

  • GUILayout.창에 창을 만듭니다
  • GUI.DragWindow에서 Window를 드래그할 수 있습니다
  • GUI.DragWindow는 쓰기 장소에 따라 드래그할 수 있는 부분이 다음과 같이 변경됩니다
  • GUI.DragWindow();
    GUILayout.Button("ボタンの上でもドラッグ可能");
    
    GUILayout.Button("ボタンの上ではドラッグ不可");
    GUI.DragWindow();
    

    참고 자료

  • Unity - Scripting API : GUILayout.DragWindow
  • Unity - Scripting API : GUI.DragWindow
  • 단원 확장에서 노드 기반 창 만들기
  • 좋은 웹페이지 즐겨찾기