GUI Text问题集合

来源:互联网 发布:unity 角色模型优化 编辑:程序博客网 时间:2024/06/05 07:32

1、GuiText如何换行?

     加入\n就可以自动换行。

2、如何在屏幕上建立一个按钮?

void OnGUI()
 {
  if(GUI.Button(new Rect(230,200,100,30),"this is good"))
  {
   Debug.Log("begin game");
  }

}

这里一定要用new,四个参数不是四个点的位置,而是前两个是开始点,后两个分别是宽和高。

 

3、Button与repeatButton有何区别?

button里的语句只执行一次,而repeatbutton中的语句将在鼠标按下期间一直执行。

 

4、如何建立一行多个按钮?

void OnGUI()
 {
  if(GUI.Button(new Rect(230,200,100,30),"this is good"))
  {
      string[] arr = { "aaa", "bb", "cc","dd","ee"};
      GUI.Toolbar(new Rect(50,50,300,30),1,arr);  }

}

会在50,50的位置开始,建立一行300宽,30高的5个按钮,1代表默认选中的是第2个按钮(从0开始),如果要获取当前按下了哪一个按钮,可以将1改成一个int型变量,这时通过获取该变量的值就可以得到当前按下的是第几个按钮了。

 

5、如何建立一个grid按钮阵列?

 string[] arr = { "aaa", "bb", "cc","dd","ee"};
 GUI.SelectionGrid(new Rect(50,120,300,30),1,arr,3);

会自动建立出3行共5个按钮。

 

6、当建立一个textfiled、Toggle、HorizontalSlider等交互控件时,控件可以正常显示,但无法实现交互?

因为定义了装控件值的变量时,在onGUI函数中对其定义了值,这时候将导致这个值不断刷新而无法实现交互,所以,如果当给这个变量以初始值的时候,应该将其放在star函数里。

 

7、如何定义上面那3个控件?

public string st1; 
public bool b1;

float select_value;

在start()中:

st1="";
b1=false;

select_value=3.0f;

 

在ongui()中

st1=GUI.TextField(new Rect(10,20,100,20),st1);       
b1=GUI.Toggle(new Rect(10,50,100,20),b1,"checked");
select_value=GUI.HorizontalSlider(new Rect(10,80,100,20),select_value,2,8);

 

8、如何用scrollview和groupview来组织控件群?

在所有控件语句的前面加上如:

vv1=GUI.BeginScrollView(new Rect(0,0,200,200),vv1,new Rect(0,0,480,300),true,true);
 在所有控件语句后加上如:

GUI.EndScrollView();

就可以了,需要注意的是vv1是一个事先定义好的Vector2变量。

 

其他的也很简单:

GUI.BeginGroup(new Rect(5,5,200,200),"first group");

....

GUI.EndGroup();

 

GUI.Windows


 9、如何建立一个winow?

同前面几个群组控件不同,window在onGUI中定义之后,必须自己写函数,然后在该函数中写入其他控件。

GUI.Window(1,new Rect(30,30,100,100),create_window1,"goodwindow");

这就是要建立一个ID为1的,建窗函数名为create_window1的,title为goodwindow的语句放在onGUI中,另外要写一个函数:

 void create_window1(int windowsID)
 {
  
 }

这个函数中可以写你自己需要的控件。

 

10、GUIstyle是怎么回事?

你可以先定义一个public GUIStyle gs1;

然后在onGui中的创建控件函数中,一般都有一个最后的参数用来指定gs1;

gs1可以在onstart中定义,也可以直接在变量中修改颜色什么的。

 

11、GUISkin是怎么回事?

你可以先定义一个GUISkin,这时会在脚本出现公共变量sk1.

public GUISkin sk1;

然后你可以在任何资源目录中建立一个新的GUISkin,并修改它的颜色什么的,然后将建立好的GUISkin资源拖动给sk1变量就可以了。

 

 

原创粉丝点击