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 }

     

  • 相关阅读:
    【HttpClient】一个http_post请求例子
    【Jenkins】Jenkins安装修改默认路径和端口的方法
    【框架】selenium运行失败后自动截图(三)
    【例子】log4j.properties例子讲解
    【配置】pom.xml的配置
    【环境】新建Maven工程步骤及报错解决方法
    【实例】去哪儿搜索实例实现
    【Java算法】获得一个随机字符串
    【Java算法】冒泡排序
    Jenkins结合testng注意事项
  • 原文地址:https://www.cnblogs.com/craft0625/p/8638247.html
Copyright © 2011-2022 走看看