开发角色动画系统
来源:互联网 发布:大数据培训考试答案 编辑:程序博客网 时间:2024/09/21 06:33
角色动画系统
我们先思考一个问题,在游戏里面那些地方需要用到动画,技能释放的时候播放技能动画,走路的时候播放走路动画,攻击的时候播放攻击动画,待机的时候播放待机动画等,还有呢,动画播放的时候还会触发对应的事件行为,比如说,播放攻击动画的时候攻击敌人,当玩家的手离开操作摇杆时,从跑的动画切换到待机动画等。
经过分析呢,我们写两个类,一个类呢专门处理动画播放,叫CharacterAnimation,能给其他类提供 当前动画的参数,是否播放攻击动画,播放动画,另一个类呢专门处理与动画有关的事件行为,能给其他类提供 取消当前动画,播放默认动画。
那在unity里面有现成的动画组件Animator,不需要我们再去编写,我们只需要负责调用就好。
那我们把这两个类写一下
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
namespace ARPG.Character
{
/// <summary>
/// 角色动画控制类
/// </summary>
public class CharacterAnimation :MonoBehaviour
{
/// <summary>引用动画组件</summary>
public Animator anim;
/// <summary>当前动画参数</summary>
public string currentAnim = "idle";
/// <summary>是否在播放攻击类动画</summary>
public bool isAttack = false;
public void Start()
{
anim =this.GetComponentInChildren<Animator>();
}
/// <summary>
/// 播放动画
/// </summary>
/// <param name="paramName">动画状态机bool型参数</param>
public void PlayAnimation(string paramName)
{
if (paramName.StartsWith("attack"))
isAttack =true;
anim.SetBool(currentAnim,false);
anim.SetBool(paramName,true);
currentAnim = paramName;
}
}
}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
namespace ARPG.Character
{
public class AnimationEventsBehaviour :MonoBehaviour
{
private Animator anim = null;
private CharacterAnimation chAnim;
public void Start()
{
anim =this.GetComponent<Animator>();
chAnim =this.transform.parent.GetComponent<CharacterAnimation>();
}
#region 动画事件响应
/// <summary>
/// 取消当前动画,回到默认动画
/// </summary>
/// <param name="paramName">动画状态机bool型参数</param>
public void CancelAnim(string paramName)
{
if (paramName.StartsWith("attack") && chAnim != null)
chAnim.isAttack =false;
anim.SetBool(paramName,false);
}
#endregion
}
}
随着开发深度,还是会新增功能和重构部分代码的!!!
- 开发角色动画系统
- 角色动画文件的开发
- 开发角色运动系统
- 五分钟了解Mecanim角色动画系统
- 五分钟了解Mecanim角色动画系统
- 五分钟了解Mecanim角色动画系统
- Unity进阶 - 动画系统 - 给人物角色制作动画
- Unity进阶 - 动画系统 - 给人物角色制作动画
- Unity进阶 - 动画系统 - 给人物角色制作动画
- 角色动画
- [教程] 五分钟了解Mecanim角色动画系统
- Mecanim动画系统 - 使用Blend Trees控制角色动作
- Android帧动画游戏开发—地图与角色
- 安卓游戏开发之播放角色动画
- 系统角色
- Mecanim动画系统 - 在角色上使用Mask 叠加动画层
- 3D角色动画
- 角色动画视频教程社区
- 光照模型
- 线程池的原理及实现
- 系统编程的所有API
- 数字化经济时代 成功就靠这些技能
- 音视频编解码学习详解
- 开发角色动画系统
- Android api 镜像站
- 圣杯布局
- 蓝桥杯 算法训练 5-1最小公倍数 JAVA
- 一个悲惨的程序的故事:死循环。循环的注意(1)
- 学习NodeJS之数据库之Mysql安装篇
- js 面向对象开发组件参考3
- 算24
- fl2440——修改UART2作为正常串口