unity 动画和物体分离怎么办

像这样,其他动作都好好的,这个动作会退后半步,怎么让它对齐 求帮忙

img

检查你的动画到底是从哪一帧开始的

  • 这有个类似的问题, 你可以参考下: https://ask.csdn.net/questions/7765157
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:unity动画机制 关于动画会延时的问题
  • 除此之外, 这篇博客: unity 动画状态机重复利用中的 普通的动画 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  •  public static void ReplaceMotionInLocalFolder(AnimatorState state)
        {
            string name = state.motion.name;
            if (GetLocalMotionFile(name) != null)
            {
                state.motion = GetLocalMotionFile(name);
            }
        }
    

    这里是更换普通的动画片段,只需要把普通的名字传进去,更换一下就是可以的了。
    同时看下 GetLocalMotionFile 函数

    //animationClips 为动画片段
        static Dictionary<string, string> animationClips = new Dictionary<string, string>();
        public static Motion GetLocalMotionFile(string name)
        {
            if (animationClips.ContainsKey(name.ToLower()))
            {
                AnimationClip mo = AssetDatabase.LoadAssetAtPath(animationClips[name.ToLower()], typeof(AnimationClip)) as AnimationClip;
                if (mo != null)
                {
                    return mo;
                }
                else
                {
                    Debug.LogWarning("no this name clip in this folder" + name);
                }
            }
            else
            {
                Debug.LogWarning("no this name clip in this folder" + name);
            }
            return null;
        }
    
  • 您还可以看一下 张增会老师的Unity轻松制作塔防游戏课程中的 不同敌人分拨创建小节, 巩固相关知识点