C#编写Unity基础GUI之动态窗口

1.创建窗口

 1 //声明窗口位置大小
 2     private Rect pos = new Rect(10,60,120,50);
 3
 4     //回调函数
 5     void Wincallback(int id)
 6     {
 7         if(GUI.Button(new Rect(10,20,100,20),"窗口内按钮")){
 8             print("按钮在窗口内被单击");
 9         }
10     }
11
12     void OnGUI()
13     {
14         pos = GUI.Window(0, pos, Wincallback, "我的窗口");
15     }

效果;

定义可用鼠标移动的窗口:

在回调函数中加入

1 void Wincallback(int id)
2     {
3         if(GUI.Button(new Rect(10,20,100,20),"窗口内按钮")){
4             print("按钮在窗口内被单击");
5         }
6
7         GUI.DragWindow();
8     }

注意此时需要把此函数放到回调函数结尾;

若使用

GUI.DragWindow(new Rect(0,0,100,50));

则会限制可拖动的区域(我测试了,但是效果不怎么好);

使用开关控制显示窗口与否:

 1 private Rect pos = new Rect(10,60,120,50);
 2
 3     //回调函数
 4     void Wincallback(int id)
 5     {
 6         if(GUI.Button(new Rect(10,20,100,20),"窗口内按钮")){
 7             print("按钮在窗口内被单击");
 8         }
 9
10         GUI.DragWindow(new Rect(0,0,100,50));
11     }
12
13     private bool showWin = true;
14
15     void OnGUI()
16     {
17         showWin=GUI.Toggle(new Rect(0,0,100,20),showWin,"显示窗口");
18
19         if (showWin)
20         {
21             pos = GUI.Window(0, pos, Wincallback, "我的窗口");
22         }
23     }

效果:

时间: 2024-10-14 20:20:51

C#编写Unity基础GUI之动态窗口的相关文章

C#编写Unity基础GUI之控件布局

1.GUILayout控件 1 void OnGUI() 2 { 3 GUILayout.Button("这是GUILayout按钮"); 4 } 效果: 会自动调整控件大小,自动定位在屏幕左上角: 2.组视图 1 void OnGUI() 2 { 3 GUI.BeginGroup(new Rect(Screen.width / 2, Screen.height / 2, 500, 500)); 4 5 GUI.Button(new Rect(0,0,100,100),"按钮

C#编写Unity基础GUI之按钮控件

基本方法: public static bool Button(Rect position, GUIContent content); public static bool Button(Rect position, string text); public static bool Button(Rect position, Texture image); public static bool Button(Rect position, GUIContent content, GUIStyle

C#编写Unity基础GUI之控件-2

1.文本输入框 1 public string text; 2 3 void OnGUI(){ 4 text = GUI.TextField(new Rect(140, 140, 100, 40), text); 5 6 if (GUI.Button(new Rect(10, 10, 100, 50), text)) 7 { 8 print("用户单击了按钮"); 9 } 10 } 效果: 2.开关按钮控件 1 public bool toggleBool; 2 3 void OnGU

C#编写Unity基础GUI之按钮控件GUILayout控件

GUILayout布局可以自动排列相关控件,例如: 1 void OnGUI() 2 { 3 GUILayout.Button("这一个GUILayout按钮"); 4 } 效果: 可以将控件的大小自动缩放成适应大小,从屏幕左上角开始排列,例如: 1 void OnGUI() 2 { 3 GUILayout.Button("这是个GUILayout按钮"); 4 GUILayout.Button("这也是个GUILayout按钮"); 5 } 效

Unity基础 GUI编程

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

【Java GUI】框架窗口基础

窗口是GUI编程的基础,小应用程序或图形界面的应用程序的可视组件都放在窗口中,在GUI中,窗口是用户屏幕的一部分,起着在屏幕中一个小屏幕的作用.有以下三种窗口: ①Applet窗口 ②框架窗口(JFrame) ③一种无边框窗口(JWindow) 用Swing中的JFrame类或它的子类创建的对象就是JFrame窗口. JFrame类的主要构造方法: JFrame();//创建无标题的窗口对象: JFrame(String s);//创建一个标题名是字符串s的窗口对象. JFrame类的其他常用方

unity基础开发----unity游戏速度更快的简易检查表

让游戏速度更快的简易检查表 保持顶点数在 200K 下面,针对 PC 时每帧应为 3M,主要取决于目标 GPU. 若使用内置着色器,请在移动 (Mobile) 或未点亮 (Unlit) 的类别中选择.它们对非移动平台相同有效,可是是更复杂的着色器的简化和限制版本号. 每一个场景中不同材质的数量尽可能少 - 不同对象之间尽可能共享相同的材质. 在非移动对象上设置静态 (Static) 属性,同意静态批处理 (static batching) 等内部优化. 切勿在不必要的情况下使用像素灯 - 选择仅

Unity基础 随机数的使用

脚本语言:C# 一个比较常用的例子是游戏中的主角碰到场景中的NPC时,NPC会随机做出反应,例如有50%几率来友好的致敬,25%几率走开,20%几率反身攻击和%%的几率赠送礼物. 创建一个NPCTest脚本,用于模拟NPC动作: using UnityEngine; using System.Collections; public class NPCTest : MonoBehaviour { //NPC动作几率 float[] probArray = {0.5f , 0.25f , 0.2f

学习Spring必学的Java基础知识(2)----动态代理

学习Spring必学的Java基础知识(2)----动态代理 引述要学习Spring框架的技术内幕,必须事先掌握一些基本的Java知识,正所谓“登高必自卑,涉远必自迩”.以下几项Java知识和Spring框架息息相关,不可不学(我将通过一个系列分别介绍这些Java基础知识,希望对大家有所帮助.): [1] Java反射知识-->Spring IoC :http://www.iteye.com/topic/1123081 [2] Java动态代理-->Spring AOP :http://www