Unity3d中使用OnGUI()函数判断“键盘按下抬起”功能的新方法。
2016-02-06 22:18
609 查看
private bool flagJudgeDownAllow = true;//开始值为true
...
void OnGUI()
{
key = Event.current;
FunctionKeyCodeV1(key);
}
private void FunctionKeyCodeV1(Event key)
{
if (key.isKey)//如果“事件”有效,并且“允许判断按下”。
{
switch (key.keyCode)
{
case KeyCode.Space:
FunctionKeyCode();
break;
case KeyCode.DownArrow:
FunctionKeyCode();
break;
case KeyCode.UpArrow:
FunctionKeyCode();
break;
default:
break;
}
}
}
private void FunctionKeyCode()
{
if (key.type == EventType.keyUp && !flagJudgeDownAllow)
{
Debug.Log(key.keyCode.ToString() + " " + key.type.ToString() + " " + Time.time);
flagJudgeDownAllow = true;//抬起按钮之后才允许继续判断
}
else if (key.type == EventType.keyDown && flagJudgeDownAllow)
{
flagJudgeDownAllow = false;//判断完了 就不允许判断了
Debug.Log(key.keyCode.ToString() + " " + key.type.ToString() + " " + Time.time);
}
}
...
void OnGUI()
{
key = Event.current;
FunctionKeyCodeV1(key);
}
private void FunctionKeyCodeV1(Event key)
{
if (key.isKey)//如果“事件”有效,并且“允许判断按下”。
{
switch (key.keyCode)
{
case KeyCode.Space:
FunctionKeyCode();
break;
case KeyCode.DownArrow:
FunctionKeyCode();
break;
case KeyCode.UpArrow:
FunctionKeyCode();
break;
default:
break;
}
}
}
private void FunctionKeyCode()
{
if (key.type == EventType.keyUp && !flagJudgeDownAllow)
{
Debug.Log(key.keyCode.ToString() + " " + key.type.ToString() + " " + Time.time);
flagJudgeDownAllow = true;//抬起按钮之后才允许继续判断
}
else if (key.type == EventType.keyDown && flagJudgeDownAllow)
{
flagJudgeDownAllow = false;//判断完了 就不允许判断了
Debug.Log(key.keyCode.ToString() + " " + key.type.ToString() + " " + Time.time);
}
}
相关文章推荐
- Unity GameObject.activeSelf, GameObject.activeInHierarchy,GameObject.SetActive和SetActiveRecursively
- unity2D动画和图片切割
- unityTaidou(一)NGUI之列表的创建与使用
- Unity插件_____DoTween(一)
- unity + vuforia 初体验
- unity3d下用wikitude sdk开发图片识别的AR
- [Unity3D]Window Phone代码通信
- AR儿童绘本技术实现-实时着色
- Wikitude示例unity打包安卓应用
- wiki/Cg Programming/Unity_shder/Shading in World Space
- wiki/Cg Programming/Unity_shder/Debugging of Shaders
- unity用oculus播放全景视频
- UnityEngine.UI.dll' is in timestamps but is not known in guidmapper...
- unity中怎样获取全部子物体的组件
- Unity 导出切片精灵
- {Unity} 停止播放PlayClipAtPoint播放产生的OneShotAudio音效的方法
- wiki/Cg Programming/Unity_shder/RGB Cube
- Unity3D -- 使用iOS 3DTouch功能
- AR儿童绘本技术实现-静态着色
- Unity中使用Protobuf-net