ScrollView

Scrollbar控件

Scrollbar控件(滚动条控件)被用于导航ScrollView控件。该控件也分为水平滚动条(HorizontalScrollbar)和垂直滚动条(VerticalScrollbar)。其用法也是一样的。但是,通常我们使用ScrollView代替。(后面我们会介绍ScrollView的用法)

public static float VerticalScrollbar (Rect position, float value, float size, float topValue, float bottomValue);
public static float VerticalScrollbar (Rect position, float value, float size, float topValue, float bottomValue, GUIStyle style);
public static float HorizontalScrollbar (Rect position, float value, float size, float leftValue, float rightValue);
public static float HorizontalScrollbar (Rect position, float value, float size, float leftValue, float rightValue, GUIStyle style);
  • position : Rect ——滚动条在屏幕上的矩形位置
  • value : float —— 在最小值和最大值之间的位置
  • size : float —— 我们能看到的多大
  • leftValue : float —— 水平滚动条最左边的值
  • rightValue : float ——水平滚动条最右边的值
  • topValue : float —— 垂直滚动条最顶部的值
  • bottomValue : float —— 垂直滚动条最底部的值
  • style : GUIStyle —— 滚动条背景样式。如果不设置,滚动条将使用当前的GUISkin

返回值:float浮点型——用户通过拖动滚动条或者点击滚动条上的箭头改变的值

ScrollView控件

如果游戏界面中控件过多,导致超出了屏幕的显示范围。就需要用ScrollView来滚动显示。该控件的用法和前面的控件有点区别。GUI.BeginScrollView()为开始滚动视图,GUI.EndScrollView()为结束滚动视图。在这两之间就为滚动视图显示的区域。注意:GUI.BeginScrollView()与GUI.EndScrollView()必须成对出现。否则会出错。

public static Vector2 BeginScrollView (Rect position, Vector2 scrollPosition, Rect viewRect);
public static Vector2 BeginScrollView (Rect position, Vector2 scrollPosition, Rect viewRect, bool alwaysShowHorizontal, bool alwaysShowVertical);
public static Vector2 BeginScrollView (Rect position, Vector2 scrollPosition, Rect viewRect, GUIStyle horizontalScrollbar, GUIStyle verticalScrollbar);
public static Vector2 BeginScrollView (Rect position, Vector2 scrollPosition, Rect viewRect, bool alwaysShowHorizontal, bool alwaysShowVertical, GUIStyle horizontalScrollbar, GUIStyle verticalScrollbar);
  • position : Rect —— 滚动视图在屏幕上的矩形位置
  • scrollPosition : Vector2 —— 用来显示滚动位置
  • viewRect : Rect —— 滚动视图内使用的矩形
  • alwayShowHorizontal : boolean —— 可选参数!总是显示水平滚动条,如果设置为false或者不设置时,只用当内矩形区域宽于外矩形区域时才显示
  • alwayShowVertical : boolean —— 可选参数!总是显示垂直滚动条,如果设置为false或者不设置时,只用当内矩形区域高于外矩形区域时才显示
  • horizontalScrollbar : GUIStyle —— 用于水平滚动条的可选设置,如果不设置,水平滚动条将使用当前的GUISkin
  • verticalScrollbar : GUIStyle —— 用于垂直滚动条的可选设置,如果不设置,垂直滚动条将使用当前的GUISkin

返回值:Vector2 二维向量—— 被修改的滚动位置scrollPosition。返回值应该赋予你的变量。

using UnityEngine;  
using System.Collections;  

public class Script_6_2_ScrollView : MonoBehaviour {  

    //滚动条的位置  
    private Vector2 scrollPosition;  
    //信息  
    private string[] infos = new string [5];  

    void Start ()   
    {  
        //初始化  
        infos[0] = "高端大气上档次,低调奢华有内涵,奔放洋气有深度,简约时尚国际范,低端粗俗甩节操,土憋矫情无下限,装模作样绿茶婊,外猛内柔女汉子,卖萌嘟嘴剪刀手,忧郁深沉无所谓,狂拽帅气吊炸天,冷艳高贵接地气,时尚亮丽小清新,可爱乡村非主流,贵族王朝杀马特,提莫团战必须死";  
        infos[1] = "1.桌子上原来有12支点燃的蜡烛,先被风吹灭了3根,不久又一阵风吹灭了2根,最后桌子上还剩几根蜡烛呢?\n答:5根";  
        infos[2] = "2.一栋住宅楼,爷爷从一楼走到三楼要6分钟,现在要到6楼,要走多少分钟?\n答:15分钟";  
        infos[3] = "3.有一本书,兄弟两个都想买。哥哥缺5元,弟弟只缺一分。但是两人合买一本,钱仍然不够。你知道这本书的价格吗?他们又各有多少钱呢?\n答:这本书的价格是5元。哥哥一分也没有,弟弟有4.99元";  
        infos[4] = "4.1根绳子对折,再对折,再第三次对折,然后从中间剪断,共剪成多少段?\n答:9段";  
    }  

    void OnGUI()  
    {  
        //开始滚动视图  
        scrollPosition = GUI.BeginScrollView(new Rect(10,10,400,400),scrollPosition,new Rect(10,10,770,600));  
        //标签内容  
        GUI.Label(new Rect(10,10,770,40),infos[0]);  
        GUI.Label(new Rect(10,50,770,40),infos[1]);  
        GUI.Label(new Rect(10,90,770,40),infos[2]);  
        GUI.Label(new Rect(10,130,770,60),infos[3]);  
        GUI.Label(new Rect(10,190,770,40),infos[4]);          

        //结束滚动视图  
        GUI.EndScrollView();  
    }  
}

results matching ""

    No results matching ""