今天介绍一些制作游戏菜单的知识点:
1.播放音乐:
1.把音乐文件移到场景中,取名为Music
2.在脚本中声明AudioSource music
3.如果没播放就播放
if(!music.isPlaying) music.Play();
4.停止:
music.Stop();
2.游戏状态:
游戏状态怎么理解呢?就是个游戏发送一个状态,告诉它下一步应该做什么事情?这个状态起到了简化代码,使代码更有可读性
比如,现在有以下状态,渲染主界面,渲染开始界面,渲染设置,渲染帮助,离开界面,那么在游戏状态中就可以这样声明:
public const int STATE_MAINMEMU = 0;
public const int STATE_STARTGAME = 1;
public const int STATE_OPTION = 2;
public const int STATE_HELP = 3;
public const int STATE_QUIT = 4;
然后设置一个当前的游戏状态
public int gameState;
游戏一开始要渲染主菜单界面
void Start()
{
gameState = STATE_MAINMENU;
}
这样以后再更新中监听当前游戏状态,然后进行游戏:
void Update()
{
switch(gameState)
{
case STATE_MAINMENU:
RenderMainMenu();
break;
case STATE_STARTGAME:
RenderStartGame();
break;
.......
}
}
这样,当执行某个动作使游戏进入另外一个状态:
if(GUI.Button(new Rect(0,50,483,78),"","start")
{
gameState = STATE_STARTGAME;
}
整个游戏逻辑看起来很清楚简洁,它利用了消息响应的模式使游戏运行起来
3.GUISkin:
GUISkin是这次学到的第二个收获,制作一个GUISkin就可以让游戏使用一套皮肤,然后直接从脚本中调用。比如,现在要制作一个每个按钮的背景,一共有七个按钮:start,option,help,quit,back ,music_on,music_off
创建GUISkin方法:
在Project中Create->GUI Skin:
在Button选项中声明Size为7:对于Size 0 ,名字取为start,在Normal选项中把start的图像拖进去,制作完毕
下面的6个全部这样制作。
接着在脚本中调用皮肤:
public GUISkin mySkin;
void RenderMainMenu()
{
GUI.skin=myskin;
//渲染游戏主菜单界面的的背景:
GUI.DrawTexture(new Rect(0,0,Screen.width,Screen.height),TextureBg);
[url=]//渲染sta[/url]rt按钮的背景
if(GUI.Button(new Rect(0,0,403,78),"","start")
{
}
}
4.退出游戏程序:
点击quit按钮停止:
if(GUI.Button(new Rect(0,0,500,78),"","quit")
{
Appliction.quit();
}