public void RetrieveNameFromUnderlyingClip()
        {
            IClip clip        = new MockClip("some clip", 0, 10, 5);
            var   virtualClip = new VirtualClip(0, 10, 5, clip);

            Assert.AreEqual(clip.Name, virtualClip.Name);
        }
        public void CompareTo()
        {
            var clip = new VirtualClip(0, 10, 5, new MockClip(0, 10, 5));

            Assert.AreEqual(-1, clip.CompareTo((object)null));
            Assert.AreEqual(-1, clip.CompareTo((IClip)null));
        }
Beispiel #3
0
    private AnimationClip GenerateClip(VirtualClip vc)
    {
        AnimationClip ac = new AnimationClip();

        ac.name = vc.name;
        if (vc.startFrame > vc.endFrame)
        {
            int tempint = vc.startFrame;
            vc.startFrame = vc.endFrame;
            vc.endFrame   = tempint;
        }
        int                l             = Mathf.Abs(vc.endFrame - vc.startFrame) + 1;
        float              timeIncrement = 1f / l;
        AnimationEvent     evt;
        EditorCurveBinding curveBinding = new EditorCurveBinding();

        curveBinding.type         = typeof(SpriteRenderer);
        curveBinding.propertyName = "m_Sprite";
        ObjectReferenceKeyframe[] keyFrames = new ObjectReferenceKeyframe[l];
        AnimationEvent[]          events    = new AnimationEvent[l];
        for (int i = 0; i < l; i++)
        {
            //event hooks for animations
            evt              = new AnimationEvent();
            evt.time         = i * timeIncrement;
            evt.functionName = "AnimationEventCallback";
            evt.intParameter = i + vc.startFrame;
            events[i]        = evt;     //ac.AddEvent(evt);

            keyFrames[i]       = new ObjectReferenceKeyframe();
            keyFrames[i].time  = i * timeIncrement;
            keyFrames[i].value = sprites[i + vc.startFrame];
        }
        AnimationUtility.SetObjectReferenceCurve(ac, curveBinding, keyFrames);
        AnimationUtility.SetAnimationEvents(ac, events);

        return(ac);
    }
 public void RetrieveNameFromUnderlyingClip()
 {
     IClip clip = new MockClip("some clip", 0, 10, 5);
     var virtualClip = new VirtualClip(0, 10, 5, clip);
     Assert.AreEqual(clip.Name, virtualClip.Name);
 }
 public void CompareTo()
 {
     var clip = new VirtualClip(0, 10, 5, new MockClip(0, 10, 5));
     Assert.AreEqual(-1, clip.CompareTo((object) null));
     Assert.AreEqual(-1, clip.CompareTo((IClip) null));
 }
Beispiel #6
0
    private void DrawAnimationMenu()
    {
        showAttachments = EditorGUILayout.Foldout(showAttachments, "Animations");
        if (showAttachments)
        {
            GUI.backgroundColor = Color.green;

            if (popup == null)
            {
                popupActive = false;
            }

            if (GUILayout.Button("Create") && !popupActive)
            {
                popupActive         = true;
                popup               = GetWindow <EditorPopupEnterString>();
                popup.m_DemandInput = true;
                popup.Focus();
                popup.OnConfirm += (string name) => {
                    VirtualClip vc;
                    for (int i = 0; i < virtualClips.Count; i++)
                    {
                        vc = virtualClips[i];
                        if (vc.name == name)
                        {
                            Debug.LogError(string.Format("[SAEditor] Animation with name '{0}' already exists.", name));
                            return;
                        }
                    }
                    vc      = new VirtualClip();
                    vc.name = name;
                    virtualClips.Add(vc);
                    Repaint();
                    popupActive = false;
                };
            }
            EditorGUIUtility.labelWidth = 40;
            GUI.backgroundColor         = Color.white;
            for (int i = 0; i < virtualClips.Count; i++)
            {
                EditorGUILayout.LabelField(virtualClips[i].name);
                EditorGUILayout.BeginHorizontal();
                virtualClips[i].startFrame = EditorGUILayout.IntField("Start: ", virtualClips[i].startFrame);
                virtualClips[i].endFrame   = EditorGUILayout.IntField("End: ", virtualClips[i].endFrame);

                if (virtualClips[i].startFrame >= virtualFrames.Count)
                {
                    virtualClips[i].startFrame = virtualFrames.Count;
                }
                if (virtualClips[i].startFrame < 0)
                {
                    virtualClips[i].startFrame = 0;
                }
                if (virtualClips[i].endFrame >= virtualFrames.Count)
                {
                    virtualClips[i].endFrame = virtualFrames.Count;
                }
                if (virtualClips[i].endFrame < 0)
                {
                    virtualClips[i].endFrame = 0;
                }
                GUI.backgroundColor = Color.red;
                if (GUILayout.Button("Delete"))
                {
                    virtualClips.RemoveAt(i);
                    Repaint();
                }
                GUI.backgroundColor = Color.white;
                EditorGUILayout.EndHorizontal();
            }
        }
    }