调试完上节的GUI控件,那有些爱美的小朋友可能会在心里怒喊,我擦!老子裤子都脱了就给我看这么难看的控件,坑爹呢 ,那好,为了不被小朋友拿西瓜刀砍死,今天就教大家如何制作游戏开始界面。废话不多说,先上本节要用到的资源(0分的资源,求各位同学下载给赚个积分,小弟也要积分去学习知识啊) http://download.csdn.net/detail/yy8245075/5975745

所谓GUISkin,概括起来就是控件的衣柜,GUISkin(转自海澜之家广告)

为了让控件看起来衣冠楚楚,首先我们需要创建一个GUISkin,在Project视图下点击create,选择GUI Skin,这样一个GUISkin就创建好了,展开Custom Style,设置size的大小为13,下面我们就一步步开始制作游戏界面。

注意:这里只以OPPION选项为例,完整的代码我会在最后上传

一、新建C#脚本

[csharp] view plain copy print ?
  1. <P>using UnityEngine;
  2. using System.Collections;</P><P>public class Voice : MonoBehaviour {
  3. public GUISkin mySkin;//皮肤管理器
  4. public enum Menu { start = 1, option, help, quit };//枚举各个按钮
  5. public bool fullScreen_bool;//全屏选项
  6. public float BGMslider_float;//背景音乐
  7. public float SoundSlider_float;//音效音乐   </P><P>    public Texture tex;//背景图片
  8. public Texture tex_t;//点击设置选项时挡在背景图片前的黑色底板
  9. public Texture tex_nandu;//点击开始时难度选择的底板
  10. public Texture[] tex_help;//点击帮助时的图片
  11. public int select_T = 0;//标志菜单选择项   </P><P>    public Menu start_t;
  12. public Menu option_t;
  13. public Menu help_t;
  14. public Menu quit_t;
  15. public int count;//标志帮助图片当前的张数
  16. public bool helpContinue;//帮助菜单是否点击继续按钮   </P><P> // Use this for initialization
  17. void Start ()
  18. {
  19. start_t = Menu.start;
  20. option_t = Menu.option;
  21. help_t = Menu.help;
  22. quit_t = Menu.quit;
  23. }
  24. // Update is called once per frame
  25. void Update () {
  26. }
  27. void OnGUI()
  28. {
  29. GUI.skin = mySkin;</P><P>    //绘制背景图片
  30. GUI.DrawTexture(new Rect(0, 0, Screen.width, Screen.height), tex);</P><P>    //绘制整个菜单选项
  31. if (select_T == 0)
  32. {
  33. //开始
  34. if(GUI.Button(new Rect(402.0f / 1024.0f * Screen.width, 377.0f / 768.0f * Screen.height, 267, 56), "", "start"))
  35. {
  36. select_T = 1;
  37. }
  38. //设置
  39. if(GUI.Button(new Rect(402.0f / 1024.0f * Screen.width, 459.0f / 768.0f * Screen.height, 267, 56),"","option"))
  40. {
  41. select_T = 2;
  42. }
  43. //帮助
  44. if(GUI.Button(new Rect(402.0f / 1024.0f * Screen.width, 550.0f / 768.0f * Screen.height, 267, 56),"","help"))
  45. {
  46. select_T = 3;
  47. }
  48. //退出
  49. if (GUI.Button(new Rect(402.0f / 1024.0f * Screen.width, 638.0f / 768.0f * Screen.height, 267, 56), "", "quit"))
  50. {
  51. select_T = 4;
  52. }
  53. }
  54. </P><P>        if (select_T == option_t.GetHashCode())
  55. {
  56. GUI.DrawTexture(new Rect((Screen.width - 496) / 2.0f, 20.0f / 768.0f * Screen.height, 496, 651), tex_t);
  57. fullScreen_bool = GUI.Toggle(new Rect(510, 450, 39, 38), fullScreen_bool, "", "FullScreen");
  58. BGMslider_float = GUI.HorizontalSlider(new Rect(380, 180, 291, 33), BGMslider_float, 0, 1, "huadongtiao", "huakuai");
  59. SoundSlider_float = GUI.HorizontalSlider(new Rect(380, 330, 291, 33), SoundSlider_float, 0, 1, "huadongtiao", "huakuai");
  60. if (GUI.Button(new Rect((Screen.width - 267) / 2.0f, 660.0f / 768.0f * Screen.height, 267, 56), "", "back"))
  61. {
  62. select_T = 0;
  63. }
  64. }
  65. }
  66. }
  67. </P>
using UnityEngine;
using System.Collections;

public class Voice : MonoBehaviour {
public GUISkin mySkin;//皮肤管理器
public enum Menu { start = 1, option, help, quit };//枚举各个按钮
public bool fullScreen_bool;//全屏选项
public float BGMslider_float;//背景音乐
public float SoundSlider_float;//音效音乐   

    public Texture tex;//背景图片
public Texture tex_t;//点击设置选项时挡在背景图片前的黑色底板
public Texture tex_nandu;//点击开始时难度选择的底板
public Texture[] tex_help;//点击帮助时的图片
public int select_T = 0;//标志菜单选择项   

    public Menu start_t;
public Menu option_t;
public Menu help_t;
public Menu quit_t;
public int count;//标志帮助图片当前的张数
public bool helpContinue;//帮助菜单是否点击继续按钮   

 // Use this for initialization
void Start ()
{
start_t = Menu.start;
option_t = Menu.option;
help_t = Menu.help;
quit_t = Menu.quit;
}
// Update is called once per frame
void Update () {
}
void OnGUI()
{
GUI.skin = mySkin;

  //绘制背景图片
GUI.DrawTexture(new Rect(0, 0, Screen.width, Screen.height), tex);

   //绘制整个菜单选项
if (select_T == 0)
{
//开始
if(GUI.Button(new Rect(402.0f / 1024.0f * Screen.width, 377.0f / 768.0f * Screen.height, 267, 56), "", "start"))
{
select_T = 1;
}
//设置
if(GUI.Button(new Rect(402.0f / 1024.0f * Screen.width, 459.0f / 768.0f * Screen.height, 267, 56),"","option"))
{
select_T = 2;
}
//帮助
if(GUI.Button(new Rect(402.0f / 1024.0f * Screen.width, 550.0f / 768.0f * Screen.height, 267, 56),"","help"))
{
select_T = 3;
}
//退出
if (GUI.Button(new Rect(402.0f / 1024.0f * Screen.width, 638.0f / 768.0f * Screen.height, 267, 56), "", "quit"))
{
select_T = 4;
}
}

        if (select_T == option_t.GetHashCode())
{
GUI.DrawTexture(new Rect((Screen.width - 496) / 2.0f, 20.0f / 768.0f * Screen.height, 496, 651), tex_t);
fullScreen_bool = GUI.Toggle(new Rect(510, 450, 39, 38), fullScreen_bool, "", "FullScreen");
BGMslider_float = GUI.HorizontalSlider(new Rect(380, 180, 291, 33), BGMslider_float, 0, 1, "huadongtiao", "huakuai");
SoundSlider_float = GUI.HorizontalSlider(new Rect(380, 330, 291, 33), SoundSlider_float, 0, 1, "huadongtiao", "huakuai");
if (GUI.Button(new Rect((Screen.width - 267) / 2.0f, 660.0f / 768.0f * Screen.height, 267, 56), "", "back"))
{
select_T = 0;
}
}
}
}

二、将脚本拖到猪摄像机,为各项公有参数赋值

三、制作GUISkin

这里需要说明的是

1、name的指必须与GUI的GUIStyle参数一致!

2、Nomal属性即按钮平常的状态,Hover就是鼠标放上去的样子,剩下的参数大家可以根据需要去查文档或者问我

完整项目:http://download.csdn.net/detail/yy8245075/5984695

我和我的小伙伴们一起学Unity3D(三)GUISkin 界面皮肤相关推荐

  1. 我和小伙伴们一起学Unity3D(六)碰撞与触发器

    在上一节我们介绍了刚体,但刚体只能使物体可以在力的作用下运动,小球之所以能撞到地面而不是穿过地面,是因为在创建物体时,U3D自动为每个物体附加了碰撞器,有了碰撞器,才会使物体正常的碰撞,而不是穿过. ...

  2. 和小伙伴们一起学Unity3D(六)碰撞与触发器

    在上一节我们介绍了刚体,但刚体只能使物体可以在力的作用下运动,小球之所以能撞到地面而不是穿过地面,是因为在创建物体时,U3D自动为每个物体附加了碰撞器,有了碰撞器,才会使物体正常的碰撞,而不是穿过. ...

  3. 【跟我一起学Unity3D】做一个2D的90坦克大战之AI系统

    对于AI,我的初始想法非常easy,首先他要能动,而且是在地图里面动. 懂得撞墙后转弯,然后懂得射击,其它的没有了,基于这个想法,我首先创建了一个MyTank类,用于管理玩家的坦克的活动,然后创建AI ...

  4. 【跟我一起学Unity3D】做一个2D的90坦克大战之地图编辑器

    从10月20号到现在,Unity3D也学了10天了,对于Unity3D也有了一个大致的了解,有必要做一个小游戏来检测一下自己的学习成果了.经过两天的努力,终于总算是做出来了一个可以玩的坦克大战了.首先 ...

  5. 2019该怎么学unity3D游戏开发?

    Unity 3D本来是由德国的一些苹果粉丝开发的一款游戏引擎,一直只能用于Mac平台,所以一直不被业外人士所知晓.但是后来也推出了2.5版,同时发布了PC版本,并将其发布方向拓展到手持移动设备.怎么学 ...

  6. 微软说自己是互联网公司,我和我的小伙伴们都惊呆了

    因为CIC(中国互联网大会)的召开,今天的话题也就不能免俗了.简单跟大家谈谈自己参加会议的一些见闻. 不知道是不是ChinaJoy把中国会议带坏了,现在只要是一个允许有品牌推展的会议,你进入会场首先看 ...

  7. 我和我的小伙伴们都惊呆了!基于Canvas的第三方库Three.js

    What is Three.js three + js 表示运行在浏览器上的3D程序 javascript的计算能力因为google的V8引擎得到了迅猛提升 做服务器都没问题了 更别说3D了 哈哈  ...

  8. 跟我学jQuery(三) 无所不能的选择器1

    跟我学jQuery教程目录: 跟我学jQuery(一)    前言 跟我学jQuery(二)    初识jQuery 跟我学jQuery(三)    无所不能的选择器1 跟我学jQuery(四)    ...

  9. 脑残式网络编程入门(一):跟着动画来学TCP三次握手和四次挥手

    转自即时通讯网:http://www.52im.net/ 1.引言 网络编程中TCP协议的三次握手和四次挥手的问题,在面试中是最为常见的知识点之一.很多读者都知道"三次"和&quo ...

最新文章

  1. 解读《电力发展“十三五”规划》
  2. DH1766线性三路可编程直流电源
  3. android 多个标签页,Android一个标签页的实现
  4. C语言编写DFT计算程序, 并绘制幅度谱
  5. redis集群搭建与配置
  6. 一张图告诉你,自学编程和科班程序员的差别在哪
  7. TreeSet学习,比较器学习
  8. 常见的浏览器兼容性问题大汇总
  9. java简化代码的jar_JAVA奇技淫巧简化代码之lombok
  10. 简单的eda实验vga在linux系统中,《EDA实验报告VGA彩条显示.doc
  11. android 检测摇一摇
  12. Microsoft Updater Application Block 1.4.3 KeyValidator类设计 [翻译]
  13. 洛谷P1880 石子合并 区间动归
  14. 你的Redis集群撑得住吗?
  15. 大事件归来,爷青回!
  16. 百度街景瓦片下载器1.1.5
  17. AI病毒来袭,拿什么拯救你我的电脑?
  18. 手机的CPU为什么要区分大小核?
  19. 人生苦短——珍惜眼前人
  20. 【SPI总线常见错误】

热门文章

  1. 调和级数的和 matlab,调和级数发散到无穷大的速度有多慢?
  2. 游戏创业公司技术体系构建
  3. 将VMProtect集成到应用程序教程之实模式(四):将代码锁定到序列号上
  4. python和anaconda区别_anaconda与conda的区别
  5. 【附源码】Python计算机毕业设计民宿预定管理系统
  6. 逃逸闭包(@escaping)和非逃逸闭包
  7. SpringBoot 整合 Redis 使用详解(StringRedisTemplate 和 RedisTemplate 对比分析)
  8. History of program(程序简史)
  9. 00后收入多少才能「碾压」同龄人?
  10. atof()、atoi()、atol()函数【详解】