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

Unity3D仿星露谷物语开发6之角色添加动画

1、目的

给角色添加素材中的动画,最终让角色动起来。

2、准备工作

当前的预设体中的Player对象还不够完善,需要删除掉再优化下。此时应当:Hierarchy中的Player对象切断和预设体的关联,同时删除Prefabs中的Player对象。

首先,点击Player -> Prefab -> Unpack Completely来切断和预设体的关联,变成了一个正常的对象。

5ad7fa972e68483294fa6113da728c31.png

然后,删除Prefabs目录下的Player对象。

3、添加Animator动画组件

在Assets -> Player -> Animation Controller下有6个动画控件,刚好对应Hierarchy中Player的6个部位(equippedItem除外)。

195b991426234a30a328afb94360da06.png

同时选中7个部位,然后按Ctrl键去掉equippedItem部位,再添加Animator脚本,相当于给6个部位都添加了Animator脚本。

02e06232df3e4b46bf6602a9883eac50.png

然后依次将Assets的动画赋给对应部位的Animator的Controller,比如body的动画如下操作:

37b110a2c7da48c088149b55ff407d9e.png

点击body动画,我们可以看到Animator详情如下:

c65ddded950f4da6bfb486e7ea1af86f.png

点击Player -> body(该对象下有Animator组件)

ee78185a0b1c4543852a6b765fd59faa.png

然后在点击【Window -> Animation -> Animation】,可以看到动画界面:

269108f4077442f58377cf0a54c831da.png

选择一个动画点击播放,可以在Game界面中看到效果。

4、处理Event事件

运行程序,设置Parameters中的xInput为1,勾选isWalking。

8997c53b5e954383916ac76840f20816.png

发现Game中角色body在walk,但是报错了,报错信息如下:

'body' AnimationEvent 'AnimationEventPlayFootstepSound' on animation 'BodyNoneNoneWalkRight' has no receiver! Are you missing a component?
这句话的意思是:AnimationEventPlayFootstepSound事件没有对应的处理程序。

在body的各个动画中有AnimationEventPlayFootstepSound事件

68c94c4a90fd46ec8887c34d2d90199d.png

但是我们没有在任何脚本中指定此事件。

做法:

在Assets -> Scripts下新建Animation目录,同时创建MovementAnimationParameterControl的脚本。

public class MovementAnimationParameterControl : MonoBehaviour
{
    // Start is called before the first frame update
    private void AnimationEventPlayFootstepSound()
    {

    }
}

然后将该脚本逐一添加到Player下的6个子对象上。

最后再次执行程序,报错消失了。

这说明:如果在Animation中创建了Event事件,则会触发该对象某个组件下同名的方法。

 

 


http://www.kler.cn/a/447081.html

相关文章:

  • windows下搭建本地sofa-registry
  • uniapp新建项目hello,什么都没干提示应用未关联服务空间,请在uniCloud目录右键关联服务空间
  • 3D工具显微镜的测量范围
  • 半连接转内连接规则的原理与代码解析 |OceanBase查询优化
  • 机动车油耗计算API集成指南
  • 点击展示大图预览
  • 麒麟操作系统服务架构保姆级教程(二)ssh远程连接
  • Linux之多线程互斥
  • 前端实现获取后端返回的文件流并下载
  • 【原生js案例】移动端如何实现页面的入场和出场动画
  • 了解cuda的统一内存
  • 复习打卡大数据篇——Apache Hadoop
  • leetcode之hot100---240搜索二维矩阵II(C++)
  • 周末总结(2024/12/21)
  • Apache solr XML 实体注入漏洞
  • .NET 8 获取CPU序列号和主板序列号异常问题
  • 2110 加分二叉树
  • 重拾设计模式--组合模式
  • Redis存在安全漏洞
  • MyBatis 的优缺点
  • 【中标麒麟服务器操作系统实例分享】java应用DNS解析异常分析及处理
  • 前端yarn工具打包时网络连接问题排查与解决
  • Hadoop实现WordCount详解
  • HTTP请求的奇幻旅程:从发起至响应的全方位探索
  • 算法 计算大的长方形容器中,存放一排小长形容器,计算出小长形容器中最后一个元素的x坐标的位置的实现方法
  • linux-----进程execl簇函数