5Unity-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), "我跑怎么的");

    }

}
时间: 2024-10-12 03:33:23

5Unity-3d Day05的相关文章

HTML5 CSS3 诱人的实例: 3D立方体旋转动画

转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/34120047 创意来自:http://www.html5tricks.com/demo/html5-3d-cube/index.html , 同学给我发的样例,感觉非常不错,只是实在想不出来实际的用处.可是效果非常炫~ 效果图: 知识点: 1.perspective ,transform 的复习 2.css3 backgroud实现格格背景.即面上的小格格 3. @-webki

day05匿名函数,内置函数,二分法,递归,模块

yield作为表达式来使用的方式 #grep -rl 'python /root """ 查找root下文件中含有python的文件 """ import os def init(func): def wrapper(*args,**kwargs): g=func(*args,**kwargs) next(g) return g return wrapper @init def search(target): while True: search

使用CSS3实现一个3D相册

CSS3系列我已经写过两篇文章,感兴趣的同学可以先看一下CSS3初体验之奇技淫巧,CSS3 3D立方体效果-transform也不过如此 第一篇主要列出了一些常用或经典的CSS3技巧和方法:第二篇是一个用CSS3实现的立方体实例,详细讲解了3D旋转和transform等属性. 本文再来利用CSS3属性来编写一个实例,话不多说,先直接看看效果.3D相册实例DEMO 因为前面已经讲解过一些属性的用法,此篇文章不再赘述,只记录这个实例的编码过程.项目代码已上传至github,项目代码github地址

css3加js做一个简单的3D行星运转效果

前几天在园子里看到一篇关于CSS3D行星运转的文章,原文在这里,感觉这个效果也太酷炫了,于是自己也就心血来潮的来尝试的做了一下.因为懒得去用什么插件了,于是就原生的JS写,效果有点粗超,还有一些地方处理的不是很好,如果有好的建议万望留言告知,不胜感谢.源代码已上传到github上,点这里获取.好了不说废话了,下面附上代码. HTML部分 <div class="path-Saturn"> <div id="Saturn" title="土

Easy to use cross-platform 3D engines

C++ http://gamedev.stackexchange.com/questions/21/easy-to-use-cross-platform-3d-engines-for-c-game-development My Opinion (only for open source 3D engines): Irrlicht: Light 3D engine Clean C++ without dependencies and no STL. Not very well documented

基于HTML5实现3D监控应用流动效果

流动效果在3D领域有着广泛的应用场景,如上图中医学领域可通过3D的流动直观的观察人体血液的流动,燃气领域可用于监控管道内流动的液体或气体的流向.流速和温度等指标. http://www.hightopo.com/guide/guide/core/lighting/examples/example_flowing.html 如今企业数据中心机房普遍面临着设备散热的问题,采用冷热通道方案可大大提高数据中心的散热能力,充分有效利用机柜和机房的空间,因此在电信的3D机房监控领域,也常需要借助流动的效果,

基于HTML5快速搭建3D机房设备面板

以真实设备为模型,搭建出设备面板,并实时获取设备运行参数,显示在设备面板上,这相比于纯数值的设备监控系统显得更加生动直观.今天我们就在HT for Web的3D技术上完成设备面板的搭建. 我们今天模拟的设备是机房设备,先来目睹下最终效果:http://www.hightopo.com/demo/blog_3d_20150810/server.html 我来解释下这个模型,一个带有透明玻璃门的机柜,机柜里装有5台设备,门可以开合,设备可以插拔,那么我么该如何搭建这样的设备呢?方法不难,我们一步一步

无插件纯Web 3D机房,HTML5+WebGL倾力打造

前言 最近项目开发任务告一段落,刚好有时间整理这大半年的一些成果.使用html5时间还不久,对js的认识还不够深入.没办法,以前一直搞java,对js的一些语言特性和概念一时还转换不过来. 上一篇介绍了项目中做的一个彩虹爆炸图,主要用了 html5的canvas的2d绘制技术.这一回我想介绍一下项目中的一个亮点技术:html5的3D,以及如何用它打造精美的3D机房监控系统. 目标效果图 下图是客户给找的一张的效果参考图,希望机房至少能达到下面的3D效果. 懂的人都知道,这可是一张设计公司出的装修

Qt 3D的研究(五):Gooch Shader

Qt 3D的研究(五):Gooch Shader Qt 3D的一个很大的优势就是采用数据驱动的方式,将C++和GLSL使用QML来表示,动态语言的优势尽显.在上一次的研究中,我实现了一个非常简单的着色器,接下来,我们可以在此基础上,通过设定着色器的数据,制作出更加绚丽的着色效果.作为开始,我们先从几个非真实渲染(Non-Photorealistic Rendering,NPR)开始吧. 蒋彩阳原创文章,首发地址:http://blog.csdn.net/gamesdev/article/deta

基于HT for Web 3D呈现Box2DJS物理引擎

上篇我们基于HT for Web呈现了A* Search Algorithm的3D寻路效果,这篇我们将采用HT for Web 3D来呈现Box2DJS物理引擎的碰撞效果,同上篇其实Box2DJS只是二维的平面碰撞物理引擎,但同样通过3D的呈现能让人更直观的体验到碰撞效果,先上张最终例子效果图: Box2D最早是Erin Catto在GDC大会上的一个展示例子,后来不断完善成C++的开源物理引擎库,这些年了衍生出Java.ActionScript以及JS等版本,被广泛应用在游戏领域.说其丰富的确