Unity에서 스크롤보기를 사용하는 방법을 이해하지 못합니다. 스크롤 뷰를 만들 때 사용하는 스크립트는 다음과 같습니다.Unity의 GUI.BeginScrollView
#pragma strict
//not implemented yet
var selectObjectIcon : Texture2D;
var addEntityIcon : Texture2D;
var selectNextEntityIcon : Texture2D;
var createPathIcon : Texture2D;
var assignPathIcon : Texture2D;
var changeSpeedIcon : Texture2D;
var deleteObjectIcon : Texture2D;
var zoomIcon : Texture2D;
//not supposed to be implemented
var dragEntityIcon : Texture2D;
var assignPointIcon : Texture2D;
var haltIcon : Texture2D;
var warpIcon : Texture2D;
var glowStickIcon : Texture2D;
var selectWeaponIcon : Texture2D;
var reviveIcon : Texture2D;
var lineOfSightIcon : Texture2D;
var buttonDimensions : float;
var buttonStyle : GUIStyle;
private var scrollPosition : Vector2 = Vector2.zero;
function OnGUI() {
//scrollPosition = GUI.BeginScrollView(Rect(Screen.width-buttonDimensions, 0, buttonDimensions, Screen.height), scrollPosition, Rect(0, 0, buttonDimensions, buttonDimensions));
scrollPosition = GUI.BeginScrollView(Rect(Screen.width-buttonDimensions, 0, buttonDimensions, Screen.height), scrollPosition, Rect(0, 0, buttonDimensions, Screen.height));
GUILayout.BeginVertical();
if(GUILayout.Button(selectObjectIcon, buttonStyle)){
Debug.Log("select object pressed");
}
if(GUILayout.Button(addEntityIcon, buttonStyle)){
Debug.Log("select object pressed");
}
if(GUILayout.Button(selectNextEntityIcon, buttonStyle)){
Debug.Log("select object pressed");
}
if(GUILayout.Button(createPathIcon, buttonStyle)){
Debug.Log("select object pressed");
}
if(GUILayout.Button(assignPathIcon, buttonStyle)){
Debug.Log("select object pressed");
}
if(GUILayout.Button(changeSpeedIcon, buttonStyle)){
Debug.Log("select object pressed");
}
if(GUILayout.Button(deleteObjectIcon, buttonStyle)){
Debug.Log("select object pressed");
}
if(GUILayout.Button(zoomIcon, buttonStyle)){
Debug.Log("select object pressed");
}
if(GUILayout.Button(dragEntityIcon, buttonStyle)){
Debug.Log("select object pressed");
}
if(GUILayout.Button(assignPointIcon, buttonStyle)){
Debug.Log("select object pressed");
}
if(GUILayout.Button(haltIcon, buttonStyle)){
Debug.Log("select object pressed");
}
if(GUILayout.Button(warpIcon, buttonStyle)){
Debug.Log("select object pressed");
}
if(GUILayout.Button(glowStickIcon, buttonStyle)){
Debug.Log("select object pressed");
}
if(GUILayout.Button(selectWeaponIcon, buttonStyle)){
Debug.Log("select object pressed");
}
if(GUILayout.Button(reviveIcon, buttonStyle)){
Debug.Log("select object pressed");
}
if(GUILayout.Button(lineOfSightIcon, buttonStyle)){
Debug.Log("select object pressed");
}
GUILayout.EndVertical();
GUI.EndScrollView();
}
그러나 의도 한대로 작동하지 않습니다. 버튼이 너무 멀리 떨어져있어 잘려나 간다. 스크롤 할 수 없다. 또한 BeginScrollView에 대한 세 번째 인수가 bea bout으로 가정되는 내용을 이해하지 못합니다. 워드 프로세서는 "스크롤 뷰 내부에 사용 된 사각형"이라고 말합니다. 스크롤 뷰 윈도우의 값과 내용의 윈도우를 계산하기로되어 있습니까? 나는 안드로이드 GUI 개발에서 왔고, 그것은 필요한 것보다 훨씬 더 많은 작업처럼 보인다.