news 2026/4/3 6:21:38

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/21 14:41:54

Maputnik终极指南:5分钟掌握可视化地图编辑技巧

Maputnik终极指南&#xff1a;5分钟掌握可视化地图编辑技巧 【免费下载链接】maputnik An open source visual editor for the MapLibre Style Specification 项目地址: https://gitcode.com/gh_mirrors/ma/maputnik Maputnik是一个专为MapLibre样式规范设计的开源可视化…

作者头像 李华
网站建设 2026/4/2 9:33:23

SonarQube界面深度定制:5步打造企业级代码质量管理平台

SonarQube界面深度定制&#xff1a;5步打造企业级代码质量管理平台 【免费下载链接】sonarqube Continuous Inspection 项目地址: https://gitcode.com/gh_mirrors/so/sonarqube SonarQube界面优化对于技术团队来说至关重要&#xff0c;通过自定义主题和插件开发&#x…

作者头像 李华
网站建设 2026/3/25 1:24:07

42、Linux 系统性能优化全攻略

Linux 系统性能优化全攻略 1. 性能优化的复杂性 在进行性能测试时,有时会遇到一些难以解释的现象。比如,在两次测试之间没有改变任何参数,但第二次测试却明显更快。查看 free -m 命令的输出,或许能找到原因。 root@hnl:~# free -mtotal used free sh…

作者头像 李华
网站建设 2026/3/31 4:41:00

49、Linux系统内核管理与故障排查全解析

Linux系统内核管理与故障排查全解析 1. 内核模块管理 在Linux系统中,内核模块管理是一项重要的任务。要查看哪些内核模块已被加载,可以使用 lsmod 命令。该命令会生成当前已加载的所有模块的列表,并且还会显示其他内核模块是否依赖于它。以下是 lsmod 命令输出的示例:…

作者头像 李华
网站建设 2026/3/29 0:01:00

GitHub Desktop Linux版:5个简单步骤掌握高效代码管理

GitHub Desktop Linux版&#xff1a;5个简单步骤掌握高效代码管理 【免费下载链接】desktop Fork of GitHub Desktop to support various Linux distributions 项目地址: https://gitcode.com/gh_mirrors/des/desktop GitHub Desktop Linux版是GitHub官方推出的跨平台桌…

作者头像 李华
网站建设 2026/3/30 15:48:55

终极指南:5分钟快速上手R语言模型总结神器modelsummary

终极指南&#xff1a;5分钟快速上手R语言模型总结神器modelsummary 【免费下载链接】modelsummary Beautiful and customizable model summaries in R. 项目地址: https://gitcode.com/gh_mirrors/mo/modelsummary 在数据分析和统计建模领域&#xff0c;modelsummary包为…

作者头像 李华