public void Cleanup()
 {
     ab.Unload(true);
     originClip = null;
     ab         = null;
     clip       = null;
 }
        public ResourceObject Parse(ByteBuffer bb)
        {
            UnityEngine.AnimationClip clip = new UnityEngine.AnimationClip();

            Schema.AnimationClip _clip = Schema.AnimationClip.GetRootAsAnimationClip(bb);
            clip.frameRate = _clip.FrameRate;
            clip.wrapMode  = (UnityEngine.WrapMode)_clip.WrapMode;
            clip.legacy    = true;

            for (int i = 0; i < _clip.BindingsLength; i++)
            {
                Schema.CurveBinding        bind   = _clip.GetBindings(i);
                Schema.AnimationCurve      _curve = bind.Curve;
                UnityEngine.AnimationCurve curve  = new UnityEngine.AnimationCurve();

                for (int j = 0; j < _curve.KeyFramesLength; j++)
                {
                    Schema.KeyFrame      _kf = _curve.GetKeyFrames(j);
                    UnityEngine.Keyframe kf  = new UnityEngine.Keyframe(_kf.Time, _kf.Value, _kf.InTangent, _kf.OutTangent);
                    kf.tangentMode = _kf.TangentMode;
                    curve.AddKey(kf);
                }
                curve.preWrapMode  = (UnityEngine.WrapMode)_curve.PreWrapMode;
                curve.postWrapMode = (UnityEngine.WrapMode)_curve.PostWrapMode;

                var  assembly = Assembly.Load("UnityEngine");
                Type type     = assembly.GetType(bind.Type);
                clip.SetCurve(bind.Path, type, bind.PropertyName, curve);
            }
            return(new ResourceObjectSingle(clip));
        }
Exemple #3
0
        public void Init()
        {
            Context    context = Context.Unknown;
            ByteBuffer bb      = TestData.LoadResource("dm_knockdown.doub", out context);

            Assert.IsNotNull(bb);
            Assert.AreNotEqual(context, Context.Unknown);

            AnimationClipUnserializer unserializer = UnserializerFactory.Instance.Create(context) as AnimationClipUnserializer;

            result = unserializer.Parse(bb) as ResourceObjectSingle;
            clip   = Schema.AnimationClip.GetRootAsAnimationClip(bb);
        }
        public void Init()
        {
            ab = TestData.LoadBundle("animationcliptest.bundle");
            GameObject go = TestData.LoadFirstAsset <GameObject>(ab);

            Assert.IsNotNull(go);

            Animation animation = go.GetComponentInChildren <Animation>();

            originClip = animation.clip;
            Assert.IsNotNull(originClip);

            ByteBuffer result = AnimationClipSaver.Save(originClip);

            clip = Schema.AnimationClip.GetRootAsAnimationClip(result);
        }
Exemple #5
0
 public void Cleanup()
 {
     result.Dispose();
     result = null;
     clip   = null;
 }