【Unity学习笔记】新输入系统的基本功能

这篇具有很好参考价值的文章主要介绍了【Unity学习笔记】新输入系统的基本功能。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在新版本的Unity中实装了一套新的输入系统,这个输入系统十分方便,可以“记录”在不同场景下的各个输入按键,并且兼顾键盘、手柄等等不同的输入系统。

添加新输入系统:

1.Edit->Project Settings

【Unity学习笔记】新输入系统的基本功能,学习,笔记

选择Player,将Active Input Handing修改为Input System Package(New)。

保存,等待Unity重启。

2.Windows->Package Manger,添加Input System

【Unity学习笔记】新输入系统的基本功能,学习,笔记

在添加了新输入系统后,在工程里右键找到最下方的Input Action,即可添加一个新输入系统。

【Unity学习笔记】新输入系统的基本功能,学习,笔记

1. Action Maps相当于一个对不同场景输入的分类。

例如,在Action Maps中新建一个Gameplay,专门用于操控人物移动和其他人物相关的输入。

同时再添加一个UI,专门用于UI的各项输入。

这样就可以将不同的输入分门别类,相当方便。

2.Actions就是实现的效果所绑定的按键。

例如,我想用WASD实现移动的功能。首先需要将在Actions中添加一个Actions list:Move(点击最上面的加号)。将右边的Action Properties修改:Action Type  = Value;Control Type = Vector2。之后右键Move,自动添加上下移动键。(不清楚原理)

【Unity学习笔记】新输入系统的基本功能,学习,笔记

实际使用的时候不需要我们自己一个个绑定,可以直接用Unity自带的按键绑定。

首先我们需要在人物中添加一个组件:Player Input。

【Unity学习笔记】新输入系统的基本功能,学习,笔记

 选择Create Actions。

【Unity学习笔记】新输入系统的基本功能,学习,笔记

Unity已经自动为我们添加好了各项基本的按键绑定。

接着移除该组件。

【Unity学习笔记】新输入系统的基本功能,学习,笔记

点击Apply,Unity就会自动为我们生成这个Input类。

接着就可以为人物添加脚本,通过新输入系统来控制人物的移动。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.InputSystem;
public class PlayerControl : MonoBehaviour
{
    public PlayerInputControl inputControl;

    public Vector2 inputDirection;
    private void Awake() 
    {
        inputControl = new PlayerInputControl();  //实例化一个PlayerInputConrol类
    }

    private void OnEnable()  //组件开启,输入系统随之开启
    {
        inputControl.Enable();
    }

    private void OnDisable()  //组件关闭,输入系统随之关闭
    {
        inputControl.Disable();
    }

    private void Update() 
    {
        inputDirection = inputControl.Gameplay.Move.ReadValue<Vector2>();
        //读取键盘输入的Vector2值
    }

}

通过这样的代码就可以读取方向向量了。

在代码中,可以通过+=符号为各个Action添加函数方法。例如我想添加一个跳跃的函数方法。我先在Input System中绑定一下跳跃键space。

【Unity学习笔记】新输入系统的基本功能,学习,笔记

 之后在代码的Awake中添加函数方法。

private void Awake()
{
    inputControl = new PlayerInputControl();
    inputControl.Gameplay.Jump.started += jump;
}
private void jump(InputAction.CallbackContext obj)
{
    throw new NotImplementedException();
}

started指Jump绑定的按键按下触发相应的函数方法。

这句代码的意思是,当系统检查到space按下后,执行jump函数方法。

也可以使用匿名函数的形式。

private void Awake()
{
    inputControl = new PlayerInputControl();
    inputControl.Gameplay.Jump.started += jump =>
    {
        //函数方法
    };
}

此时jump可以修改为任意名称,且可以重复。

=>即为匿名函数符号。大体意义为将右边的值返回给左边(如果有值且左边是个变量)。

例如int x =>x*x;就是将x的平方赋值给x。

尾声:

通过一些特定的代码可以增强代码的刻度性。

1.[Header("名称")]

这段代码中的名称会出现在Unity编辑器中,方便我们阅读.

例如

[Header("基本参数")]

public Vector2 inputDirection;

返回Unity编辑器

【Unity学习笔记】新输入系统的基本功能,学习,笔记

 基本参数出现在代码组件中了。

2.region区域

使用这个代码可以自主定义可折叠的代码段,使得代码更加简洁。

【Unity学习笔记】新输入系统的基本功能,学习,笔记

 【Unity学习笔记】新输入系统的基本功能,学习,笔记

 文章来源地址https://www.toymoban.com/news/detail-716334.html

到了这里,关于【Unity学习笔记】新输入系统的基本功能的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Unity | HDRP高清渲染管线学习笔记:基本操作

    目录 一、场景整体环境光强度 1.HDRI Sky 2.Shadows 二、屏幕后处理效果(Post Processing) 1.Exposure 2.Post-processing/Tonemapping 三、抗锯齿 四、添加光源 1.Light Explorer窗口 2.光照探针组 3.反射探针 4.烘焙光照贴图 本文主要是了解HDRP基本操作: 如何为一个已经摆放好模型的场景添加环境光等

    2024年02月16日
    浏览(63)
  • 【Unity 学习笔记】 Sprite的部分属性和功能

    在unity2D中,每导入一个图片资源,unity都会为其添加一些属性,这些属性可以在对应图片资源的Inspector中查看。在unity中,图片资源被称作sprite,翻译成中文就是“精灵”。精灵sprite指的是一张集成场景中的一部分图像,个人形象地理解就是unity中的图片资源都是游戏场景(或

    2024年02月07日
    浏览(36)
  • 【N32L40X】学习笔记08-定时器的基本定时功能-超时功能

    该函数库的目的就是在统一的地方配置,将配置的不同项放置在一个结构体内部 使用一个枚举来定义一个的别名 该库就是基本定时产生超时中断 bsp_time_base.h

    2024年02月16日
    浏览(37)
  • 【学习笔记】Unity基础(七)【uGUI基础、利用render Texture实现小地图功能】

    转载请注明出处:🔗https://blog.csdn.net/weixin_44013533/article/details/130808689 本篇基本是大纲性质,参考价值不大,只有最后一小节“利用render Texture实现小地图功能”花了点时间,可以看看,不过也用到了上面的canvas、UI image等知识、以及input等脚本功能,也算一个小练手吧 倒是

    2024年02月08日
    浏览(47)
  • STM32 F103C8T6学习笔记2:GPIO的认识—GPIO的基本输入输出—点亮一个LED

    今日继续学习使用  STM32 F103C8T6开发板 点亮一个LED灯,文章提供源码,测试工程,实验效果图,希望我的归纳总结会对大家有帮助~ 目录 GPIO的认识与分类 : 引脚安排整理: 定时器的引脚例举: 串口的引脚例举:  CAN串口通信: SPI通信: IIC通信:  其余引脚: 烧录引脚:

    2024年02月11日
    浏览(48)
  • 【Azure 架构师学习笔记】- Azure Databricks (7) --Unity Catalog(UC) 基本概念和组件

    本文属于【Azure 架构师学习笔记】系列。 本文属于【Azure Databricks】系列。 接上文 【Azure 架构师学习笔记】- Azure Databricks (6) - 配置Unity Catalog 在以前的Databricks中,主要由Workspace和集群、SQL Warehouse组成, 这两年Databricks公司推出了Unity Catalog(UC)之后,整个Databricks架构都有了

    2024年02月20日
    浏览(50)
  • 王道操作系统学习笔记(1)——操作系统基本概念

    本文介绍了操作系统的基本概念,文章中的内容来自B站王道考研操作系统课程,想要完整学习的可以到B站官方看完整版。 操作系统:系统资源的管理者(处理机管理、存储器管理、文件管理、设备管理) 交互式命令(在终端中输命令)和批处理命令(Shell脚本) 并发: 宏

    2024年02月10日
    浏览(48)
  • Linux 学习笔记(1)——系统基本配置与开关机命令

    目录 0、起步 0-1)命令使用指引 0-2)查看历史的命令记录 0-3)清空窗口内容 0-4)获取本机的内网 IP 地址 0-5)获取本机的公网ip地址 0-6)在window的命令行窗口中远程连接linux 0-7)修改系统的时间 0-8)给虚拟机配置静态 ip 地址 1、使用scp上传和下载文件 1-1)将本地文件上传到

    2024年02月10日
    浏览(36)
  • Unity | HDRP高清渲染管线学习笔记:HDRP光照系统(二)

    目录 一、光源类型和模式 1. Light组件 1.1 General(通用设置) 1.1.1 LightLayer(光照层) 1.2 Emission(发光设置) 1.3 Shadows(阴影) 二、Light Layer(光源分层) 三、光照探针  1. Light Probe Group组件 2. 使用光照探针的基本步骤 3. Mesh Renderer组件LightProbes下Blend Probes VS Use Proxy Volume 3

    2024年02月07日
    浏览(40)
  • Unity | HDRP高清渲染管线学习笔记:HDRP光照系统(一)

    目录 一、Light组件 1. Angular Diameter 2. Light Appearance 3. Intensity(光照强度) 4. Indirect Multiplier(间接光倍数) 5. Volumetrics(体积雾) 6. Shadows(阴影) 6.1 Shadow Map(阴影贴图) 6.2 Contact Shadow(接触阴影) 二、Reflection Probe组件(反射探针) 1. Type(反射贴图生成的方式) 三、Lig

    2024年02月14日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包