您的位置:首页 > 移动开发 > Unity3D

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

2013-07-15 11:49 375 查看
using UnityEngine;
using System.Collections;

public class Script_10_01 : MonoBehaviour 
{
	
	//游戏界面状态机
	
	//主菜单界面
	public const int STATE_MAINMENU = 0;
	//开始游戏界面
	public const int STATE_STARTGAME = 1;
	//游戏设置界面
	public const int STATE_OPTION = 2;
	//游戏帮助界面
	public const int STATE_HELP = 3;
	//游戏退出界面
	public const int STATE_EXIT = 4;
	
	//GUI皮肤
	public GUISkin mySkin;
	
	//游戏背景贴图
	public Texture textureBG; 
	//开始菜单截图
	public Texture tex_startInfo;
	//帮助菜单贴图
	public Texture tex_helpInfo;
	
	//游戏音乐资源
	public AudioSource music;  
	//当前游戏状态
	private int gameState;
	
	void Start ()
	{
		//初始化游戏状态为:主菜单界面
		gameState = STATE_MAINMENU;
	}
	
	void OnGUI()
	{
	
		switch(gameState)
		{
			case STATE_MAINMENU:
				//绘制主菜单界面
				RenderMainMenu();
			break;
			case STATE_STARTGAME:
				//绘制游戏开始界面
				RenderStart();
			break;
			case STATE_OPTION:
				//绘制游戏设置界面
				RenderOption();
			break;
			case STATE_HELP:
				//绘制游戏帮助界面
				RenderHelp();
			break;
			case STATE_EXIT:
				//绘制游戏退出界面
				//目前直接关闭退出游戏
			break;
		}
		

	}
	//绘制主菜单界面
	void RenderMainMenu()
	{
		//设置界面皮肤
		GUI.skin = mySkin;
		//绘制游戏背景图
		GUI.DrawTexture(new Rect(0,0,Screen.width,Screen.height),textureBG);
		//开始游戏按钮
		if(GUI.Button(new Rect (0,30,623,153),"","start"))
		{
			//进入开始游戏状态
			//目前由于是测试阶段
			//后期会在这里重新载入新的游戏场景
			gameState = STATE_STARTGAME;
		}
		//游戏设置按钮
		if(GUI.Button(new Rect (0,180,623,153),"","option"))
		{
			//进入开始游戏状态
			gameState = STATE_OPTION;
		}
		//游戏帮助按钮
		if(GUI.Button(new Rect (0,320,623,153),"","help"))
		{
			//进入游戏帮助状态
			gameState = STATE_HELP;
		}
		//游戏退出按钮
		if(GUI.Button(new Rect (0,470,623,153),"","exit"))
		{
			//退出游戏
			Application.Quit();
		}
	}
	//绘制游戏开始界面
	void RenderStart()
	{
		GUI.skin = mySkin;
		GUI.DrawTexture(new Rect(0,0,Screen.width,Screen.height),tex_startInfo);
		//绘制返回按钮
		if(GUI.Button(new Rect (0,500,403,78),"","back"))
		{
			//返回游戏主菜单
			gameState = STATE_MAINMENU;
		}
	}
	//绘制游戏帮助界面
	void RenderHelp()
	{
		GUI.skin = mySkin;
		GUI.DrawTexture(new Rect(0,0,Screen.width,Screen.height),tex_helpInfo);
		if(GUI.Button(new Rect (0,500,403,78),"","back"))
		{
			gameState = STATE_MAINMENU;
		}
	}
	//绘制游戏设置界面
	void RenderOption()
	{
		GUI.skin = mySkin;
		GUI.DrawTexture(new Rect(0,0,Screen.width,Screen.height),textureBG);
		
		//开启音乐按钮
		if(GUI.Button(new Rect (0,0,403,75),"","music_on"))
		{
			if (!music.isPlaying)
			{  
          		//播放音乐
                music.Play();  
            }  

		}
		//关闭音乐按钮
		if(GUI.Button(new Rect (0,200,403,75),"","music_off"))
		{
			//关闭音乐
			music.Stop();
		}
		//返回按钮
		if(GUI.Button(new Rect (0,500,403,78),"","back"))
		{
			//返回游戏主菜单
			gameState = STATE_MAINMENU;
		}
	}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: