zoukankan      html  css  js  c++  java
  • unity动画相关

    当前动画控制器是在播放哪个动画:

    Animator alice;
    AnimatorStateInfo currentBaseStage;

    int idle = Animator.StringToHash("Base Layer.Idle");
    int hit = Animator.StringToHash("Base Layer.Jump");

    currentBaseStage=alice.GetCurrentAnimatorStateInfo(0);

    if(currentBaseStage.nameHash == hit){//hit动画中

    }

    //播放指定的动画

    alice.SetTrigger("Jump");

    //如果一个动画还没播完又要重新开始播,可以考虑的做法如下:

    if (currentBaseStage.nameHash == idle && !alice.IsInTransition(0))
    {
    alice.SetBool("Jump", false);
    isHit = false;

    }
    //hit
    if (!isHit &&Input.anyKeyDow&& !alice.IsInTransition(0) && currentBaseStage.nameHash == idle)
    {
    alice.SetBool("Jump", true);
    alice.StartRecording(0);//记录重播开始位置参数是帧数
    isHit = true;
    //rbody.AddForce (Vector3.up * 50);
    }
    if (isHit && Input.anyKeyDow && currentBaseStage.nameHash == hit)
    {
    //二次受击
    isPlayBack = true;
    alice.StopRecording();//停止记录重播
    alice.StartPlayback();//开始重播
    alice.playbackTime = 0f;//从0s开始重播
    Debug.Log("hit");
    }

    //设置现在重播时播放的时间
    if (isPlayBack)
    {
    float newPlaybackTime = alice.playbackTime + Time.deltaTime;
    if (newPlaybackTime > alice.recorderStopTime) {
    newPlaybackTime = 0;
    alice.StopPlayback();
    isPlayBack = false;
    }
    alice.playbackTime = newPlaybackTime;
    }

  • 相关阅读:
    python print 在命令行打印带颜色
    Cython 一篇通
    gcc 内置函数
    gcc 内置函数
    #define xxx do{...} while(0) 宏定义
    防止cpu 一直被占用 sleep(0) 和 yield
    golang之archive/tar包的使用
    go+mysql实现页面的增删改查练习
    设计模式之访问者模式
    设计模式之模板模式(PHP实现)
  • 原文地址:https://www.cnblogs.com/sevenmoons/p/4182036.html
Copyright © 2011-2022 走看看