作者kagami91582 (GaryJ)
看板GameDesign
标题[请益] unity长按的设定
时间Wed Sep 23 13:01:27 2015
在之前询问了Update()的细节後 自己有去改了一下
不过还是有一些问题
主要设定的程式是这样子
void Update(){
for (int i = 0; i < NumStrings; ++i) {
ButtonsJustPressed [i] = false;
CheckKeyCode (StringKeys [i], i);
}
}
void CheckKeyCode( KeyCode code, int stringIndex ){
if( Input.GetKeyDown( code ) )
{
OnStringChange( stringIndex, true );
}
if( Input.GetKey( code ) && !ButtonsPressed[ stringIndex ] ){
OnStringChange( stringIndex, true );
}
if( Input.GetKeyUp( code ) ){
OnStringChange( stringIndex, false );
}
}
若是在物品落下时 利用长按的方法去接住 要怎麽改比较好?
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 125.227.216.73
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/GameDesign/M.1442984491.A.6CD.html
1F:推 cjcat2266: 按下flag = true,放开flag = false 09/23 14:26
2F:→ cjcat2266: if (flag && 物件碰到) 接住(); 09/23 14:26
3F:→ laikyo: 你要不要看一下Input.GetKey官方描述... 09/23 17:09
4F:→ kagami91582: 其实看了很久还是看不懂(泪 09/23 23:34
5F:→ tomnelson: docs.unity3d.com/ScriptReference/Input.GetKey.html 09/24 01:05
6F:→ tomnelson: Input.GetKey不就是当按键一直被按住没放开时会return 09/24 01:07
7F:→ tomnelson: true吗? 你应该是 GetKeyDown/GetKey/GetKeyUp 三个状 09/24 01:09
8F:→ tomnelson: 态处理那边没搞好,往那方向去思考一下吧! 09/24 01:10
9F:→ tomnelson: 我的想法是GetKeyDown(x)後设flag(x)=true,当GetKey(x) 09/24 01:12
10F:→ tomnelson: 为true且flag(x)=true维持一段时间,就去做长按的事,而 09/24 01:14
11F:→ tomnelson: GetKeyUp(x)=true且flag(x)=true时,将flag(x)设成false 09/24 01:15
12F:→ tomnelson: 至於"维持一段时间"那部份,可能你要试验看看,或许用 09/24 01:16
13F:→ tomnelson: counter(x)=counter(x)+1的方式就可以,未必要用到时间 09/24 01:20
14F:→ tomnelson: docs.unity3d.com/ScriptReference/Time.html 09/24 01:20
15F:→ tomnelson: 里头的 deltaTime (Time.deltaTime) 之类的,总之,你就 09/24 01:22
16F:→ tomnelson: 动手&再动脑试试罗~ 09/24 01:22
17F:→ kagami91582: 感谢提点 之後我是这样子改啦 09/24 01:50
19F:→ kagami91582: 按下一个key然後不放开这样 的确有接到物品了 09/24 01:51
20F:→ kagami91582: 虽然目的是要让他同时跑两个啦~ 但已经先从无线回圈 09/24 01:52
21F:→ kagami91582: 跳出来了 再次感谢(泪 09/24 01:53
22F:→ kagami91582: 不然已经鬼打墙一段时间 自己英文又无敌废(炸 09/24 01:54
23F:推 tomnelson: 有从 loop 里出来就好~ 恭喜! 09/24 02:43