unity GUI练习1

第一次在c#脚本中引用泛型类的命名空间(很激动,竟然可以这样),觉的unity很强大可以引用微软的命名空间,调用以前熟悉的函数

C#脚本中arrylist无法判断arry数组的类型,应为arrylist可以添加各种类型在使用的时候进行装箱拆箱,在类型确定的情况可以使用泛型,需要引入命名空间:

using System.Collections.Generic;

我的练习:

using UnityEngine;
using System.Collections;
using System.Collections.Generic;

public class win1 : MonoBehaviour {
    List<Rect> rect1 = new List<Rect>();
    //ArrayList list = new ArrayList();
    // Rect[] rect;
    //public Texture otexture;
    // Use this for initialization
    void Start()
    {
        rect1.Add(new Rect(rect1.Count * 100, 50, 150, 100));
        // list.Add(new Rect(list.Count * 100, 50, 150, 100));
    }
    void OnGUI()
    {
        //int count = list.Count;
        for (int i = 0; i < rect1.Count; i++)
        {
            rect1[i] = GUI.Window(i, rect1[i], myWin, "小毛驴" + i);
            //list[i] = GUI.Window(i, list[i], myWin, "小毛驴" + i);
        }
    }
    void myWin(int id)
    {
        if (GUILayout.Button("添加新窗口"))
        {
            rect1.Add(new Rect(rect1.Count * 100, 50, 150, 100));
            //list.Add(new Rect(list.Count * 100, 50, 150, 100));
        }
        if (GUILayout.Button("关闭当前窗口"))
        {
            rect1.RemoveAt(id);
            //list.RemoveAt(id);
        }
        GUI.DragWindow(new Rect(0, 0, Screen.width, Screen.height));
    }
}

注释部分,使用的时arrylist,会提示,函数参数不是最匹配形式,这里可以使用泛型将其设置为Rect类型,可以考虑下数组

时间: 2024-10-01 07:27:36

unity GUI练习1的相关文章

Unity GUI自适应屏幕分辨率(一)布局自适应

这里我们先谈第一个问题坐标矩阵变化实现布局自适应. 选取基准尺寸 通常你需要选择一个基准的屏幕尺寸,象现在开发的应用也需要跨平台在iOS(iPhone/iPad)/Android都可以运行,我这边选取的是iphone4的屏幕尺寸: 480 * 320. 设计师设计的GUI的素材时就是按照这个尺寸来设计.但是紧接着的问题是如何保证它在其他不同尺寸/分辨率的平台上运行时不会出现各种诡异的位置大小错乱了. 举一个实际的例子来更好描述这个问题,比如我们的游戏是水平方向的, 然后游戏进行中间的暂停界面中,

如何用Unity GUI制作HUD

若知其所以然,自然知其然. HUD是指平视显示器,就是套在脸上,和你的眼睛固定在一起,HUD的意思就是界面咯,一般我们说HUD特指把3D空间中的界面的某些信息(比如血条,伤害之类)的贴在界面上,对应3D空间投影到屏幕空间的位置. ? 很简单很简单的一件事,就是投影而已. 虽然我一直认为自己学的是野路子,相当的空中楼阁.不幸发现,比我路子更野,比我基础更差的同学实在是多到令人发指的程度. ? 没办法,我们用UGUI来实现一下这个投影过程. 首先准备一下我们的3D空间 弄几个盒子让他们转起来. 如果

unity GUI GUILayout 水平 垂直布局

#region //if (GUI.Button(new Rect(100, 100, 30, 60), str)) //{     //    str += str;     //} //if (GUILayout.Button(str)) //{     //    str += str;     //} //GUILayout.BeginVertical(); //GUILayout.BeginHorizontal(); //GUILayout.Label("用户名"); //n

Unity GUI练习2

C#脚本中,typeof(x)和.GetType()函数的区别 typeof(x)必须是具体的类名,类型名称不能是变量 .GetType()继承自object,是变量.GetType() 他们作用相同,返回type类型的当前对象类型 eg: Texture a: if(a.GetType()==typeof(Texture)) ....

unity GUI Layout 组件(全)

[expand 扩张][fitter 装配工] [envelope 信封,包装] Layout 布局 三种.   Horizontal Layout Group 水平布局 Padding:内边距,单位像素. Spacing:子物体间的间隔,单位像素. Child Alignment:对齐方式. Controls Child Size:布局组件是否控制子物体的 width / height Child Force Expand:是否自适应宽高 Vertical Layout Group 垂直布局

【Unity】A*算法的GUI实现

前言 A*算法是常用的游戏算法之一,也是初学者比较难掌握的一个算法. 本文在Unity中以GUI的方式形象的再现了A*算法的详细步骤, 包括地图的搜索.FGH的计算以及开启关闭列表的变化等. 博文首发地址:http://blog.csdn.net/duzixi 步骤一: 创建Unity新工程新场景 步骤二: 创建AStar.cs脚本,将以下代码内容粘贴覆盖后,保存运行即可 <span style="font-size:14px;">/// <summary> /

Unity基础 GUI编程

脚本语言:C# 附上一张图说明Unity GUI编程中可用的控件:(可能有遗漏) 下面列出一些例子来说明: 1.Groups : 在固定Layout模式中起到组织可用项的功能,它让你在屏幕的一个区域中包含多个控件.把定义的控件放在GUI.BeginGroup()和 GUI.EndGroup()这对函数中间,所有控件的位置坐标都以Groups的0坐标为起点,假如更改了group坐标,那么内部的控件也会跟随改变. 示例代码: using UnityEngine; using System.Colle

unity3D游戏开发之GUI

转:http://blog.csdn.net/kuloveyouwei/article/details/23598171 GUI在游戏的开发中占有重要的地位,游戏的GUI是否友好,使用是否方便,很大程度上决定了玩家的游戏体验.Unity内置了一套完整地GUI系统,提供了从布局.控件到皮肤的一整套GUI解决方案,可以做出各种风格和样式的GUI界面.在Unity中使用GUI来完成GUI的绘制工作,目前Unity没有提供内置的GUI可视化编辑器,因此GUI界面的制作需要全部通过编写脚本代码来实现,如果

【Unity】8.1 Unity内置的UI控件

分类:Unity.C#.VS2015 创建日期:2016-04-27 一.简介 Unity 5.x内置了-套完整的GUI系统,提供了从布局.控件到皮肤的-整套GUI解决方案,因此可直接利用它做出各种风格和样式的GUI界面,并且扩展性很强(程序员可以基于已有的控件创建出适合自己需求的控件). 有两种使用GUI的办法,一种是直接将UI添加到层次视图或者场景视图中,然后通过GUI脚本去控制它:另一种是直接通过GUI脚本去创建. 二.直接添加UI控件到场景中 下图是Unity 5.3.4内置的UI控件,