Unity3D基础41:状态机实现人物站立、跑步与后退动画切换

您所在的位置:网站首页 切换动画怎么写 Unity3D基础41:状态机实现人物站立、跑步与后退动画切换

Unity3D基础41:状态机实现人物站立、跑步与后退动画切换

2024-07-03 00:44:11| 来源: 网络整理| 查看: 265

 

一、状态机的建立

大部分情况下,当游戏内玩家没有任何操作时,肯定都是站立不动的状态,然而事实上,玩家不可能和木头人一样完全静止,这样显得非常不真实,给玩家带来的体验当然也会很差,所以基本上所有有角色的游戏(纯2D游戏除外),角色的站立状态也都是有专门的动画的。

当然了,站立状态大部分情况下都会是默认状态,所以先设置一个站立的状态,并作为初始状态如下:

点击一下状态,添加动画并改名

Motion:选择播放的动画Speed:动画播放速度(别忘了动画是否循环播放可以点击动画进行设置)Mirror:是否反转动画Cycle Offset:动画偏移Foot IK:足部修正,防止在奇怪地形上走路足部不自然

这样当进入游戏时,角色就会开始自动播放站立动画了

 

二、动画过渡

之后当然还需要添加跑步和倒退的动画,步骤如下:

1:新建两个状态,并设置好对应动画

2:将这三个状态相互连接起来,右键状态点击Make Transition即可创建出连线,可以看出这条线是有向的

下面这张图的含义就是:如果当前玩家在站立状态,当条件满足XXX时,就可以过渡到前进状态

3:设置触发条件,比如说当玩家按下W键进行移动时,动画由站立转为跑步

Float:浮点类型参数,很少用Int:整型参数,例如设置Speed参数,当其为0时切换到站立动画,为2时触发跑步动画,为1时触发走路动画Bool:bool类型参数Trigger:触发器,相当于一瞬间的冲击,收到“冲击”时触发动画转换,很常用(特别是后面讲到的AnyState大法)

4:连线绑定条件

Has Exit Time:当动画播放完毕时,播放下一个动画,除此之外勾选之后动画会强制播放完毕才转到下一个状态,哪怕是下面的条件触发Settings:动画过渡设置,例如玩家从攻击状态转为防御状态,这个过程既可以是平滑缓慢的,也可以是瞬间的,很难讲清楚具体设置方法建议自己调调看,一般来讲中间的蓝色范围越短动画转化的越迅速Conditions:触发状态切换条件(或运算)Solo/Mute:一般用于调试,Solo为当父状态有多条连线满足条件时,优先走这条,Mute是禁用

5:搞定

 

三、代码控制Animator Animator.SetInteger("参数名", 值):修改整型参数Animator.SetFloat("参数名", 值):修改浮点参数Animator.SetBool("参数名", true/false):修改Bool参数Animator.SetTrigger("参数名", true/false):触发器触发

然后就是写脚本苦力活了

using System.Collections; using System.Collections.Generic; using UnityEngine; public class CdsLocation : MonoBehaviour { public enum MyState { none, stand, run, back, attack, dead }; MyState myState; private Transform myTran; private Animator myAnimator; private Vector3 lastUpd, nowUpd; void Start() { nowUpd = lastUpd = myTran.position; } void FixedUpdate() { nowUpd = myTran.position; CheckRun(lastUpd, nowUpd); lastUpd = myTran.position; } void CheckRun(Vector3 l, Vector3 r) { if (l == r || Time.time 0) //将玩家正前方方向向量与玩家两帧之间位置差向量进行点积 { //如果点积为正,说明玩家是向前移动,否则是向后移动 if (myState != MyState.run) { myAnimator.SetInteger("Speed", 4); myState = MyState.run; } } else { if (myState != MyState.back) { myAnimator.SetInteger("Speed", 2); myState = MyState.back; } } } }

 



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭