Get it on Google Play


Wm뮤 :: OnGUI

블로그 이미지
가끔 그림그리거나 3D모델링하거나
취미로 로봇만드는
전자과 게임프로그래머 (퇴사함)
2022.3.22f1 주로 사용
모카쨩
@Ahzkwid

Recent Comment

Archive


2020. 7. 27. 14:48 Unity/C#

 

 

 

Debug.Log로 추적하기 힘든 실시간 상황값들을 추적할때 사용한다.

 

그냥 UGUI에 띄우면 되는거 아니냐? 하겠지만

ugui 할당하려면 캔버스 할당해서 Text 박스 맞추고 디버그모드에서만 활성화 하도록 따로 맞춰주고

누구한테 보여주려는거도 아니고 변수 하나 보는것뿐인데 여간 번거로운게 아니라 이쪽이 이득이다.

    #if UNITY_EDITOR //||true
    void OnGUI()
    {
        if (Debug.isDebugBuild)
        {
            GUI.Box(new Rect(0, 0, 200, 24), "Count: " + count);
        }
    }
    #endif
    public static int count = 0;

V3

    void OnGUI()
    {
#if UNITY_EDITOR
        if (UnityEditor.EditorUserBuildSettings.development)
#else
        if (Debug.isDebugBuild)
#endif
        {
            GUI.Box(new Rect(0, 0, 200, 24), "Count: " + count);
        }
    }
    public static int count = 0;

 

 

 

 

왼쪽정렬이 필요할때

    #if UNITY_EDITOR //||true
    void OnGUI()
    {
        GUI.Box(new Rect(0, 0, 200, 24), "");
        GUI.Label(new Rect(10, 0, 200, 24), "Count: " + count);
    }
    #endif
    public static int count = 0;

GUIStyle을 안 쓰는 이유는 글자색이나 크기 배경색 등등을 전부 지정해줘야해서

 

 

 

 

아래처럼 짜면 실시간으로 변수를 확인하면서 수정할수 있다.

근데 가능하면 인스펙터를 쓰고 이런건 전역값들을 추적할때 쓰자

int count=0;
string input = "";
#if UNITY_EDITOR //||true
void OnGUI()
{
  int lineHei = 18;
  input = GUI.TextField(new Rect(10, lineHei * 4, 300, lineHei * 1)
  , (input == "") ? input : count.ToString());
  if(input!="")
  {
  	count = int.Parse(input);
  }
}
#endif

 

버튼

    #if UNITY_EDITOR //||true
    void OnGUI()
    {
        if (Debug.isDebugBuild)
        {
            if(GUI.Button(new Rect(100, 100, 100, 24), "button"))
            {
                //명령
            }
        }
        
    }
    #endif

 

'Unity > C#' 카테고리의 다른 글

c# 문자열 처리  (0) 2020.07.28
싱글톤 패턴  (0) 2020.07.20
유니티 버그, 에러, 오류모음  (0) 2020.07.20
posted by 모카쨩

저사양 유저용 블로그 진입