纳金网

标题: 【转】Unity 关于按下ESC键出来菜单 [打印本页]

作者: 晃晃    时间: 2011-7-28 11:24
标题: 【转】Unity 关于按下ESC键出来菜单
首先:按一下ESC出菜单,再按一下ESC隐藏菜单。这里按两次ESC,代码怎么写呢?

一般设定按键功能也就是Input.GetKeyDown(KeyCode.Escape)。

那电脑怎么知道你按一下是隐藏还是要显示呢?。

这里就需要一个判断。if(menuShow==false)。注意是两个等号啊。这表示电脑判断,

(就这个==搞个我一上午才知道。。。没语言基础。。郁闷)

然后出现的问题就是菜单能显示了。。但是镜头和鼠标一起动,哇,点个按钮。看得头都晕了,要解决这个问题。。我去官方论坛上找。。看了N多篇帖子,忽然注意到,First Person Controller这个控制mouse LOOK的X轴坐标,底下的Main Camera,控制的是Y坐标,于是把写的JS分别放到这两个上就OK了。

这时候发现,控制镜头的时候鼠标指针也出现了(我也不知道为什么。。。)在加个

Screen.showCursor =***e/false 这种情况就OK了。

其实还有点小问题,我想把鼠标出现的时候显示在屏幕中间,这样比较好点按钮,也就是光标定位的问题。

最后,加点时间停止和镜头模糊特效,就很完美啦。

private var menuShow:boolean;

function Start(){

menuShow=false;

Screen.showCursor = false;

}

function Update (){
if(Input.GetKeyDown(KeyCode.Escape)){
if(menuShow==false){

menuShow=***e;

GetComponent (MouseLook).enabled = false;

Screen.showCursor = ***e;

}

else if (menuShow==***e){

menuShow=false;

GetComponent (MouseLook).enabled = ***e;

Screen.showCursor = false;

}

}
}
function OnGUI(){

if(menuShow==false){

return;

}

else if (menuShow==***e){
if(GUI.Button(Rect(Screen.width/2 - 30, Screen.height/2-50,60,30),"Restar")){

Application.LoadLevel(0);

menuShow=false;

}else if(GUI.Button(Rect(Screen.width/2 - 30, Screen.height/2-10,60,30),"ESC")){

Application.Quit();

}

}

}
作者: 彬彬    时间: 2011-8-2 21:18
给力
作者: tc    时间: 2012-2-1 23:25
谢谢楼主,真是太实用了

作者: 晃晃    时间: 2012-2-4 23:30
有意思!学习了!

作者: C.R.CAN    时间: 2012-2-8 23:32
响应天帅号召,顶

作者: 菜刀吻电线    时间: 2012-4-20 23:18
读铁系缘分,顶铁系友情

作者: 奇    时间: 2012-4-24 23:22
都闪开,介个帖子,偶来顶

作者: 奇    时间: 2012-6-12 23:20
先顶上去,偶要高亮加精鸟!

作者: 奇    时间: 2012-7-12 23:22
我就看看,我不说话

作者: 晃晃    时间: 2012-7-24 23:21
已阵亡的 蝶 随 风 舞 说过  偶尔按一下 CTRL A 会发现 世界还有另一面

作者: 晃晃    时间: 2012-7-25 23:19
响应天帅号召,顶

作者: 她。    时间: 2012-8-3 18:37
我爱纳金网~www.narkii.com
作者: Zack    时间: 2012-11-25 12:52
这个代码不错啊,但是那些 *** 是要如何猜啊。。
作者: 天杀的!!!    时间: 2015-10-4 13:04
***e是什么?




欢迎光临 纳金网 (http://rs.narkii.com/club/) Powered by Discuz! X2.5