Unity-3d Day05

这两天呢  研究GUI了

感觉上呢 方法名 都挺长 看似不好学  其实全都是公式

用的时候往上搬就可以了

GUI就是图形用户界面

GUI只能编写在OnGUI⽅法中,此处通过案例,将图中的GUI实现出来
有关GUI的代码必须写在OnGUI⽅法中
OnGUI⽅法每帧执⾏两次

GUIlayout : Label 创建⼀个⾃动布局的标签
      Box 创建⼀个⾃动布局的box
      Toggle 创建⼀个开关按钮
      HorizontalSlider 创建⼀个⽔平滑动条,可以拖动改变  
      在最⼩只和最⼤值之间的值
      Toolbar 创建⼀个⼯具栏

觉得不是很常用自动布局的话方便  但是窗口一动 布局就跟着动了

GUI(⾃定义布局):

  Button 创建⼀个按钮,⽤户点击的时候出发⼀事件
  TextArea 创建多⾏⽂本区域,编辑字符
  SelectionGrid 创建按钮⺴格
  BeginScrollView 滚动视图的开始部分
  EndScrollView 滚动视图结束部分(必须和Begin成对出现)
  Window 创建⼀个弹出窗⼝
直接上代码吧,都是公式。。。。。

using UnityEngine;
using System.Collections;

public class GUIScript : MonoBehaviour {
    public GUISkin skin;
    // Use this for initialization
    void Start () {
    
    }
    
    // Update is called once per frame
    void Update () {
        
    }
    
    //都得定义变量  要不不变
    private bool toggle = false;
    private float slider = 50f;
    private int toolbar = 0;
    private string text = "请输入文字";
    private Vector2 scollPosition = new Vector2(0, 0);
    public float x = 0;
    public float y = 100;
    public float tempx = 0;
    public float tempy = 0;
    public Texture2D texture;
    
    void OnGUI() {
        //水平显示 要有end
        GUILayout.BeginHorizontal();
        GUILayout.Label("蓝鸥",GUILayout.Width(100),GUILayout.Height(100));
        GUILayout.Label("宇哥");
        if (GUILayout.Button("呵呵")) {
            //GUILayout.Label("宇哥呵呵");
            print("hehe");
        }

        //checkbox 要有变量  要不不动
        GUILayout.Box("box");
        GUILayout.EndHorizontal();
        toggle = GUILayout.Toggle(toggle, "");

        //水平滑动条
        slider = GUILayout.HorizontalSlider(slider, 0f, 100f);
        GUILayout.Label(slider.ToString());

        //工具栏
        string[] strs = { "shuibei", "baixin", "lixin" };
        toolbar = GUILayout.Toolbar(toolbar, strs);

        //文本输入框
        Rect rect = new Rect(100, 100, 100, 100);
        GUI.Box(rect,"lanou");
        text = GUI.TextArea(new Rect(100, 200, 100, 100), text);

        //滚动  别忘e                          框位置                   滚动条位置      内容框大小
        scollPosition = GUI.BeginScrollView(new Rect(0, 0, 500, 500), scollPosition,new Rect(0,0,1000,1000));
        //内容位置是相对于框的位置
        GUI.Button(new Rect(0, 0, 100, 100), "Button1");
        GUI.Button(new Rect(0, 100, 100, 100), "Button2");
        GUI.EndScrollView();

        //改皮肤  带劲了啊  皮肤在unity中定义 写在前面有效
        GUI.skin = skin;

        //点button,box动
        if (GUI.Button(new Rect(0, 0, 100, 100), "你跑啊你跑啊"))
        {
            tempx = Random.Range(0, 500);
            tempy = Random.Range(0, 500);
        }
        x = Mathf.Lerp(x, tempx, Time.deltaTime * 2);
        y = Mathf.Lerp(y, tempy, Time.deltaTime * 2);
        GUI.Box(new Rect(x, y, 100, 100), "我跑怎么的");

        
    }

}
原文地址:https://www.cnblogs.com/little-sun/p/4374662.html