安装:
直接到包管理器Window > Package Manager安装即可,安装后提示需要重启,重启后即可使用。
注意:
在Project Settings中的Player设置里将Active Input Handling设置为Input System。
需要将默认场景中的EventSystem中的Standalone Input Module变更为新的Input System UI Input Module组件。
两种途径可以创建:
1.右键单击Create-->Input Actions创建
2.在想要控制的物体上挂载组件Player Input后单击Create Actions创建。
如果想要移动,跳跃等动作,可以双击创建创建的Input Actions或者选中此文件单击Edit asset

进入配置界面

点击 + 号创建ActionMaps,Actions并绑定按键

1.需要引用的命名空间using UnityEngine.InputSystem;
2.使用wasd进行移动
using UnityEngine;
using UnityEngine.InputSystem;
public class PlayController : MonoBehaviour
{
[SerializeField]
private InputActionReference moveInput;//绑定PlayerMove/Move
private void OnEnable()
{
moveInput.action.Enable();
}
private void OnDisable()
{
moveInput.action.Disable();
}
private void Update()
{
//检测是否按下wasd键
//方法1:
if (moveInput.action.WasPressedThisFrame())
{
Debug.Log("按下");
}
if (moveInput.action.WasReleasedThisFrame())
{
Debug.Log("抬起");
}
if (moveInput.action.WasPerformedThisFrame())
{
Debug.Log("按下+抬起");
}
//方法2:
/*moveInput.action.performed += ctx =>
{
//移动
transform.Translate(ctx.ReadValue<Vector2>());
};*/
}
}
3.把代码挂载到对应的gameObject上


1.跳跃
using UnityEngine;
using UnityEngine.InputSystem;
using UnityEngine.UI;
public class JumpManager : MonoBehaviour
{
[SerializeField]
public InputActionReference jumpInput;
private void OnEnable()
{
jumpInput.action.Enable();
}
private void OnDisable()
{
jumpInput.action.Disable();
}
private void Update()
{
if(jumpInput.action.WasPressedThisFrame())
{
Debug.Log("jump");
}
}
}
2.更换按键
using TMPro;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.InputSystem;
public class RebindButtons : MonoBehaviour
{
public InputActionReference jump;
public JumpManager jumpManager;
public Button jumpButton;
public TextMeshProUGUI text;
void Awake()
{
jump = jumpManager.jumpInput;
}
private void Start()
{
jumpButton.onClick.AddListener(ReBinding);
}
//更改按键
private void ReBinding()
{
Debug.Log("-----");
jump.action.Disable();
var rebind = jump.action.PerformInteractiveRebinding(0)
.OnCancel(
operation =>
{
jump.action.Enable();
})
.OnComplete(
operation =>
{
Debug.Log("OnComplete");
jump.action.Enable();
});
rebind.Start();
}
}
(更换按键步骤:点击按钮,选择并按下选择的按键,点击刚刚更换的按钮就可以执行了)

电脑0x0000001A蓝屏错误怎么U盘重装系统教学分享。有用户电脑开机之后遇到了系统蓝屏的情况。系统蓝屏问题很多时候都是系统bug,只有通过重装系统来进行解决。那么蓝屏问题如何通过U盘重装新系统来解决呢?来看看以下的详细操作方法教学吧。 准备工作: 1、U盘一个(尽量使用8G以上的U盘)。 2、一台正常联网可使用的电脑。 3、ghost或ISO系统镜像文件(Win10系统下载_Win10专业版_windows10正式版下载-系统之家)。 4、在本页面下载U盘启动盘制作工具:系统之家U盘启动工具。 U盘启动盘制作步骤: 注意:制作期间,U盘会被格式化,因此U盘中的重要文件请注
在应用开发中,有时候我们需要获取系统的设备信息,用于数据上报和行为分析。那在鸿蒙系统中,我们应该怎么去获取设备的系统信息呢,比如说获取手机的系统版本号、手机的制造商、手机型号等数据。1、获取方式这里分为两种情况,一种是设备信息的获取,一种是系统信息的获取。1.1、获取设备信息获取设备信息,鸿蒙的SDK包为我们提供了DeviceInfo类,通过该类的一些静态方法,可以获取设备信息,DeviceInfo类的包路径为:ohos.system.DeviceInfo.具体的方法如下:ModifierandTypeMethodDescriptionstatic StringgetAbiList()Obt
?博客主页:https://xiaoy.blog.csdn.net?本文由呆呆敲代码的小Y原创,首发于CSDN??学习专栏推荐:Unity系统学习专栏?游戏制作专栏推荐:游戏制作?Unity实战100例专栏推荐:Unity实战100例教程?欢迎点赞?收藏⭐留言?如有错误敬请指正!?未来很长,值得我们全力奔赴更美好的生活✨------------------❤️分割线❤️-------------------------
本教程将在Unity3D中混合Optitrack与数据手套的数据流,在人体运动的基础上,添加双手手指部分的运动。双手手背的角度仍由Optitrack提供,数据手套提供双手手指的角度。 01 客户端软件分别安装MotiveBody与MotionVenus并校准人体与数据手套。MotiveBodyMotionVenus数据手套使用、校准流程参照:https://gitee.com/foheart_1/foheart-h1-data-summary.git02 数据转发打开MotiveBody软件的Streaming,开始向Unity3D广播数据;MotionVenus中设置->选项选择Unit
目录1.AdmobSDK下载地址2.将下载好的unityPackagesdk导入到unity里编辑 3.解析依赖到项目中
Unity自动旋转动画1.开门需要门把手先动,门再动2.关门需要门先动,门把手再动3.中途播放过程中不可以再次进行操作觉得太复杂?查看我的文章开关门简易进阶版效果:如果这个门可以直接打开的话,就不需要放置"门把手"如果门把手还有钥匙需要旋转,那就可以把钥匙放在门把手的"门把手",理论上是可以无限套娃的可调整参数有:角度,反向,轴向,速度运行时点击Test进行测试自己写的代码比较垃圾,命名与结构比较拉,高手轻点喷,新手有类似的需求可以拿去做参考上代码usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;u
需求:要创建虚拟机,就需要给他提供一个虚拟的磁盘,我们就在/opt目录下创建一个10G大小的raw格式的虚拟磁盘CentOS-7-x86_64.raw命令格式:qemu-imgcreate-f磁盘格式磁盘名称磁盘大小qemu-imgcreate-f磁盘格式-o?1.创建磁盘qemu-imgcreate-fraw/opt/CentOS-7-x86_64.raw10G执行效果#ls/opt/CentOS-7-x86_64.raw2.安装虚拟机使用virt-install命令,基于我们提供的系统镜像和虚拟磁盘来创建一个虚拟机,另外在创建虚拟机之前,提前打开vnc客户端,在创建虚拟机的时候,通过vnc
这是针对我无法破坏的现有公共(public)API,但我确实希望对其进行扩展。目前,该方法采用字符串或符号或任何其他在作为第一个参数传递给send时有意义的内容我想添加发送字符串、符号等列表的功能。我可以只使用is_a吗?数组,但还有其他发送列表的方法,这不是很像ruby。我将调用列表中的map,所以第一个倾向是使用respond_to?:map。但是字符串也会响应:map,所以这行不通。 最佳答案 如何将它们全部视为数组?String的行为与仅包含String的Array相同:deffoo(obj,arg)[*arg].eac
因为我现在正在做一些时间测量,我想知道是否可以在不使用Benchmark类或命令行实用程序time的情况下测量用户时间或系统时间。使用Time类只显示挂钟时间,而不显示系统和用户时间,但是我正在寻找具有相同灵active的解决方案,例如time=TimeUtility.now#somecodeuser,system,real=TimeUtility.now-time原因是我有点不喜欢Benchmark,因为它不能只返回数字(编辑:我错了-它可以。请参阅下面的答案。)。当然,我可以解析输出,但感觉不对。*NIX系统的time实用程序也应该可以解决我的问题,但我想知道是否已经在Ruby中实
在Ruby中,以毫秒为单位获取自纪元(1970)以来的当前系统时间的正确方法是什么?我试过了Time.now.to_i,好像不是我想要的结果。我需要结果显示毫秒并且使用long类型,而不是float或double。 最佳答案 (Time.now.to_f*1000).to_iTime.now.to_f显示包含十进制数字的时间。要获得毫秒数,只需将时间乘以1000。 关于ruby-以毫秒为单位获取当前系统时间,我们在StackOverflow上找到一个类似的问题: