Unity中怎么实现 csgo开始游戏按钮不亮打开游戏场景

Unity3D中GUI的操作还是比较方便的,显示按钮只需要在脚本中用GUI.Button显示即可。
GUI.Button的函数原型:
static function Button(position: Rect, text: string):
static function Button(position: Rect, image: Texture):
static function Button(position: Rect, content: GUIContent):
static function Button(position: Rect, text: string, style: GUIStyle):
static function Button(position: Rect, image: Texture, style: GUIStyle):
static function Button(position: Rect, content: GUIContent, style: GUIStyle):
参数position 屏幕中的位置text 按钮文字image 按钮图片content 按钮上文字、图片和工具提示style 风格
下面是具体的例子:
public class ButtonsScript : MonoBehaviour {
public Texture buttonT
private int repeatTime = 0;
private string info = "";
void Start () {
// Update is called once per frame
void Update () {
void OnGUI()
// 文本显示
GUI.Label (new Rect (50, 200, 200, 50), info);
// 第一个文字按钮
GUI.color = Color.
//按钮文字颜色
GUI.backgroundColor = Color. //按钮背景颜色
if(GUI.Button(new Rect(50,250,200,30), "Button1"))
info = "按下了Button1";
// 第二个图片按钮
GUI.color = Color.
//按钮文字颜色
GUI.backgroundColor = Color. //按钮背景颜色
if(GUI.Button(new Rect(50,300,128,64), buttonTexture))
info = "按下了Button2";
// 持续按下的按钮
if(GUI.RepeatButton(new Rect(50,400,200,30),"按钮按下中"))
info = "按钮按下中的时间:"+ repeatT
repeatTime++;
代码中显示了三种类型的按钮:文字、图片、持续按下的按钮。
下载源代码:
您还没有登录,请或游戏基本架构大致分为介绍界面(introduction),主菜单界面(Menu),游戏界面(Game),设置界面(Setting),排行榜(high score)。
在很多开发引擎中都结合以上架构存在类似的概念。安卓的活动(Activity),视图(View)等。在Unity中更是有场景(Scene)这一个概念。
Scene就是一组相关联的游戏对象的一个集合,通常每个集合就是一个场景,但是也有可能只是一个场景的一部分!
那么怎么管理游戏场景及游戏关卡是很重要的一个问题。其中涉及到场景跳转,场景加载等。如下介绍一款插件:Scene Manager。
提供。其中有DEMO,Tutorials,documentation,support。可供学习。
也可在unity 资源商店导入。
上该篇讲述后的工程视频:
Unity实现过程
介绍:一个菜单界面,点击进入游戏关卡一,点击进入游戏关卡二,点击回到菜单界面。
新建一个Unity工程,命名为SceneManagerTest.
保存场景为MyMainMenu.新建2个场景(游戏关卡一,二)为MyLevel1,MyLevel2.
导入插件包。其中插件包中的实例就不说了,直接进入简单的应用开发吧。
在工程视图中新建"Resources"、"MyScenes"、"MyScripts"、三个文件夹。
复制SceneManagerDemo中的SMGameEnvironment.cs脚本到MyScripts文件夹中,复制Transitions文件夹到新建的Resources下,删除SceneManagerDemo.
在Resources文件夹下新建"MyConfig"文件夹,选中Assets点击工程视图中的Create,点击选择&SceneConfiguration&,在MyConfig文件夹中可以看到"SMSceneConfiguration.cs".
选中&SMSceneConfiguration&,在检视面板中可以看到之前我们新建的三个场景,点击Activate按钮
在见识面板中的"AvaliableScenes"中选择场景,点击对应的功能按钮(Level、Screen等)如下图示:
在MyMainMenu场景中新建一个空物体,命名为MyMenuController,新建ShowGame.cs脚本如下:并将脚本挂在MyMenuController物体上。
1 using UnityE
2 using System.C
4 //我自定义啦。。
7 public class ShowGame : MonoBehaviour {
private SMSceneManager mSMSceneM
private SMILevelProgress mLevelP
// Use this for initialization
void Start () {
mSMSceneManager = SMGameEnvironment.Instance.SceneM
mLevelProgress = mSMSceneManager.UnmodifiableLevelP
// Update is called once per frame
void Update () {
void OnGUI(){
//if(!mLevelProgress.HasPlayed){
if(GUI.Button(new Rect(200,200,200,200),"MenuScene")){
mSMSceneManager.LoadFirstLevel();
分别在MyLevel1,MyLevel2场景中新建空物体为MyLevel1Controller,MyLevel2Controller,新建ShowNextLevel.cs脚本一并挂于空物体MyLevel1Controller,MyLevel2Controller上、
1 using UnityE
2 using System.C
4 //我自定义啦。。
7 public class ShowNextLevel : MonoBehaviour {
// Use this for initialization
void Start () {
// Update is called once per frame
void Update () {
void OnGUI(){
if(GUI.Button(new Rect(200,200,200,200),this.name)){
SMGameEnvironment.Instance.SceneManager.LoadNextLevel();
注意:记得将SMGameEnvironment.cs中的23行中的DemoConfig改为MyConfig
其中SMGameEnvironment.cs脚本如下:
1 using UnityE
2 using System.C
4 public class SMGameEnvironment {
private static SMGameE
private SMSceneManager sceneM
public static SMGameEnvironment Instance {
if (instance == null) {
instance = new SMGameEnvironment();
public SMSceneManager SceneManager {
return sceneM
public SMGameEnvironment() {
sceneManager = new SMSceneManager(SMSceneConfigurationLoader.LoadActiveConfiguration("MyConfig"));
sceneManager.LevelProgress = new SMLevelProgress(sceneManager.ConfigurationName);
// Comment this in to enable the blinds transition type
// sceneManager.TransitionPrefab = "Transitions/MyTransition";
阅读(...) 评论()Unity中游戏暂停和开始怎么实现? - CSDN博客
Unity中游戏暂停和开始怎么实现?
(1)Time.timeScale = 0可以暂停游戏,Time.timeScale = 1恢复正常,但这是作用于整个游戏的设置,不单单是当前场景,记得在需要的时候重置回Time.timeScale
= 1。当然也可以使用Time.timeScale来做游戏的1倍、2倍整体加速。
(2)timeScale影响的因素:
设置Time.timeScale = 0&将会暂停所有和帧率无关的事情。这些主要是指所有的物理事件和依赖时间的函数、刚体力和速度等,而且FixedUpdate会受到影响,会被暂停(不是Update),即timeScale
=0 时将不会调用FixedUpdate函数了。
但是,Update和LateUpdate函数本身的执行是不会受Time.timeScale的影响的。Update是依赖你的机器的,它的调用次数和你的机器渲染一样快慢(一些特殊情况除外);性能高的机器,帧率高,Update函数执行次数也就多。因此,当使用Time.timeScale
= 0时,所有和时间有关的事情都被暂停了。因为Time.timeScale为0时,Time.deltaTime将为0。这意味着,如果你使用Time.deltaTime来控制旋转和位移等,那么Time.timeScale
= 0也将使这些物体停止运动。所以游戏看起来是被冻结了,但是,我们的游戏仍在渲染,也就是说Update函数仍在执行。
所以Update和LateUpdate这两个方法里面需要自己用代码控制,且可以设定某些地方不会暂停(比如UI动画),弊端是如果想暂停,所有动画相关都要与Time.deltaTime这个字段绑定。
(3)如果游戏暂停以后想在暂停界面上继续播放一些不受Time.timeScale
影响的动画或者粒子特效之类的,那么我们就需要用到Time.realtimeSinceStartup去单独恢复他们,还有声音部分也需要单独恢复timeScale。
(4)以前看到一种实现暂停的方法是放弃Time.deltaTime,自己实现两个函数:OnPauseGame和
OnResumeGame。这种方法扩展性强,缺点是写起来可能比较繁琐。
补充有关于暂停的相关有个帖子还是不错的 /archives/2956
本文已收录于以下专栏:
相关文章推荐
很多时候,应用程序或者是游戏需要用上暂停功能,unity提供了不少便捷的方式,列在下面:
1、在editor中,按下pause按钮即可暂停
2、如果在代码中控制,可以通过设置Time.timeSc...
public static void Play()
EditorApplication.isPlaying =
public s...
使用Time.timeScale暂停游戏的时候的一些问题Unity版本:5.2(win7 64位测试)Unity中游戏暂停一般使用Time.timeScale = 0 来实现。Time.timeSca...
Time.timeScale = 0;
Time.timeScale = 1;
using UnityE
using System.Collecti...
好不容易快要写完了,突然出行暂停。对于这个问题,起初我以为C盘不够,于是狠心用磁盘分区给c盘扩了90G,然而于事无补,甚是苦恼。
明明就要答辩了,偏要这个时候捉弄我,我检查了代码,也没看出啥毛病。于...
一提到游戏暂停,很多人会想到 Time.timeScale = 0; 这种方法,但 Time.timeScale 只是能暂停部分东西。如果在 update 函数中持续改变一个物体的位置,这种位置改变貌...
上周游戏发布测试版本, 其他方向的反馈先不提。
被玩家吐槽的巨多的就是游戏中的技能。
具体情况是
我们游戏在战斗中使用的技能的时候:
有遮罩,会屏蔽玩家操作。
玩家不会无敌,而且怪物会移动。
前提条件:在项目中用过Time.timeScale = 0来实现游戏暂停问题: 暂停游戏后,暂停界面的按钮可能需要播放一个idle时的动画,Time.timeScale=0 会影响动画播放。受Time...
在退出按钮的点击事件中添加以下代码:
Application.Quit();
即可实现退出程序的功能。...
他的最新文章
讲师:钟钦成
讲师:宋宝华
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)【求助】怎么写一个button可以实现场景的跳转啊【unity吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:24,497贴子:
【求助】怎么写一个button可以实现场景的跳转啊收藏
在做毕设,主体场景已经完成了,现在想加一个游戏开始前的菜单。菜单我做了一个新场景,怎么通过一个按钮实现菜单场景到主体游戏场景的跳转啊??在线等哦,可以加我QQ5869137……多谢各位u吧大神了
娜迦APP加固服务具有:防逆向,篡改保护; 防调试,恶意代码植入;防反编译和环境监测
var MainBgPic : Texture2D;//主背景var MenuGUIskins : GUIS//皮肤function OnGUI () {
GUI.skin=MenuGUI
GUI.DrawTexture(Rect(0,0,),MainBgPic);
if(GUI.Button(Rect(412,268,200,100),"","Star")){
Application.LoadLevel(1);
////如果此按钮被按下,则跳转到关卡(1):LoadLevel(1)
GUI.Button(Rect(412,368,200,100),"","Option");
if(GUI.Button(Rect(412,468,200,100),"","Exit")){
Application.Quit();
}//如果此按钮被按下,则退出游戏
}这么写OK吗?多谢了!!!
再顶一下,期待大神现身
好回复 学到;
登录百度帐号推荐应用

我要回帖

更多关于 开始游戏的按钮 的文章

 

随机推荐