news 2026/3/22 8:46:21

Unity动画控制

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Unity动画控制

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

增加动画控制器

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

增加参数isWalking

静置切换为移动

移动切换为静置

编辑代码PlayerMovement.cs

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

usingUnityEngine;/// <summary>/// 控制玩家角色的移动/// </summary>publicclassPlayerMovement:MonoBehaviour{/// <summary>/// 玩家移动速度/// </summary>publicfloatspeed=6f;/// <summary>/// 玩家刚体组件的引用/// </summary>privateRigidbodyrb;/// <summary>/// 玩家动画组件的引用/// </summary>privateAnimatoranim;/// <summary>/// 在对象激活时获取刚体和动画组件/// </summary>privatevoidAwake(){rb=GetComponent<Rigidbody>();anim=GetComponent<Animator>();}/// <summary>/// 在固定时间间隔内处理物理移动、旋转和动画/// </summary>privatevoidFixedUpdate(){// 获取水平和垂直方向的输入floath=Input.GetAxis("Horizontal");floatv=Input.GetAxis("Vertical");// 移动角色Move(h,v);// 角色朝向鼠标指向位置Turing();// 播放行走动画Animating(h,v);}/// <summary>/// 根据输入移动角色/// </summary>/// <param name="h">水平输入</param>/// <param name="v">垂直输入</param>voidMove(floath,floatv){// 计算移动向量Vector3movement=newVector3(h,0.0f,v);// 移动玩家到新的位置rb.MovePosition(transform.position+movement*speed*Time.fixedDeltaTime);}/// <summary>/// 让角色朝向鼠标指向的地面位置/// </summary>voidTuring(){// 创建一条从主摄像机到鼠标位置的射线RaycameraRay=Camera.main.ScreenPointToRay(Input.mousePosition);// 获取地面层的LayerMaskintfloorLayer=LayerMask.GetMask("Ground");RaycastHitfloorHit;// 射线检测是否击中地面boolisTouchFloor=Physics.Raycast(cameraRay,outfloorHit,100,floorLayer);if(isTouchFloor){// 计算角色到鼠标点击点的方向向量Vector3v3=floorHit.point-transform.position;v3.y=0;// 保持水平方向// 计算朝向该方向的旋转Quaternionq=Quaternion.LookRotation(v3);// 旋转角色rb.MoveRotation(q);}}/// <summary>/// 根据输入设置动画参数,控制行走动画/// </summary>/// <param name="h">水平输入</param>/// <param name="v">垂直输入</param>voidAnimating(floath,floatv){// 判断是否有输入boolisWalking=h!=0||v!=0;// 设置动画参数anim.SetBool("isWalking",isWalking);}}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/12 23:18:33

Qwen3-Next-80B-A3B-Instruct终极开发指南:掌握下一代大语言模型API开发

在当今快速发展的AI技术领域&#xff0c;Qwen3-Next-80B-A3B-Instruct作为通义千问系列的最新力作&#xff0c;为开发者提供了前所未有的API开发能力。本文将带您深入探索这个拥有80B总参数和3B激活参数的强大模型&#xff0c;揭示其在实际应用中的巨大潜力。 【免费下载链接】…

作者头像 李华
网站建设 2026/3/16 10:35:25

AI NovelGenerator:如何构建上下文感知的长篇小说生成系统

AI NovelGenerator&#xff1a;如何构建上下文感知的长篇小说生成系统 【免费下载链接】AI_NovelGenerator 使用ai生成多章节的长篇小说&#xff0c;自动衔接上下文、伏笔 项目地址: https://gitcode.com/GitHub_Trending/ai/AI_NovelGenerator 在AI创作领域&#xff0c…

作者头像 李华
网站建设 2026/3/12 10:26:49

Rush Stack Lockfile Explorer:解决包依赖冲突的终极指南

Rush Stack Lockfile Explorer&#xff1a;解决包依赖冲突的终极指南 【免费下载链接】rushstack Monorepo for tools developed by the Rush Stack community 项目地址: https://gitcode.com/gh_mirrors/ru/rushstack 在现代大型 monorepo 项目中&#xff0c;包依赖管理…

作者头像 李华
网站建设 2026/3/12 23:30:35

44、服务器性能优化与Bash脚本编程入门

服务器性能优化与Bash脚本编程入门 1. 服务器性能优化 在服务器性能优化方面,主要关注四个不同的类别:CPU、内存、I/O 和网络。性能优化通常通过调整 /proc 文件系统中的参数来实现。除此之外,还存在多种不同的优化选项,具体取决于你想要达成的优化目标。 cgroups 是…

作者头像 李华
网站建设 2026/3/14 7:58:34

23、深入理解与配置SELinux及KVM虚拟化

深入理解与配置SELinux及KVM虚拟化 一、SELinux相关操作 SELinux 是 Red Hat Enterprise Linux 中重要的安全机制,它涉及到多个方面的配置和管理。 (一)SELinux布尔值操作 当你找到想要设置的布尔值后,可以使用 setsebool -P 命令。使用 setsebool 时,始终使用 -…

作者头像 李华
网站建设 2026/3/12 23:48:03

Zen Browser插件生态全面解析:5款神器让你的浏览器变身效率工具

还在为浏览器功能单一而烦恼吗&#xff1f;想要通过简单安装几个插件就让日常浏览体验焕然一新&#xff1f;Zen Browser的插件生态正是为你量身打造的解决方案&#xff01;作为一款注重隐私和效率的浏览器&#xff0c;Zen Browser通过其独特的"Mods"架构&#xff0c;…

作者头像 李华