Beispiel #1
0
        private ObjectCurves GetOrCreateAnimationCurves(string path)
        {
            ObjectCurves objCurves;

            if (!curveCache.TryGetValue(path, out objCurves))
            {
                objCurves        = new ObjectCurves();
                objCurves.Curves = new AnimationCurve[(int)AnimationCurveIndex.ENUM_COUNT];
                for (int i = 0; i < (int)AnimationCurveIndex.ENUM_COUNT; i++)
                {
                    objCurves.Curves[i] = new AnimationCurve();
                }
                curveCache[path] = objCurves;
            }
            return(objCurves);
        }
        private void UpdateTransformCurve(ObjectCurves obj, Transform current, float time, TimelineKey lastTimelineKey, int zIndex = -1)
        {
            float val;
            //IsActive curve
            val = (current.gameObject.activeSelf) ? 1.0f : 0.0f;
            obj.Curves[(int)AnimationCurveIndex.IsActive].AddKey(new Keyframe(time, val, float.PositiveInfinity, float.PositiveInfinity) { tangentMode = 0 });

            //Position curves
            obj.Curves[(int)AnimationCurveIndex.LocalPositionX].AddKey(new Keyframe(time, current.localPosition.x) { tangentMode = 0 }, lastTimelineKey);
            obj.Curves[(int)AnimationCurveIndex.LocalPositionY].AddKey(new Keyframe(time, current.localPosition.y) { tangentMode = 0 }, lastTimelineKey);
            obj.Curves[(int)AnimationCurveIndex.LocalPositionZ].AddKey(new Keyframe(time, current.localPosition.z, float.PositiveInfinity, float.PositiveInfinity)); //Z value always has instant transition

            //Rotation curves
            var quat = Quaternion.Euler(current.localEulerAngles);
            obj.Curves[(int)AnimationCurveIndex.LocalRotationX].AddKey(new Keyframe(time, quat.x) { tangentMode = 0 }, lastTimelineKey);
            obj.Curves[(int)AnimationCurveIndex.LocalRotationY].AddKey(new Keyframe(time, quat.y) { tangentMode = 0 }, lastTimelineKey);
            obj.Curves[(int)AnimationCurveIndex.LocalRotationZ].AddKey(new Keyframe(time, quat.z) { tangentMode = 0 }, lastTimelineKey);
            obj.Curves[(int)AnimationCurveIndex.LocalRotationW].AddKey(new Keyframe(time, quat.w) { tangentMode = 0 }, lastTimelineKey);

            //Scale curves
            obj.Curves[(int)AnimationCurveIndex.LocalScaleX].AddKey(new Keyframe(time, current.localScale.x) { tangentMode = 0 }, lastTimelineKey);
            obj.Curves[(int)AnimationCurveIndex.LocalScaleY].AddKey(new Keyframe(time, current.localScale.y) { tangentMode = 0 }, lastTimelineKey);
            obj.Curves[(int)AnimationCurveIndex.LocalScaleZ].AddKey(new Keyframe(time, current.localScale.z) { tangentMode = 0 }, lastTimelineKey);

            //Sprite Curves
            var spriteTimelineKey = lastTimelineKey as SpriteTimelineKey;
            if (spriteTimelineKey != null)
            {
                obj.IsSpriteKey = true;
                obj.Curves[(int)AnimationCurveIndex.ColorR].AddKey(new Keyframe(time, spriteTimelineKey.Tint.r) { tangentMode = 0 }, lastTimelineKey);
                obj.Curves[(int)AnimationCurveIndex.ColorG].AddKey(new Keyframe(time, spriteTimelineKey.Tint.g) { tangentMode = 0 }, lastTimelineKey);
                obj.Curves[(int)AnimationCurveIndex.ColorB].AddKey(new Keyframe(time, spriteTimelineKey.Tint.b) { tangentMode = 0 }, lastTimelineKey);
                obj.Curves[(int)AnimationCurveIndex.ColorA].AddKey(new Keyframe(time, spriteTimelineKey.Tint.a) { tangentMode = 0 }, lastTimelineKey);
                obj.Curves[(int)AnimationCurveIndex.ZIndex].AddKey(new Keyframe(time, zIndex, float.PositiveInfinity, float.PositiveInfinity));
            }
        }
        private ObjectCurves GetOrCreateAnimationCurves(string path)
        {
            ObjectCurves objCurves;

            if (!curveCache.TryGetValue(path, out objCurves))
            {
                objCurves = new ObjectCurves();
                objCurves.Curves = new AnimationCurve[(int)AnimationCurveIndex.ENUM_COUNT];
                for (int i = 0; i < (int) AnimationCurveIndex.ENUM_COUNT; i++)
                {
                    objCurves.Curves[i] = new AnimationCurve();
                }
                curveCache[path] = objCurves;
            }
            return objCurves;
        }
Beispiel #4
0
        private void UpdateTransformCurve(ObjectCurves obj, Transform current, float time, TimelineKey lastTimelineKey, int zIndex = -1)
        {
            float val;

            //IsActive curve
            val = (current.gameObject.activeSelf) ? 1.0f : 0.0f;
            obj.Curves[(int)AnimationCurveIndex.IsActive].AddKey(new Keyframe(time, val, float.PositiveInfinity, float.PositiveInfinity)
            {
                tangentMode = 0
            });

            //Position curves
            obj.Curves[(int)AnimationCurveIndex.LocalPositionX].AddKey(new Keyframe(time, current.localPosition.x)
            {
                tangentMode = 0
            }, lastTimelineKey);
            obj.Curves[(int)AnimationCurveIndex.LocalPositionY].AddKey(new Keyframe(time, current.localPosition.y)
            {
                tangentMode = 0
            }, lastTimelineKey);
            obj.Curves[(int)AnimationCurveIndex.LocalPositionZ].AddKey(new Keyframe(time, current.localPosition.z, float.PositiveInfinity, float.PositiveInfinity)); //Z value always has instant transition

            //Rotation curves
            var quat = Quaternion.Euler(current.localEulerAngles);

            obj.Curves[(int)AnimationCurveIndex.LocalRotationX].AddKey(new Keyframe(time, quat.x)
            {
                tangentMode = 0
            }, lastTimelineKey);
            obj.Curves[(int)AnimationCurveIndex.LocalRotationY].AddKey(new Keyframe(time, quat.y)
            {
                tangentMode = 0
            }, lastTimelineKey);
            obj.Curves[(int)AnimationCurveIndex.LocalRotationZ].AddKey(new Keyframe(time, quat.z)
            {
                tangentMode = 0
            }, lastTimelineKey);
            obj.Curves[(int)AnimationCurveIndex.LocalRotationW].AddKey(new Keyframe(time, quat.w)
            {
                tangentMode = 0
            }, lastTimelineKey);

            //Scale curves
            obj.Curves[(int)AnimationCurveIndex.LocalScaleX].AddKey(new Keyframe(time, current.localScale.x)
            {
                tangentMode = 0
            }, lastTimelineKey);
            obj.Curves[(int)AnimationCurveIndex.LocalScaleY].AddKey(new Keyframe(time, current.localScale.y)
            {
                tangentMode = 0
            }, lastTimelineKey);
            obj.Curves[(int)AnimationCurveIndex.LocalScaleZ].AddKey(new Keyframe(time, current.localScale.z)
            {
                tangentMode = 0
            }, lastTimelineKey);

            //Sprite Curves
            var spriteTimelineKey = lastTimelineKey as SpriteTimelineKey;

            if (spriteTimelineKey != null)
            {
                obj.IsSpriteKey = true;
                obj.Curves[(int)AnimationCurveIndex.ColorR].AddKey(new Keyframe(time, spriteTimelineKey.Tint.r)
                {
                    tangentMode = 0
                }, lastTimelineKey);
                obj.Curves[(int)AnimationCurveIndex.ColorG].AddKey(new Keyframe(time, spriteTimelineKey.Tint.g)
                {
                    tangentMode = 0
                }, lastTimelineKey);
                obj.Curves[(int)AnimationCurveIndex.ColorB].AddKey(new Keyframe(time, spriteTimelineKey.Tint.b)
                {
                    tangentMode = 0
                }, lastTimelineKey);
                obj.Curves[(int)AnimationCurveIndex.ColorA].AddKey(new Keyframe(time, spriteTimelineKey.Tint.a)
                {
                    tangentMode = 0
                }, lastTimelineKey);
                obj.Curves[(int)AnimationCurveIndex.ZIndex].AddKey(new Keyframe(time, zIndex, float.PositiveInfinity, float.PositiveInfinity));
            }
        }