首页 > 其他分享 >Untiy Input System

Untiy Input System

时间:2024-05-17 19:57:42浏览次数:34  
标签:playerInputAction Untiy inputVector System private --- Player Input Interact

GetKey, GetKeyDown, GetKeyUp

  • GetKey --- 按住
  • GetKeyDown --- 按下的第一帧为true ,按住后 为 false
  • GetKeyUp --- 同理

new input system

为了适配更多输入设备并将逻辑和操作进行分离。

  • craete/input action
  • 添加 Action Map ,设置Action type 和 control type ,添加 Actions 并绑定资源

实时控制:

private PlayerInputAction playerInputAction;

private void Awake()
{
	playerInputAction = new PlayerInputAction();
	playerInputAction.Player.Enable();
}



public Vector2 GetMovementVectorNormalized()
{
	Vector2 inputVector = playerInputAction.Player.Move.ReadValue<Vector2>();
	inputVector = inputVector.normalized;

	return inputVector;
}

按键监控:

利用 c# 事件 进行订阅

[[02 角色控制#use c event to make interact action]]

private void Awake()
{
	//初始化 input system
	playerInputAction = new PlayerInputAction();
	playerInputAction.Player.Enable();

	// 订阅 interaction 对应的按键 E
	playerInputAction.Player.Interact.performed += Interact_Performed;
}

private void Interact_Performed(UnityEngine.InputSystem.InputAction.CallbackContext obj)
{
	//自定义事件
	OnInteractAction?.Invoke(this, EventArgs.Empty);
}

标签:playerInputAction,Untiy,inputVector,System,private,---,Player,Input,Interact
From: https://www.cnblogs.com/bigsharker/p/18198531

相关文章

  • Use AOP to record system logs
    UsingAOPtoRecordSystemLogs:1.CustomAnnotationClassDefineacustomannotationclass:packagecom.java.common.annotion;importjava.lang.annotation.*;@Target({ElementType.METHOD,ElementType.PARAMETER})//Thisannotationappliestomethodsandp......
  • 部署freeipa中报错:Command '/bin/systemctl start certmonger.service' returned non-
    cat/etc/dbus-1/system.d/certmonger.conf<allowsend_destination="org.fedorahosted.certmonger"send_interface="org.fedorahosted.certmonger"/><allowsend_destination="org.fedorahosted.certmonger"......
  • php 判断 if (empty($user->published_at) != empty($user_input['published_at']))
    这里的逻辑是:如果$user->published_at为空,并且$user_input['published_at']不为空,或者如果$user->published_at不为空,并且$user_input['published_at']为空,那么条件将成立。这种检查通常用于确定某个值是否发生了变化,特别是从无到有或从有到无的情况。假设您的意图......
  • 使用qemu-system-x86_64和cloud-init修改qcow2镜像密码
    方法来自于:CoretutorialwithQEMU依次执行下面的命令sudoaptinstallqemu-system-x86mkdirtempcdtemp#以此镜像为例wgethttps://cloud-images.ubuntu.com/jammy/current/jammy-server-cloudimg-amd64.imgcat<<EOF>user-data#cloud-configpassword:123ch......
  • 使用.net 6.0框架的WPF应用如何引用System.Windows.Forms这个dll
    先说结论:能用.nerfx尽量用fx开发,因为很多坑之前的前辈帮你踩过了。。。解决方法是在这个目录下找到你对应版本的System.Windows.Forms这个dllC:\ProgramFiles\dotnet\packs\Microsoft.WindowsDesktop.App.Ref\6.0.26\ref\net6.0这个目录每个人版本不一样,想找到最简单的方法就......
  • XShell执行systemctl stop network命令后断开连接,并重连失败
    在XShell中执行命令systemctlstopnetwork后,断开了与虚拟机的连接,进行重新连接,显示连接失败,停止虚拟机网络服务后,XShell无法继续连接。需要重启虚拟机的网络服务【1】重启解决systemctlstopnetwork是暂时关闭服务,不是永久的,所以重启后会自启。在主机有网络的情况下,重启......
  • systemd 介绍和使用
    一、systemd介绍systemd是一个Linux系统基础组件的集合,提供了一个系统和服务管理器,运行为PID 1并负责启动其它程序。systemd采用并行化任务,可以提高系统的启动速度(SysV-init 采用串行启动)。除此之外,systemd还具有日志进程、控制基础系统配置、维护登陆用户列表以及系统账户、......
  • SystemVerilog -- 3.2 SystemVerilog Threads --> fork join_any
    forkjoin_any在一个简单的SystemVerilog中,mainthread会等到所有childthread都完成执行。这意味着如果任何childthread永远运行并且永远不会完成,则fork将挂起模拟。SystemVerilog还提供了带有forkjoin和forkjoin_any的原始版和变体。如果任何一个childthread完成,则允许ma......
  • SystemVerilog -- 3.1 SystemVerilog Threads --> fork join
    forkjoinSystemVerilog通过构造提供对并行或并发threads的支持。可以使用fork和join同时生成多个proceduralblocks。有一些变体允许mainthread根据childthread何时完成继续执行其余语句。Syntaxfork//Thread1//Thread2//...//Thread3joinforkjoin......
  • "Bios"是计算机系统中的基本输入输出系统(Basic Input/Output System),负责在计算机启动
    "Bios"是计算机系统中的基本输入输出系统(BasicInput/OutputSystem),负责在计算机启动时初始化硬件设备、检测系统资源,并启动操作系统。Bios开发人员是负责设计、开发和维护计算机系统的Bios软件的专业人员。工作内容:软件设计和开发:Bios开发人员负责设计和编写Bios软件,包......