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

Unity动画控制

实现玩家角色根据不同状态播放不同动画,主要涉及动画有静置动画和移动动画,判断条件为不移动时播放静置动画,移动时播放移动动画。

增加动画控制器

设置静置动画、移动动画切换

增加参数isWalking

静置切换为移动

移动切换为静置

编辑代码PlayerMovement.cs

使用控制器改变isWalking参数值进而控制动画切换

using UnityEngine;/// <summary>
/// 控制玩家角色的移动
/// </summary>
public class PlayerMovement : MonoBehaviour
{/// <summary>/// 玩家移动速度/// </summary>public float speed = 6f;/// <summary>/// 玩家刚体组件的引用/// </summary>private Rigidbody rb;/// <summary>/// 玩家动画组件的引用/// </summary>private Animator anim;/// <summary>/// 在对象激活时获取刚体和动画组件/// </summary>private void Awake(){rb = GetComponent<Rigidbody>();anim = GetComponent<Animator>();}/// <summary>/// 在固定时间间隔内处理物理移动、旋转和动画/// </summary>private void FixedUpdate(){// 获取水平和垂直方向的输入float h = Input.GetAxis("Horizontal");float v = Input.GetAxis("Vertical");// 移动角色Move(h, v);// 角色朝向鼠标指向位置Turing();// 播放行走动画Animating(h, v);}/// <summary>/// 根据输入移动角色/// </summary>/// <param name="h">水平输入</param>/// <param name="v">垂直输入</param>void Move(float h, float v){// 计算移动向量Vector3 movement = new Vector3(h, 0.0f, v);// 移动玩家到新的位置rb.MovePosition(transform.position + movement * speed * Time.fixedDeltaTime);}/// <summary>/// 让角色朝向鼠标指向的地面位置/// </summary>void Turing(){// 创建一条从主摄像机到鼠标位置的射线Ray cameraRay = Camera.main.ScreenPointToRay(Input.mousePosition);// 获取地面层的LayerMaskint floorLayer = LayerMask.GetMask("Ground");RaycastHit floorHit;// 射线检测是否击中地面bool isTouchFloor = Physics.Raycast(cameraRay, out floorHit, 100, floorLayer);if (isTouchFloor){// 计算角色到鼠标点击点的方向向量Vector3 v3 = floorHit.point - transform.position;v3.y = 0; // 保持水平方向// 计算朝向该方向的旋转Quaternion q = Quaternion.LookRotation(v3);// 旋转角色rb.MoveRotation(q);}}/// <summary>/// 根据输入设置动画参数,控制行走动画/// </summary>/// <param name="h">水平输入</param>/// <param name="v">垂直输入</param>void Animating(float h, float v){// 判断是否有输入bool isWalking = h != 0 || v != 0;// 设置动画参数anim.SetBool("isWalking", isWalking);}
}
http://www.jsqmd.com/news/81811/

相关文章:

  • Dexed终极指南:免费获取经典DX7合成器的完整解决方案
  • LMDeploy大模型部署终极指南:5大优化技巧与3步实战部署
  • 2025年12月免疫力蛋白粉产品推荐:五大品牌深度对比评测榜 - 十大品牌推荐
  • 图像处理中的矩阵魔法:如何用数学公式让图片瞬间变高级?
  • 详细介绍:无人机电调芯片替换全解析:从 AM32 架构到 STM32F072、GD32E230 与 AT32F421 的实战对比
  • Qwen3-235B-A22B:2025大模型效率革命,220亿激活参数重塑企业AI落地标准
  • 2025年12月免费下载ppt模板网站,基于大纲和所选模板生成ppt,ppt模板软件推荐,高性价比模板平台实测! - 品牌鉴赏师
  • 5分钟掌握Quick Tabs:Chrome标签管理终极指南
  • 2025年12月术后恢复产品推荐榜:临床营养支持产品综合评测与选购指南 - 十大品牌推荐
  • Rubberduck终极入门指南:快速提升VBA开发效率的完整教程
  • 2025年12月免疫力蛋白粉产品推荐:五大品牌综合性能对比评测排行榜单分析 - 十大品牌推荐
  • 2025年12月术后恢复产品推荐:临床营养补充剂综合对比评测榜 - 十大品牌推荐
  • ImageSharp色彩变换:揭秘数字图像调色的数学魔法
  • 3天精通lottie-ios:从零到动画组件开发专家
  • 2025年精选:防水微动开关生产厂家前五强,大型微动开关/小型微动开关/鼠标微动开关/新能源微动开关优质厂家口碑推荐榜 - 品牌推荐师
  • Bananas屏幕共享工具完整安装与配置终极指南
  • 2025年12月术后恢复产品推荐:权威评测排行榜单深度解析及实用选购指南 - 十大品牌推荐
  • 终极指南:如何用SMUDebugTool快速解决Ryzen处理器性能瓶颈?
  • 终极vscode-jest使用指南:让JavaScript测试变得简单高效
  • 终极指南:如何用AntdUI快速构建专业级WinForm聊天界面
  • MultiImageSelector:企业级Android图片选择终极方案
  • IC-Light终极体验:2025年图像光照调整神器完全指南
  • 字节跳动UI-TARS震撼发布:重新定义GUI交互,72B模型性能超越GPT-4o
  • QuickJS多线程实战:3大并发难题与高效解决方案
  • 腾讯开源Hunyuan3D-2mv:多视角3D生成技术将创作效率提升14倍
  • WinBox.js窗口管理器内容管理完全指南:动态挂载与资源加载技术详解
  • 20、黑客必备:工具、资源与实战技巧
  • 如何选择最佳文档工具:CodeHike与Fuma Docs深度对比
  • IEC 61158-6工业控制总线标准完整指南与PDF下载
  • Brian2终极指南:快速掌握开源神经网络模拟器