コード例 #1
0
/*    private bool IsFrameBanned(int frame)
 *  {
 *      foreach (var pair in banQueue)
 *      {
 *          if (frame >= pair[0] && frame <= pair[0] + pair[1])
 *              return true;
 *      }
 *
 *      return false;
 *  }*/

    private bool IsFrameTooClose(int frame, float threshold)
    {
        float      currentAnimTime = animator.GetCurrentAnimatorStateInfo(0).normalizedTime;
        AnimLookup aLookup         = poseData.GetAnimationAtFrame(frame);

        return(aLookup.Value == current && Mathf.Abs((aLookup.Key / 30f) - currentAnimTime) < threshold);
    }
コード例 #2
0
    private void PlayAtUniqueFrame(int frame)
    {
        int        layer  = isDefault ? 0 : animator.GetLayerIndex("Motion Matching");
        AnimLookup toPlay = poseData.GetAnimationAtFrame(frame);

        animator.CrossFadeInFixedTime(toPlay.Value, crossFadeTime, layer, toPlay.Key / 30f);
        //Debug.Log("playing " + toPlay.Value + " at frame " + toPlay.Key);
        current = toPlay.Value;
    }
コード例 #3
0
 private void PlayMMAnim(AnimLookup candidate)
 {
     animator.CrossFadeInFixedTime(candidate.Value, crossFadeTime, 0, candidate.Key / 30f);
     current = candidate.Value;
 }