我和我的小伙伴们一起学Unity3D(三)GUISkin 界面皮肤
调试完上节的GUI控件,那有些爱美的小朋友可能会在心里怒喊,我擦!老子裤子都脱了就给我看这么难看的控件,坑爹呢 ,那好,为了不被小朋友拿西瓜刀砍死,今天就教大家如何制作游戏开始界面。废话不多说,先上本节要用到的资源(0分的资源,求各位同学下载给赚个积分,小弟也要积分去学习知识啊) http://download.csdn.net/detail/yy8245075/5975745
所谓GUISkin,概括起来就是控件的衣柜,GUISkin(转自海澜之家广告)
为了让控件看起来衣冠楚楚,首先我们需要创建一个GUISkin,在Project视图下点击create,选择GUI Skin,这样一个GUISkin就创建好了,展开Custom Style,设置size的大小为13,下面我们就一步步开始制作游戏界面。
注意:这里只以OPPION选项为例,完整的代码我会在最后上传
一、新建C#脚本
- <P>using UnityEngine;
- using System.Collections;</P><P>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;//音效音乐 </P><P> public Texture tex;//背景图片
- public Texture tex_t;//点击设置选项时挡在背景图片前的黑色底板
- public Texture tex_nandu;//点击开始时难度选择的底板
- public Texture[] tex_help;//点击帮助时的图片
- public int select_T = 0;//标志菜单选择项 </P><P> public Menu start_t;
- public Menu option_t;
- public Menu help_t;
- public Menu quit_t;
- public int count;//标志帮助图片当前的张数
- public bool helpContinue;//帮助菜单是否点击继续按钮 </P><P> // 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;</P><P> //绘制背景图片
- GUI.DrawTexture(new Rect(0, 0, Screen.width, Screen.height), tex);</P><P> //绘制整个菜单选项
- 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;
- }
- }
- </P><P> 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;
- }
- }
- }
- }
- </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 界面皮肤相关推荐
- 我和小伙伴们一起学Unity3D(六)碰撞与触发器
在上一节我们介绍了刚体,但刚体只能使物体可以在力的作用下运动,小球之所以能撞到地面而不是穿过地面,是因为在创建物体时,U3D自动为每个物体附加了碰撞器,有了碰撞器,才会使物体正常的碰撞,而不是穿过. ...
- 和小伙伴们一起学Unity3D(六)碰撞与触发器
在上一节我们介绍了刚体,但刚体只能使物体可以在力的作用下运动,小球之所以能撞到地面而不是穿过地面,是因为在创建物体时,U3D自动为每个物体附加了碰撞器,有了碰撞器,才会使物体正常的碰撞,而不是穿过. ...
- 【跟我一起学Unity3D】做一个2D的90坦克大战之AI系统
对于AI,我的初始想法非常easy,首先他要能动,而且是在地图里面动. 懂得撞墙后转弯,然后懂得射击,其它的没有了,基于这个想法,我首先创建了一个MyTank类,用于管理玩家的坦克的活动,然后创建AI ...
- 【跟我一起学Unity3D】做一个2D的90坦克大战之地图编辑器
从10月20号到现在,Unity3D也学了10天了,对于Unity3D也有了一个大致的了解,有必要做一个小游戏来检测一下自己的学习成果了.经过两天的努力,终于总算是做出来了一个可以玩的坦克大战了.首先 ...
- 2019该怎么学unity3D游戏开发?
Unity 3D本来是由德国的一些苹果粉丝开发的一款游戏引擎,一直只能用于Mac平台,所以一直不被业外人士所知晓.但是后来也推出了2.5版,同时发布了PC版本,并将其发布方向拓展到手持移动设备.怎么学 ...
- 微软说自己是互联网公司,我和我的小伙伴们都惊呆了
因为CIC(中国互联网大会)的召开,今天的话题也就不能免俗了.简单跟大家谈谈自己参加会议的一些见闻. 不知道是不是ChinaJoy把中国会议带坏了,现在只要是一个允许有品牌推展的会议,你进入会场首先看 ...
- 我和我的小伙伴们都惊呆了!基于Canvas的第三方库Three.js
What is Three.js three + js 表示运行在浏览器上的3D程序 javascript的计算能力因为google的V8引擎得到了迅猛提升 做服务器都没问题了 更别说3D了 哈哈 ...
- 跟我学jQuery(三) 无所不能的选择器1
跟我学jQuery教程目录: 跟我学jQuery(一) 前言 跟我学jQuery(二) 初识jQuery 跟我学jQuery(三) 无所不能的选择器1 跟我学jQuery(四) ...
- 脑残式网络编程入门(一):跟着动画来学TCP三次握手和四次挥手
转自即时通讯网:http://www.52im.net/ 1.引言 网络编程中TCP协议的三次握手和四次挥手的问题,在面试中是最为常见的知识点之一.很多读者都知道"三次"和&quo ...
最新文章
- 解读《电力发展“十三五”规划》
- DH1766线性三路可编程直流电源
- android 多个标签页,Android一个标签页的实现
- C语言编写DFT计算程序, 并绘制幅度谱
- redis集群搭建与配置
- 一张图告诉你,自学编程和科班程序员的差别在哪
- TreeSet学习,比较器学习
- 常见的浏览器兼容性问题大汇总
- java简化代码的jar_JAVA奇技淫巧简化代码之lombok
- 简单的eda实验vga在linux系统中,《EDA实验报告VGA彩条显示.doc
- android 检测摇一摇
- Microsoft Updater Application Block 1.4.3 KeyValidator类设计 [翻译]
- 洛谷P1880 石子合并 区间动归
- 你的Redis集群撑得住吗?
- 大事件归来,爷青回!
- 百度街景瓦片下载器1.1.5
- AI病毒来袭,拿什么拯救你我的电脑?
- 手机的CPU为什么要区分大小核?
- 人生苦短——珍惜眼前人
- 【SPI总线常见错误】
热门文章
- 调和级数的和 matlab,调和级数发散到无穷大的速度有多慢?
- 游戏创业公司技术体系构建
- 将VMProtect集成到应用程序教程之实模式(四):将代码锁定到序列号上
- python和anaconda区别_anaconda与conda的区别
- 【附源码】Python计算机毕业设计民宿预定管理系统
- 逃逸闭包(@escaping)和非逃逸闭包
- SpringBoot 整合 Redis 使用详解(StringRedisTemplate 和 RedisTemplate 对比分析)
- History of program(程序简史)
- 00后收入多少才能「碾压」同龄人?
- atof()、atoi()、atol()函数【详解】