Unity滚滚车轮计划 之 新输入系统控制2D角色移动动画(俯视)

本文主要是介绍Unity滚滚车轮计划 之 新输入系统控制2D角色移动动画(俯视),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

        本系列的初衷是因为很多时候基础代码不得不重复又重复,所以为了更快更好地学习到新的知识,我就把已经掌握的知识造成自己的轮子吧,等用到的时候直接复制就行了

叠甲:虽然不能保证全是原创,有些写法可能烂大街,但肯定是我自己学会了之后可能稍加改动,再敲上去的,知识不就是这么传递下去的吗,嘻嘻

 实现效果:

代码一览 

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.InputSystem;public class PlayerMove : MonoBehaviour {#region 基础变量部分// 组件private HereReplace inputs; // 新输入系统的对象private Rigidbody2D rb;private Animator playerAnimator;//人物控制[Tooltip("移动速度")][SerializeField] private float playerSpeed;[Tooltip("二元变量")]private Vector2 wasd;#endregion#region 初始化和退出脚本部分private void Awake() {// 初始化变量playerSpeed = 200f;inputs = new HereReplace();rb = GetComponent<Rigidbody2D>();playerAnimator = GetComponent<Animator>();// 输入启用和订阅EnableInputs();}private void OnDisable() {// 输入退出和取消订阅DisableInputs();}//输入系统启用函数private void EnableInputs() {inputs.Enable();inputs.Player.Move.started += OnMove;inputs.Player.Move.performed += OnMove;inputs.Player.Move.canceled += OnMove;}//输入系统退出函数private void DisableInputs() {inputs.Player.Move.started -= OnMove;inputs.Player.Move.performed -= OnMove;inputs.Player.Move.canceled -= OnMove;inputs.Disable();}#endregion//逻辑部分private void Update() {#region 控制动画playerAnimator.SetFloat("X", rb.velocity.x);playerAnimator.SetFloat("Y", rb.velocity.y);playerAnimator.SetFloat("idle2walk", wasd.magnitude);#endregion}//物理逻辑部分private void FixedUpdate() {rb.velocity = wasd.normalized * playerSpeed * Time.deltaTime;}// 二元变量赋值private void OnMove(InputAction.CallbackContext context) {wasd = context.ReadValue<Vector2>();}
}

提示

HereReplace是你的InputAction生成的C#脚本名,也就是类名可自行修改

动画一览

切换变量

2D混合树,四方向移动

这篇关于Unity滚滚车轮计划 之 新输入系统控制2D角色移动动画(俯视)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1095143

相关文章

Python使用pynput模拟实现键盘自动输入工具

《Python使用pynput模拟实现键盘自动输入工具》在日常办公和软件开发中,我们经常需要处理大量重复的文本输入工作,所以本文就来和大家介绍一款使用Python的PyQt5库结合pynput键盘控制... 目录概述:当自动化遇上可视化功能全景图核心功能矩阵技术栈深度效果展示使用教程四步操作指南核心代码解析

Kotlin Compose Button 实现长按监听并实现动画效果(完整代码)

《KotlinComposeButton实现长按监听并实现动画效果(完整代码)》想要实现长按按钮开始录音,松开发送的功能,因此为了实现这些功能就需要自己写一个Button来解决问题,下面小编给大... 目录Button 实现原理1. Surface 的作用(关键)2. InteractionSource3.

使用WPF实现窗口抖动动画效果

《使用WPF实现窗口抖动动画效果》在用户界面设计中,适当的动画反馈可以提升用户体验,尤其是在错误提示、操作失败等场景下,窗口抖动作为一种常见且直观的视觉反馈方式,常用于提醒用户注意当前状态,本文将详细... 目录前言实现思路概述核心代码实现1、 获取目标窗口2、初始化基础位置值3、创建抖动动画4、动画完成后

使用animation.css库快速实现CSS3旋转动画效果

《使用animation.css库快速实现CSS3旋转动画效果》随着Web技术的不断发展,动画效果已经成为了网页设计中不可或缺的一部分,本文将深入探讨animation.css的工作原理,如何使用以及... 目录1. css3动画技术简介2. animation.css库介绍2.1 animation.cs

双系统电脑中把Ubuntu装进外接移动固态硬盘的全过程

《双系统电脑中把Ubuntu装进外接移动固态硬盘的全过程》:本文主要介绍如何在Windows11系统中使用VMware17创建虚拟机,并在虚拟机中安装Ubuntu22.04桌面版或Ubunt... 目录一、首先win11中安装vmware17二、磁盘分区三、保存四、使用虚拟机进行系统安装五、遇见的错误和解决

使用FileChannel实现文件的复制和移动方式

《使用FileChannel实现文件的复制和移动方式》:本文主要介绍使用FileChannel实现文件的复制和移动方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录使用 FileChannel 实现文件复制代码解释使用 FileChannel 实现文件移动代码解释

Linux之计划任务和调度命令at/cron详解

《Linux之计划任务和调度命令at/cron详解》:本文主要介绍Linux之计划任务和调度命令at/cron的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux计划任务和调度命令at/cron一、计划任务二、命令{at}介绍三、命令语法及功能 :at

使用Python实现一键隐藏屏幕并锁定输入

《使用Python实现一键隐藏屏幕并锁定输入》本文主要介绍了使用Python编写一个一键隐藏屏幕并锁定输入的黑科技程序,能够在指定热键触发后立即遮挡屏幕,并禁止一切键盘鼠标输入,这样就再也不用担心自己... 目录1. 概述2. 功能亮点3.代码实现4.使用方法5. 展示效果6. 代码优化与拓展7. 总结1.

Linux中的计划任务(crontab)使用方式

《Linux中的计划任务(crontab)使用方式》:本文主要介绍Linux中的计划任务(crontab)使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、前言1、linux的起源与发展2、什么是计划任务(crontab)二、crontab基础1、cro

Qt把文件夹从A移动到B的实现示例

《Qt把文件夹从A移动到B的实现示例》本文主要介绍了Qt把文件夹从A移动到B的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学... 目录如何移动一个文件? 如何移动文件夹(包含里面的全部内容):如何删除文件夹:QT 文件复制,移动(