unity3d创建window

unity3d创建windwo的方法如下:

GUILayout.Window (1, new Rect (50, 50, 200, 100), Func1, "窗口1");

第一个参数是新创建的窗口的编号,可以自定义,这里定义为了1;

第二个参数是窗口的GUI坐标位置,其中50,50表示左上角的坐标,200,100表示右下角的坐标,两点确定一个矩形;

第三个参数是创建该窗口后调用的方法,会自动将第一个参数传入该函数;

第四个参数是该窗口的名字。

其中func1函数如下:

void Func1(int id){
    if (id == 1) {
        //id与绘制窗口时的编号是一致的,用于区分是哪一个窗口调用
        GUILayout.Button ("这是一个按钮");
    }
}

这时候的界面如图1所示:

图1

下面修改一下需求:

运行程序后,首先界面上有一个按钮show,点击该按钮后显示上图1所示,再点击图1中的按钮后窗口1隐藏。且窗口一能够实现拖动效果。

具体代码如下:

private bool isShow;//显示是否为真
private Rect windowPos;//窗口坐标

// Use this for initialization
void Start () {
    isShow = false;//初始值为false,即窗口1不显示
    windowPos = new Rect (50, 50, 200, 100);//窗口1的默认位置
}

void OnGUI(){
        //思路是:当点击按钮show时,isShow为真,在第二个判断条件中显示窗口
        //其中,窗口位置也是一个变量,这样才可以避免每一帧擦除时重新绘制为变化后的位置
    if (GUILayout.Button ("Show")) {
        isShow = true;
    }
    if (isShow) {
        windowPos = GUILayout.Window (1, windowPos, Func1, "窗口1");
    }
}

void Func1(int id){
    if (id == 1) {
    //id与绘制窗口时的编号是一致的,用于区分是哪一个窗口调用
        if (GUILayout.Button ("这是一个按钮")) {
            isShow = false;
        }
        GUI.DragWindow ();//该函数放在最后,即可实现窗口的拖拽效果
    }
}    
时间: 2024-07-28 22:18:26

unity3d创建window的相关文章

创建window

1 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 2 // Override point for customization after application launch. 3 4 //创建window分为四个步骤 5 //1.创建一个window 6 self.window = [[UIWindow alloc]in

Unity3D 创建动态的立方体图系统

Unity3D 创建动态的立方体图系统 这一篇主要是利用上一篇的Shader,通过脚本来完成一个动态的立方体图变化系统. 准备工作如下: 创建一个新的场景.一个球体.提供给场景一个平行光,准备2个立方体图. 添加两个空对象,并分别命名为Empty1和Empty2,给他们分配不同的位置. 给球体添加一个新的材质,并使用FresnelReflection Shader(上一篇). 最后,创建一个脚本,并命名为CubeDynamic.cs,把它赋给球体. A:下面开始编写脚本: //2个立方体图; p

Activity Threa创建Window和View分析

http://blog.csdn.net/ljsbuct/article/details/7094580 1. 入口. 以前一直都说Activity的人口是onCreate方法.其实android上一个应用的入口,应该是ActivityThread.和普通的java类一样,入口是一个main方法. public static final void main(String[] args) {         SamplingProfilerIntegration.start();        …

Activity创建Window和View分析

一.Activity启动Activity由ActivityThread负责启动. ActivityThread的分析将在<ActivityThread分析>中,在此,只需要知道创建activity的入口在ActivityThread就行,不影响以下的分析.    ActivityThread.java    private final Activity performLaunchActivity(ActivityClientRecord r, Intent customIntent) {   

ExtJS 创建Window实例二

Ext.onReady(function(){ /** * 描述,在window上添加其他的组件,并且对组件进行相关的操作 */ var win=new Ext.Window({ id:'myWin', title:'窗体', height:400, width:"40%", closable:false,//禁用关闭按钮 draggable:false,//紧张拖拽 resizable:false,//固定大小,不允许拉伸 collapsible:true,//可以折叠 bodySt

Unity3D 创建一个简单的2D游戏

开始研究Unity3d 中的2D游戏. 首先创建出一个项目: 然后创建出一个场景: 然后添加一个背景: 然后创建一个主人公对象: 可以是自己做的素材,也可以是用unity裁剪的素材, 下面贴出裁剪素材的步奏 然会对图像进行裁剪,裁剪后进行保存: 有这样符号的就是裁剪后的素材: 然后将素材添加到游戏场景中(也就是拖到视图就可以了,如果是后期做碰撞的话,还要把此精灵变成刚体,然后加入碰撞检测,默认的时候还需要去除重力,并且和背景不在同一层): 这里变成刚体后会获得重力,要把重力去掉: 接下来就是写脚

C#创建Window服务图解

一.首先打开VS2013,创建Windows服务项目 二.创建完成后对"Service1.cs"重命名位"ServiceDemo":然后切换到代码视图,写个服务运行日志. using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Diagnostics; using System.IO; using Syst

unreal slate 创建 window

testWindow = SNew(SWindow) .Title(LOCTEXT("Asset Window", "Asset Window")) .ClientSize(FVector2D(30, 20)) .SupportsMaximize(false) .SupportsMinimize(false) .SizingRule(ESizingRule::Autosized) .AutoCenter(EAutoCenter::None) .IsInitially

unity3d创建一个移动的平台

平台游戏的创建代码总结如下,物理组件设置好,速度设置好,直接看代码 using UnityEngine; using System.Collections; public class MovingPlatform : MonoBehaviour { [SerializeField] Transform platform; [SerializeField] Transform startTransform; [SerializeField] Transform endTransform; [Ser