Unity3D 자동 스크롤하기

Vector2 m_ScrollPosition;

// 한줄씩 새로운 메시자를 추가하기
public void AddLogMessage(string msg)
{
 m_LogMsg += msg + "\n";
 // 자동으로 맨 밑으로 스크롤
 m_ScrollPosition.y = Mathf.Infinity;
}

// 화면 갱신 이벤트가 발생될때마다 호출
void OnGUI()
{
 // 버튼(m_Rt) 위치 아래 화면에 스크롤 영역을 생성
 Rect rtArea = new Rect(0, (int)(m_Rt.yMax) + 5, Screen.width, Screen.height - (int)(m_Rt.yMax) - 5);
 GUILayout.BeginArea(rtArea);
 m_ScrollPosition = GUILayout.BeginScrollView(m_ScrollPosition, GUILayout.Width(Screen.width), GUILayout.Height(Screen.height - (int)(m_Rt.yMax) - 5));

 // 메시지가 추가
 GUILayout.Label(m_LogMsg);

 // OnGUI 에서 사용하면 스크롤바를 움직일 수 없다
 // m_ScrollPosition.y = Mathf.Infinity;
 GUILayout.EndScrollView();
 GUILayout.EndArea();

  ... 중략 ...
}

comments:

댓글 쓰기