• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
IslandZ
博客园    首页    新随笔    联系   管理    订阅  订阅
Unity触碰函数OnTriggerStay与Input.GetKeyDown

(写写博客尝尝鲜)

触碰函数中不要使用按键检测

我想让玩家在某个区域内进行按键检测,代码如下

 1 void TriggerPlayerStay(Collider2D collider)
 2     {
 3         if (collider.CompareTag("Player"))
 4         {
 5             if (Input.GetKeyDown(KeyCode.Z))
 6             {
 7                 Door.SetActive(true);
 8             }
 9         }
10     }

但经常Z键按烂了也没用

因为触碰函数在物理时钟周期上运行,按键检测一定要写在帧周期内,也就是Update函数中

如下:

 1 void TriggerPlayerStay(Collider2D collider)
 2     {
 3         if (collider.CompareTag("Player"))
 4         {
 5             isStay = true;
 6         }
 7     }
 8 private void Update()
 9     {
10         if (isStay)
11         {
12             if (Input.GetKeyDown(KeyCode.Z))
13             {
14                 Door.SetActive(true);
15             }
16         }
17     }

 

posted on 2023-03-29 18:18  Relolihentai  阅读(228)  评论(2)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3