Ruby‘sAdventure学习笔记——敌人设计&精灵动画

1.敌人设计

① 效果要求:敌人自动左右/上下循环移动;敌人碰到角色产生伤害;为敌人添加动画

②分析

1)有碰撞事件,只碰撞一次,enemy要有collider

2)敌人能在自动移动需要有rigidbody

3)要动画,添加animator

③知识点:

1)这里的敌人是自动移动的,不像主角需要等待输入。所以直接对其rigidbody的position进行操作就行。这里采用的是一个计时器+方向开关的方法。int方向开关direction最初为1,设定float计时器timerole。计时器数值随时间减小放在update里,当计时器走完一遍时,direction取反,通过position.x/.y +=speed*Time.deltatime*direction实现来回巡逻的效果

2.精灵动画

 Unity提供了很方便的工具,在需要动画的对象上挂上Animator组件,上面有凹槽放入自己创建的动画控制器(也可以直接在对象上创建animation clip,unity自动生成一个控制器),控制器是一个可视化的状态机,只需要设定各个state之间的转换条件和state上的animation clip就可以实现简单动画

知识点:

1)创建过程

挂上组件

Window->Animation->animation(快捷键ctrl+6),通过拖拽多个连续的分帧图片,调整帧率,就能生成简单动画片段(animation clip)

2)可视化创建状态机

 动画控制器就是个状态机,右键创建新的state,不同状态之间可以建立联系(trasition),通过设定的变量阈值实现不同state之间的切换

 这些阈值变量可以在脚本中,通过animator对象访问到,实现不同效果

 3)state内也是一个状态机

 

 右边可以新增槽位用来插入不同的animation clip,这些clip之间也可以同通过左边设定的阈值变量实现切换。途中是simpleDirection模式,适合只需要前、后、左、右的情况。阈值也是通过

访问,进行不同的操作

8/8 遗留问题:通过getAxis来作为阈值计算的参量时,碰到问题:没有输入时,应该切换静态的动画,将参量置了0,但是阈值是0.01,此时默认设置为了面向右边的动画,导致不动的时候调用不到面向其他方向的静态动画。但是不置0,就算没有输入,参量一直大于阈值,导致播放不了静态动画。

 这里的LookDirction是定义在update外的,导致如果赋值LookDirection,它就一直有值,就一直大于阈值,切不回静态动画

小白做笔记用,请参考使用,欢迎批评指正,谢谢

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值