unity3d 第九天
来源:互联网 发布:linux user id 编辑:程序博客网 时间:2024/05/15 01:58
Space() 偏移
Space_test.cs
using UnityEngine;using System.Collections;public class Space_test : MonoBehaviour {// Use this for initializationvoid Start () {}// Update is called once per framevoid Update () {}void OnGUI(){//开始一个显示区域GUILayout.BeginArea (new Rect (0, 0, 200, 60));GUILayout.BeginHorizontal ();GUILayout.Box ("Test1");//偏移十像素GUILayout.Space (10);GUILayout.Box ("Test2");GUILayout.EndVertical ();GUILayout.Space (20);GUILayout.BeginHorizontal ();GUILayout.Box ("Test3");//偏移十像素GUILayout.Space (10);GUILayout.Box ("Test4");GUILayout.EndVertical ();GUILayout.EndArea ();}}
FlexibleSpace ()对齐方式
FlexibleSpace_test.cs
using UnityEngine;using System.Collections;public class FlexibleSpace_test : MonoBehaviour {// Use this for initializationvoid Start () {}// Update is called once per framevoid Update () {}void OnGUI(){//开始显示区域GUILayout.BeginArea (new Rect (0, 0, Screen.width, Screen.height));GUILayout.BeginHorizontal ();GUILayout.BeginVertical ();GUILayout.Box ("Test1");//两个Box控件上下对齐GUILayout.FlexibleSpace ();GUILayout.Box("Test2");//多个控件对齐 以平分的方式/*GUILayout.FlexibleSpace ();GUILayout.Box("Test5");GUILayout.FlexibleSpace ();GUILayout.Box("Test6");*/GUILayout.EndVertical ();//两个布局上下对齐GUILayout.FlexibleSpace ();GUILayout.BeginVertical ();GUILayout.Box ("Test3");GUILayout.FlexibleSpace ();GUILayout.Box("Test4");GUILayout.EndVertical ();GUILayout.EndHorizontal();GUILayout.EndArea();}}窗口创建与关闭
这里在将js代码 改为c#代码时出现问题,还未解决
CreateandClose_window.cs
using UnityEngine;using System.Collections;public class CreateandClose_window : MonoBehaviour {ArrayList winArryList = new ArrayList();public Texture icon;// Use this for initializationvoid Start () {winArryList.Add (new Rect (winArryList.Count * 100, 50, 150, 100));}// Update is called once per framevoid Update () {}void OnGUI(){int cout = winArryList.Count;for (int i =0; i<cout; i++) {<span style="color:#ff0000;">winArryList[i]=GUILayout.Window(i,winArrayList[i],AddWindow,"窗口ID:"+i);</span>}}void AddWindow(int windowID){GUILayout.BeginHorizontal ();GUILayout.Label (icon, GUILayout.Width (50), GUILayout.Height (50));GUILayout.Label ("这是一个全新的窗口");GUILayout.EndHorizontal ();GUILayout.BeginHorizontal ();if (GUILayout.Button ("添加新窗口")) {winArryList.Add (new Rect(winArryList.Count * 100,50,150,100));}if (GUILayout.Button ("关闭当前窗口")) {winArryList.RemoveAt(windowID);}GUILayout.EndHorizontal ();//设置窗口拖动的区域GUI.DragWindow(new Rect(0,0,Screen.width,Screen.height));}}
错误提示为:
1.Assets/CreateandClose_window.cs(19,59): error CS0103: The name `winArrayList' does not exist in the current context
2.Assets/CreateandClose_window.cs(19,50): error CS1502: The best overloaded method match for `UnityEngine.GUILayout.Window(int, UnityEngine.Rect, UnityEngine.GUI.WindowFunction, string, params UnityEngine.GUILayoutOption[])' has some invalid arguments
3. Assets/CreateandClose_window.cs(19,50): error CS1503: Argument `#2' cannot convert `object' expression to type `UnityEngine.Rect'
貌似是ArrayList 存储的Rect类型 无法正常转化 强制转换方法我又没找到 还未解决
问题一是变量名写错了 声明的winArrylist
问题2,3是类型转化问题 其中 ArrayList的as方法对Rect没用 直接类型强制转化 (Rect)winArryList (之前这样改过 不知道是用成了Rect* 还是之前变量名的问题导致还是保存)
成功的图片
修改的代码
void OnGUI(){int cout = winArryList.Count;for (int i =0; i<cout; i++) {winArryList[i]=GUILayout.Window(i,(Rect)winArryList[i],AddWindow,"窗口ID:"+i);}}
0 0
- unity3d 第九天
- 学习Unity3D第九天之数组和遍历器。
- Unity3D笔记第九天——粒子系统
- 第九天
- 第九天
- 第九天
- 第九天
- 第九天
- 第九天
- 第九天
- 第九天!
- 第九天
- 第九天
- 第九天
- unity3d 第十九天
- 世界杯第九天
- IBM实习第九天
- 第九天:听课笔记
- untiy 网格的应用—骰子的制作和技能冷却效果
- Git使用杂记
- 最优比例生成环---其实树也差不多
- Android的上下文菜单和子菜单
- [Leetcode]209. Minimum Size Subarray Sum
- unity3d 第九天
- 代码生成阶段的主要任务是:
- 七种排序的实现
- redis.clients.jedis.exceptions.JedisConnectionException: Could not get a resource from the pool
- Servlet学习笔记(HttpServletRequest对象)
- nginx稳定版本哪些?
- 技术类博客网站推荐(转)
- 企财险知识汇总
- Guess Number Higher or Lower