【Unity程序技巧】Input管理器

news/2024/11/28 20:40:14/

在这里插入图片描述


👨‍💻个人主页:@元宇宙-秩沅

👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅!

👨‍💻 本文由 秩沅 原创

👨‍💻 收录于专栏:Unity基础实战

🅰️



文章目录

    • 🅰️
    • 前言
    • 🎶(==W==)PC_Input管理器
        • 1.相关知识
        • 2.特点
        • 3.脚本
    • 🅰️


前言


🎶(WPC_Input管理器


1.相关知识

在这里插入图片描述

2.特点

  • 配合事件中心管理器和公共Update管理器使用
  • 主要用于检测输入事件然后与事件中心配套使用
  • 使用场景: 更换玩家时进行相同的操作
3.脚本
using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class InputManager : SingleManager<InputManager>
{private bool isStart = false;public InputManager(){UpdateManager.GetInstance().AddUpdateListener(MyUpdate);}// 是否开启输入检测public void OpenOrClose(bool flag){isStart = flag;}private void MyUpdate() //执行时已变成生命函数Update{if (!isStart) return;CheckKeyCode(KeyCode.W);CheckKeyCode(KeyCode.S);CheckKeyCode(KeyCode.A);CheckKeyCode(KeyCode.D);}// 分发输入事件给事件中心private void CheckKeyCode(object  key){KeyCode code = (KeyCode)key;if (Input.GetKeyDown(code))EventCenter.GetInstance().EventTrigger("按下某键", key);//由于传进来的参数是枚举类型,而事件中心的构建不支持所以,传进事件中心的还是Object类型}//可自定义构造其他传入事件中心的组合
}
  • 测试
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Events;public class text : MonoBehaviour
{void Start(){//开启输入检测InputManager.GetInstance().OpenOrClose(true);//添加事件到事件中心EventCenter.GetInstance().AddEventListener<object>("按下某键", KeyDown);}public void KeyDown( object key){KeyCode code =(KeyCode)key ;switch (code){case KeyCode.W:Debug.Log("前进");break;case KeyCode.S:Debug.Log("后退");break;case KeyCode.A:Debug.Log("向左");break;case KeyCode.D:Debug.Log("向右");break;}}}

🅰️


⭐【Unityc#专题篇】之c#进阶篇】

⭐【Unityc#专题篇】之c#核心篇】

⭐【Unityc#专题篇】之c#基础篇】

⭐【Unity-c#专题篇】之c#入门篇】

【Unityc#专题篇】—进阶章题单实践练习

⭐【Unityc#专题篇】—基础章题单实践练习

【Unityc#专题篇】—核心章题单实践练习


你们的点赞👍 收藏⭐ 留言📝 关注✅是我持续创作,输出优质内容的最大动力!


在这里插入图片描述



http://www.ppmy.cn/news/1183634.html

相关文章

C51--PWN-舵机控制

PWM开发sg90舵机 1、简介 PWM&#xff08;pulse width modulation&#xff09;是脉冲宽度调制缩写。 通过对一系列脉冲的宽度进行调制&#xff0c;等效出所需要的波形&#xff08;包含形状以及幅值&#xff09;。对模拟信号电平进行数字编码&#xff0c;通过调节占空比的变化来…

网络安全—小白自学

1.网络安全是什么 网络安全可以基于攻击和防御视角来分类&#xff0c;我们经常听到的 “红队”、“渗透测试” 等就是研究攻击技术&#xff0c;而“蓝队”、“安全运营”、“安全运维”则研究防御技术。 2.网络安全市场 一、是市场需求量高&#xff1b; 二、则是发展相对成熟…

【错误解决方案】ModuleNotFoundError: No module named ‘torch._six‘

1. 错误提示 在python程序中&#xff0c;试图导入一个名为torch._six的模块&#xff0c;但Python提示找不到这个模块。 错误提示&#xff1a;ModuleNotFoundError: No module named torch._six 2. 解决方案 出现这个错误可能是因为你使用的PyTorch版本和你的代码不兼容。在某…

入门人工智能 —— 学习数据持久化、使用 Python 将数据保存到mysql(7)

入门人工智能 —— 学习数据持久化、使用 Python 将数据保存到mysql 什么是数据持久化&#xff1f;使用 Python 进行数据持久化步骤 1: 安装 MySQL步骤 2: 安装必要的 Python 库步骤 3: 连接到 MySQL 数据库步骤 4: 创建数据表步骤 5: 插入数据步骤 6: 查询数据步骤 7: 关闭连接…

PlantSimulation访问本地Excel文件的方法

PlantSimulation访问本地Excel文件的方法 PlantSimulation访问本地Excel文件的方法PlantSimulation访问本地Excel文件的方法 //Param StatusTable,T_DataTable:object var T_DataTable:object:=DataTable IF NOT isComputerAccessPermittedMESSageBox("计算机访问被阻止,…

Spring的执行流程与Bean的生命周期

目录 一、Spring的执行流程&#xff08;生命周期&#xff09; 二、Bean的生命周期 一、Spring的执行流程&#xff08;生命周期&#xff09; 首先在Spring的执行过程中会先启动容器&#xff0c;这里是将配置文件进行加载。根据配置文件完成Bean的实例化&#xff0c;比如是配置的…

c++指针【1】

在C中&#xff0c;指针是一种特殊的变量&#xff0c;它存储了一个内存地址。C指针在处理内存、数组、函数参数传递、文件I/O、动态内存分配等方面有着重要的应用。 一个指针变量通常被声明为特定类型的指针。例如&#xff0c;一个整数类型的指针可以指向一个整数。在声明指针变…

RabbitMQ如何保证消息不丢失呢?

RabbitMQ 是一个流行的消息队列系统&#xff0c;用于在分布式应用程序之间传递消息。要确保消息不会丢失&#xff0c;可以采取以下一些措施&#xff1a; 持久化消息&#xff1a; RabbitMQ 允许你将消息标记为持久化的。这意味着消息将被写入磁盘&#xff0c;即使 RabbitMQ 服务…