当前位置: 首页 > news >正文

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混合树,四方向移动


http://www.mrgr.cn/news/9271.html

相关文章:

  • 墨者学院Oracle靶场通关
  • 【STM32实物】基于STM32设计的计算器——程序源码设计文档实物图设计文档等(文末完整资料下载)
  • Linux系统编程:TCP,UDP协议特点,粘包,wireshark抓包
  • 如何简单判断某个port是否被防火墙block
  • python——requests
  • 【服务器】VirtualBox+Centos+Docker的安装
  • 2-71 基于matlab的小波分析在心电信号去噪中的应用
  • 爬虫的bs4、xpath、requests、selenium、scrapy的基本用法
  • 如何使用ssm实现基于Java技术的会员制度管理的商品营销系统的设计与实现+vue
  • java接口 controller层接收list集合传参,postman 调用接口时required parameter XXX is not present
  • 苍穹外卖项目DAY01
  • 数学建模学习(125):使用Python实现灰色关联分析从理论到实战
  • Python习题 146:用lambda和filter函数返回偶数
  • 数据采集-->kafka-->hdfs
  • 自动化与高效设计:推理技术在FPGA中的应用
  • Obsidian Publish的开源替代品Markopolis
  • [数据集][目标检测]管道漏水泄漏破损检测数据集VOC+YOLO格式2614张4类
  • 《深度学习》 OpenCV 计算机视觉入门 (中篇)
  • 解决WIndows10下更新蓝牙驱动屡屡失败问题
  • C/C++语言基础--结构体知识详解(包括:结构体数组、字节对齐、位段等内容)