阅读(2630) (0)

OnGUI ScrollView 控件

2020-07-13 11:55:04 更新

当游戏界面中的内容特别多,超出了屏幕的显示范围时,就可以使用 Unity 3D ScrollView 控件滚动显示界面内的全部内容。

ScrollView 控件用于在屏幕上创建滚动视图,通过一片小区域查看较大区域的内容。当内容区域大于查看区域时,该控件就会自动生成垂直(水平)滚动条,用户可以通过拖曳滚动条来查看所有内容。

一般情况下,滚动条由两部分组成:

  • GUI.BeginScrollView,用于开始滚动视图。

  • GUI.EndScrollView,用于结束滚动视图。

需要滚动显示的内容就夹在其间。

使用方法:

public static function BeginScrollView(position:Rect, scrollPosition:Vector2,viewRect:Rect):Vector2;
public static function BeginScrollView(position:Rect, scrollPosition:Vector2,viewRect:Rect, alwaysShowHorizontal:bool, alwaysShowVertical:bool,horizontalScrollbar:GUIStyle, verticalScrollbar:GUIStyle):Vector2;
public static function EndScrollView():void;

参数列表

参数 描述
position 设置控件在屏幕上的位置及大小。
viewRect 设置滚动整体显示范围。
HorizontalScrollbar 设置用于水平滚动条的可选 GUI 样式。
VerticalScrollbar 设置用于垂直滚动条的可选 GUI 样式。
ScrollPosition 用来显示滚动位置。
alwaysShowHorizontal  可选参数,总是显示水平 滚动条。
alwaysShow Vertical 可选参数,总是显示垂直 滚动条。

使用案例

  1. 创建项目,将其命名为 BeginScrollView,保存场景。

  1. 执行 AssetsCreateJavaScript 命令,创建一个新的脚本文件。

  1. 在 Project 视图中打开脚本编辑器,输入下列语句:

    var scrollPosition:Vector2=Vector2.zero;
    function OnGUI(){
        scrollPosition=GUI.BeginScrollView(Rect(10, 300, 100, 100),
        scrollPosition, Rect(0, 0, 220, 200));
        GUI.Button(Rect(0, 0, 100, 20), "Top-left");
        GUI.Button(Rect(120, 0, 100, 20), "Top-right");
        GUI.Button(Rect(0, 180, 100, 20), "Bottom-left");
        GUI.Button(Rect(120, 180, 100, 20), "Bottom-right");
        GUI.EndScrollView();
    }

  1. Ctrl+S 键保存脚本。

  1. 在 Project 视图中选择脚本,将其连接到 Main Camera 上。

  1. 进行测试,效果如下图所示。