Unity 简单游戏编程(1) 开始界面设计

2023-11-14

转自:http://blog.csdn.net/qqmcy/article/details/9330405

  1. using UnityEngine;  
  2. using System.Collections;  
  3.   
  4. public class Script_10_01 : MonoBehaviour   
  5. {  
  6.       
  7.     //游戏界面状态机  
  8.       
  9.     //主菜单界面  
  10.     public const int STATE_MAINMENU = 0;  
  11.     //开始游戏界面  
  12.     public const int STATE_STARTGAME = 1;  
  13.     //游戏设置界面  
  14.     public const int STATE_OPTION = 2;  
  15.     //游戏帮助界面  
  16.     public const int STATE_HELP = 3;  
  17.     //游戏退出界面  
  18.     public const int STATE_EXIT = 4;  
  19.       
  20.     //GUI皮肤  
  21.     public GUISkin mySkin;  
  22.       
  23.     //游戏背景贴图  
  24.     public Texture textureBG;   
  25.     //开始菜单截图  
  26.     public Texture tex_startInfo;  
  27.     //帮助菜单贴图  
  28.     public Texture tex_helpInfo;  
  29.       
  30.     //游戏音乐资源  
  31.     public AudioSource music;    
  32.     //当前游戏状态  
  33.     private int gameState;  
  34.       
  35.     void Start ()  
  36.     {  
  37.         //初始化游戏状态为:主菜单界面  
  38.         gameState = STATE_MAINMENU;  
  39.     }  
  40.       
  41.     void OnGUI()  
  42.     {  
  43.       
  44.         switch(gameState)  
  45.         {  
  46.             case STATE_MAINMENU:  
  47.                 //绘制主菜单界面  
  48.                 RenderMainMenu();  
  49.             break;  
  50.             case STATE_STARTGAME:  
  51.                 //绘制游戏开始界面  
  52.                 RenderStart();  
  53.             break;  
  54.             case STATE_OPTION:  
  55.                 //绘制游戏设置界面  
  56.                 RenderOption();  
  57.             break;  
  58.             case STATE_HELP:  
  59.                 //绘制游戏帮助界面  
  60.                 RenderHelp();  
  61.             break;  
  62.             case STATE_EXIT:  
  63.                 //绘制游戏退出界面  
  64.                 //目前直接关闭退出游戏  
  65.             break;  
  66.         }  
  67.           
  68.   
  69.     }  
  70.     //绘制主菜单界面  
  71.     void RenderMainMenu()  
  72.     {  
  73.         //设置界面皮肤  
  74.         GUI.skin = mySkin;  
  75.         //绘制游戏背景图  
  76.         GUI.DrawTexture(new Rect(0,0,Screen.width,Screen.height),textureBG);  
  77.         //开始游戏按钮  
  78.         if(GUI.Button(new Rect (0,30,623,153),"","start"))  
  79.         {  
  80.             //进入开始游戏状态  
  81.             //目前由于是测试阶段  
  82.             //后期会在这里重新载入新的游戏场景  
  83.             gameState = STATE_STARTGAME;  
  84.         }  
  85.         //游戏设置按钮  
  86.         if(GUI.Button(new Rect (0,180,623,153),"","option"))  
  87.         {  
  88.             //进入开始游戏状态  
  89.             gameState = STATE_OPTION;  
  90.         }  
  91.         //游戏帮助按钮  
  92.         if(GUI.Button(new Rect (0,320,623,153),"","help"))  
  93.         {  
  94.             //进入游戏帮助状态  
  95.             gameState = STATE_HELP;  
  96.         }  
  97.         //游戏退出按钮  
  98.         if(GUI.Button(new Rect (0,470,623,153),"","exit"))  
  99.         {  
  100.             //退出游戏  
  101.             Application.Quit();  
  102.         }  
  103.     }  
  104.     //绘制游戏开始界面  
  105.     void RenderStart()  
  106.     {  
  107.         GUI.skin = mySkin;  
  108.         GUI.DrawTexture(new Rect(0,0,Screen.width,Screen.height),tex_startInfo);  
  109.         //绘制返回按钮  
  110.         if(GUI.Button(new Rect (0,500,403,78),"","back"))  
  111.         {  
  112.             //返回游戏主菜单  
  113.             gameState = STATE_MAINMENU;  
  114.         }  
  115.     }  
  116.     //绘制游戏帮助界面  
  117.     void RenderHelp()  
  118.     {  
  119.         GUI.skin = mySkin;  
  120.         GUI.DrawTexture(new Rect(0,0,Screen.width,Screen.height),tex_helpInfo);  
  121.         if(GUI.Button(new Rect (0,500,403,78),"","back"))  
  122.         {  
  123.             gameState = STATE_MAINMENU;  
  124.         }  
  125.     }  
  126.     //绘制游戏设置界面  
  127.     void RenderOption()  
  128.     {  
  129.         GUI.skin = mySkin;  
  130.         GUI.DrawTexture(new Rect(0,0,Screen.width,Screen.height),textureBG);  
  131.           
  132.         //开启音乐按钮  
  133.         if(GUI.Button(new Rect (0,0,403,75),"","music_on"))  
  134.         {  
  135.             if (!music.isPlaying)  
  136.             {    
  137.                 //播放音乐  
  138.                 music.Play();    
  139.             }    
  140.   
  141.         }  
  142.         //关闭音乐按钮  
  143.         if(GUI.Button(new Rect (0,200,403,75),"","music_off"))  
  144.         {  
  145.             //关闭音乐  
  146.             music.Stop();  
  147.         }  
  148.         //返回按钮  
  149.         if(GUI.Button(new Rect (0,500,403,78),"","back"))  
  150.         {  
  151.             //返回游戏主菜单  
  152.             gameState = STATE_MAINMENU;  
  153.         }  
  154.     }  
  155. }  



本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Unity 简单游戏编程(1) 开始界面设计 的相关文章

  • GAME Kit开发记录

    2D Game Kit开发记录 作为一款经典的2D游戏 seeker的构成用到了很多U3D中常用的手法和操作 其中包括角色移动 攻击 不同地形的材质处理 机关的触发 敌人系统 以及UI设置等 1 建立场景 作为整个游戏的基础 场景是玩家进入
  • 用UGUI方式实现图片的遮罩,圆角图片,圆形图片效果

    实现图片的圆角效果 圆形图片效果 是一个很常见的功能 如下 很多人会使用shader来做 但是太麻烦了 网上关于UGUI实现这种效果的方法我也一直没有找到 我这里知道一个很简单的方法 不用写一行代码 现在我打算告诉你 原理 就是通过Mask
  • Button 点击没有反应

    原因 检查一下你是不是把button TargetGraphic目标翻转了180度 因为UGUI的射线检测默认只检测正面 解决办法 在你的button检测目标也就是 TargetGraphic目标上加个GraphicRayCaster组件
  • 用Unity3D和VuforiaSDK简单做AR应用(入门)

    最近刚开始接触AR技术 结合u3d 算是对增强现实应用入个门 网上的例子不胜枚举 但有些浅尝辄止 根据自己几天来的摸索 毕竟新的技术源自国外 翻起晦涩的外文 一步一个脚印终于爬了出来 先上个史记效果图先 我取名之 鹿君下山 接下来说说步骤
  • 【01】-迟来的毕设进度记录-【场景搭建、photon实时实现联机(二)】

    嗨我又回来了 今天的任务是 场景KO掉啦 大概基础就这样 植被细节接着弄 重大突破 在动画方面进行了修改 如下图 思路是 玩家按下鼠标左键直接攻击播放攻击动画 不需要bool繁琐的判断 代码也简化 而且之前有BUG 就是玩家按着鼠标左键时
  • Unity3D 屏幕点击特效

    前言 屏幕点击特效目前用到两种 场景中特效和UI特效 其实就是坐标和层级之间的区别 无论特效用的帧动画 粒子特效亦或是贴图都可以使用 根据项目稍微调整下就好了 如果想优化的话可以写个对象池 这里就不赘述了 1 UI点击特效 注意要将Laye
  • Crest Ocean System

    最新版本支持Unity3D 2019 4 8或以上 https github com crest ocean crest
  • Unity Transparent Video

    https medium com pofu lu unity transparent video E7 94 A8 videoplayer E6 88 96 avpro E6 92 AD E6 94 BE E9 80 8F E6 98 8E
  • (转)关于Unity中的Input输入事件

    截获鼠标 键盘的消息 监听事件我们都是在Update里面监听的 Unity的虚拟轴打开 Edit gt Project Settings gt Input 打开的各个Name就是双引号里面要填的 记不住就打开查 也可以自己定义一些按键 一
  • Unity3D-UGUI-带滚动条的滑动文本框

    1 在Canvas新建一个Panel 添加 scroll Rect和mask组件 2 Panel下新建一个Text Vertical Overflow设置成Overflow 然后添加 Content Size Fitter这个Layout
  • unity 3D 远程关机

    远程关机的方法很多 首先就是调用系统的运行命令 其次也可以费别写一个服务端和客户端 当然我们也可以借助第三方插件来实现远程关机 第一种 调用系统的运行命令 这个就非常简单了 直接打开cmd exe文件 写入关机命令就行了 System Di
  • U3D中对象的自动销毁

    很多游戏中都会重用同一个游戏对象 比如说Dota 一波兵一波兵的被对方消灭 如果尸体不会自动销毁 恐怕地图中的尸体堆积如山不说 配置再厉害的电脑也架不住 这样游戏的性能太低了 需要自动销毁的情形有 游戏对象已经并且永远消失在视野中了 天空中
  • U3D Transform基本移动函数: 移动、旋转、缩放

    1 指定方向移动 移动速度 float TranslateSpeed 10f Vector3 forward 表示 向前 transform Translate Vector3 forward TranslateSpeed 2 全方向移动
  • Unity 简单游戏编程(1) 开始界面设计

    转自 http blog csdn net qqmcy article details 9330405 using UnityEngine using System Collections public class Script 10 01
  • Unity3D如何开发最简单的VR游戏 vrPlus(神之眼)

    VR是一种可创建和体验虚拟世界 Virtual World 的计算机系统 是一种可以创建和体验虚拟世界的计算机仿真系统 它利用计算机生成一种模拟环境 是一种多源信息融合的交互式三维动态视景和实体行为的系统仿真使用户沉浸到该环境中 作为一个u
  • 修改mesh的clolors属性

    using UnityEngine using System Collections public class ExampleClass MonoBehaviour void Start Mesh mesh GetComponent
  • 引入UnityEngine.dll中的巨坑

    正确路径 C Program Files Unity Editor Data Managed 此目录下只需引用UnityEngine dll就可以访问MonoBehaviour 其他路径 C Program Files Unity Edit
  • 【Unity Shaders】抖音变身漫画1

    先来看一下手机拍出来的效果 我们发现有一张人像变成了卡通漫画脸 其它的只是做了一些图像处理 你可以再拍几张看一下 会发现千篇一律的大眼 小嘴有没有 你想的没错 这个是AI换脸技术 抖音特效里有很多了 把这个漫画脸再加上对图像的漫画处理 最后
  • unity3d之 C# WaitFOrSeconds()

    学习unity3d不久 在使用WaitFOrSeconds 时 遇到了不少麻烦 故记录 以警示后人 首先介绍C 和javascript 在使用它有很大的区别 javascript可以直接使用 yield WaitFOrSeconds 5 即
  • 从 Visual C++ 导出 U3D/PDF3D

    我被要求解决用 Visual C 编写的 CAD 应用程序在尝试将绘图导出为 PDF3D 时出现的内存使用问题 导出特征对于简单模型或仅复杂模型的一部分表现良好 但对于整个复杂模型则不然 我们使用 U3D sourceforge 项目来创建

随机推荐

  • Jetson TX2 外接开机键

    J20端子最下面两个插针对应PWR和GND 短接即可开机 左侧丝印已经标注出J20插针的定义
  • 文件web服务器搭建,Web服务器的构建和配置

    利用windows server2003中iis构建web服务器的几种方法 下面是学习啦小编跟大家分享的是Web 服务器的构建和配置 欢迎大家来阅读学习 Web 服务器的构建和配置 工具 原料 windows server 2003 int
  • 介绍几个常见的锁策略!

    到此为止 多线程大致结束 多线程初阶 主要介绍了线程的概念 及其多线程编程 多线程编程的注意事项 代码案列 算是最核心的部分了 面试常考 工作常用 多线程进阶 锦上添花 学有余力可以搞搞 能理解最好 不能理解就背 主要围绕一些更深奥的面试题
  • 华南X99F8D开不了机——主板出现错误码67的解决方案

    华南X99F8D开不了机 主板出现错误码67的解决方案 前言 笔者的双路e5 大数据双路e5主机搭建 2696v3 256g内存 配置 主板 x99f8d CPU e5 2696v3 2 36核72线程 内存条 DDR4 ECC 32G 8
  • 2013 Lost connection to MySQL server at ‘handshake: reading initial communication packet

    Navicat连接mysql报错 尝试重启一下MySQL 有可能就解决了
  • mac出现java程序运行版本不一致

    mac出现java程序运行版本不一致 Burpsuite pro v2022版本 Burpsuite pro v2023 6 2版本 解决方案 Burpsuite pro v2022版本 在安装BurpSuite的时候 执行启动程序 jav
  • 如何在IDEA中隐藏文件或者文件夹

    Setting File Types Ignored Files and Folders 输入要隐藏的文件名 支持 号通配符 回车确认添加 File Setting Editor File Types 中点 然后点击第一个方框 点第二个方框
  • 苹果上架Guideline 4.3 - Design

    最近上架苹果商店 审核提示 Guideline 4 3 Design We noticed your app shares a similar binary metadata and or concept as apps previousl
  • SpringBoot+Vue开发笔记

    参考 https www bilibili com video BV1nV4y1s7ZN p 1 概要总结 1 MVC架构 View 与用户交互 Controller 负责协调分发任务 Model 数据处理 2 Controller与 Re
  • Bootstrap 4:如何使顶部固定的Navbar保持在容器中而不拉伸?

    There are many ways to make a fixed navbar stay inside a parent s div container We ll go over the most straightforward o
  • Demosaic------颜色插值

    光线中主要包含三种颜色信息 即R G B 但是由于像素只能感应光的亮度 不能感应光的颜色 同时为了减小硬件和资源的消耗 必须要使用一个滤光层 使得每个像素点只能感应到一种颜色的光 目前主要应用的滤光层是bayer GRBG格式 如下图所示
  • 【论文阅读】BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding

    论文阅读 BERT Pre training of Deep Bidirectional Transformers for Language Understanding 前言 BERT 是 Google 于 2018 年提出的 NLP 预训
  • Cocos Creator 初识编辑器界面

    编辑器界面的介绍 1 资源管理器 2场景编辑器 3层级管理器 4属性检查器 节点和组件属性的工作区 以及脚步绑定位置 5控制库 预设控件的仓库库 可以通过拖拽方式添加到场景中 并且可以将用户自己的预制资源 prefab 添加到控件库里方便再
  • Jetson Nano介绍

    1 bo1公版介绍 Jetson NanoBO1公版的实物图如下图所示 其中1是TF卡接口 可以进行系统镜像烧写 2是40PIN GPIO扩展接口 3是用来传输数据或使用电源供电的Micro USB接口 4是千兆以太网口 5是USB3 0接
  • netstat命令详解

    概述 最近在学网络编程 用到了netstat命令 觉得非常有用 就把netstat的信息整理一下 以备不时之需 Netstat是控制台命令 是一个监控TCP IP网络的非常有用的工具 它可以显示路由表 实际的网络连接以及每一个网络接口设备的
  • L2-033 简单计算器 - java

    L2 033 简单计算器 时间限制 400 ms 内存限制 64 MB 题目描述 本题要求你为初学数据结构的小伙伴设计一款简单的利用堆栈执行的计算器 如上图所示 计算器由两个堆栈组成 一个堆栈 S 1 S 1 S1 存放数字 另一个堆栈
  • 腾讯java运营开发面试题_腾讯运营开发面经

    前言 腾讯面试体验流程非常的正规 不像其他小厂 xjb乱来的 签到 指引 等待 面试 一套下来体验很是不错 而且面试官人也挺好的 面试官搞c 的 我Java 他一个c 的问题都没有问我 很是不错 我说一个不好的事情 我tm迟到了 约的时间是
  • ROS STAGE教程3 (编译源码,自定义Lidar噪声)Ubuntu 18.04 Ubuntu 16.04

    源码地址 https github com rtv Stage git 系统 Ubuntu 18 04 ROS Melodic 噪声生成模块 lasernoise 路径为Stage examples ctrl lasernoise cc i
  • 台式计算机显示连接不可用,电脑莫名其妙无法上网提示“连接不可用”如何解决...

    电脑使用时间久了 会出现各种各样的故障问题 最常见属于网络问题 近期一位用户说电脑莫名其妙无法识别网络 桌面右下角提示 连接不可用 无法上网是一个比较烦人的问题 对于这种情况 可以通过以下几步简单的方法就能解决问题 1 当我们遇到无法识别出
  • Unity 简单游戏编程(1) 开始界面设计

    转自 http blog csdn net qqmcy article details 9330405 using UnityEngine using System Collections public class Script 10 01