zoukankan      html  css  js  c++  java
  • Unity中Animator的2DSprite动画控制与使用

    关于Unity动画系统几个名词概念,需要了解一下:

    Animator:动画控制器,控制Mecanim动画系统的接口。

    Animation:animation组件用于播放动画

    AnimationClip:动画剪辑片段,储存基于关键帧的动画,是用于Animation来播放动画。

    Animation编辑面板:此面板可以进行动画的调整,crtl+6打开animation编辑面板,默认是不能进行任何操作的,要选中做动画的精灵才可以创建动画。

    关于创建2D动画的方法有很多,百度搜一下不再累赘,因为美术资源已经做好了部分切图处理,所以我直接拿已经切好的动画来进行处理:

    分别制作了Idle,open,eat,unhappy,play五个动画剪辑片段。并制作了一个新的Animator用来作为Player的控制。

    之后再Animator建立联系,添加变量

    添加各种条件,为下一步脚本控制做准备。

     为Player添加PlayerObject.cs组件测试

     1 public enum playerAnimState {
     2     /// <summary>
     3     /// 玩耍状态
     4     /// </summary>
     5     play,
     6     /// <summary>
     7     /// 默认状态
     8     /// </summary>
     9     idle,
    10     /// <summary>
    11     /// 张嘴状态
    12     /// </summary>
    13     open,
    14     /// <summary>
    15     /// 吞食状态
    16     /// </summary>
    17     eat,
    18     /// <summary>
    19     /// 失败状态
    20     /// </summary>
    21     unhappy,
    22 }
    23 
    24 public class PlayerObject : MonoBehaviour {
    25     /// <summary>
    26     /// 动画状态
    27     /// </summary>
    28     public playerAnimState playerState;
    29     /// <summary>
    30     /// 动画控制器
    31     /// </summary>
    32     public Animator playerAnimator;
    33 
    34     /// <summary>
    35     /// 改变玩家状态方法
    36     /// </summary>
    37     /// <param name="state">玩家状态</param>
    38     public void ChangeState(playerAnimState state) {
    39         switch (state)
    40         {
    41             case playerAnimState.play:
    42                 playerAnimator.SetBool("IsPlay",true);
    43                 playerAnimator.SetBool("IsIdle",false);
    44                 break;
    45             case playerAnimState.idle:
    46                 playerAnimator.SetBool("IsIdle", true);
    47                 playerAnimator.SetBool("IsOpen", false);
    48                 playerAnimator.SetBool("IsPlay", false);
    49                 break;
    50             case playerAnimState.open:
    51                 playerAnimator.SetBool("IsOpen", true);
    52                 playerAnimator.SetBool("IsIdle", false);
    53                 break;
    54             case playerAnimState.eat:
    55                 playerAnimator.SetBool("IsEat", true);
    56                 playerAnimator.SetBool("IsOpen", false);
    57                 break;
    58             case playerAnimState.unhappy:
    59                 playerAnimator.SetBool("IsUnhappy", true);
    60                 playerAnimator.SetBool("IsOpen", false);
    61                 break;
    62             default:
    63                 break;
    64         }
    65     }
    66 }

     

  • 相关阅读:
    LINQ 笔记
    关于:last-child的一点见解
    webpack 配置IP 和端口号
    echarts.制作中国地图,点击对应的省市链接到该省份的详细介绍
    关于offsetWidth innerWidth的使用
    关于mobiscroll插件的使用
    关于取url或者微信中参数的js
    上传图片
    使用默认图片替代某张图为空时的情况
    在数组中计算和的最大最小值
  • 原文地址:https://www.cnblogs.com/craft0625/p/8638247.html
Copyright © 2011-2022 走看看