Ejemplo n.º 1
0
        void AddTrackMenu(object param)
        {
            KeyValuePair <Type, FEventAttribute> kvp = (KeyValuePair <Type, FEventAttribute>)param;

            Undo.RecordObjects(new UnityEngine.Object[] { Container, this }, "add Track");

            FTrack track = (FTrack)typeof(FContainer).GetMethod("Add", new Type[] { typeof(FrameRange) }).MakeGenericMethod(kvp.Key).Invoke(Container, new object[] { SequenceEditor.ViewRange });

            string evtName = track.gameObject.name;

            int nameStart = 0;
            int nameEnd   = evtName.Length;

            if (nameEnd > 2 && evtName[0] == 'F' && char.IsUpper(evtName[1]))
            {
                nameStart = 1;
            }
            if (evtName.EndsWith("Event"))
            {
                nameEnd = evtName.Length - "Event".Length;
            }
            evtName = evtName.Substring(nameStart, nameEnd - nameStart);

            track.gameObject.name = ObjectNames.NicifyVariableName(evtName);

            SequenceEditor.Refresh();

            Undo.RegisterCreatedObjectUndo(track.gameObject, string.Empty);

            SequenceEditor.SelectExclusive(SequenceEditor.GetEditor <FEventEditor>(track.GetEvent(0)));
        }
Ejemplo n.º 2
0
        void AddTrackMenu(object param)
        {
            KeyValuePair <Type, FEventAttribute> kvp = (KeyValuePair <Type, FEventAttribute>)param;

            Undo.RecordObjects(new UnityEngine.Object[] { Container, this }, "add Track");

            FTrack track = (FTrack)typeof(FContainer).GetMethod("Add", new Type[] { typeof(FrameRange) }).MakeGenericMethod(kvp.Key).Invoke(Container, new object[] { SequenceEditor.ViewRange });

            //string evtName = track.gameObject.name;

            //int nameStart = 0;
            //int nameEnd = evtName.Length;
            //if (nameEnd > 2 && evtName[0] == 'F' && char.IsUpper(evtName[1]))
            //    nameStart = 1;
            //if (evtName.EndsWith("Event"))
            //    nameEnd = evtName.Length - "Event".Length;
            //evtName = evtName.Substring(nameStart, nameEnd - nameStart);

            string evtName = kvp.Value.menu;

            if (!string.IsNullOrEmpty(kvp.Value.menu))
            {
                string[] nodes = kvp.Value.menu.Split("/".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
                evtName = nodes[nodes.Length - 1];
            }

            track.gameObject.name = ObjectNames.NicifyVariableName(evtName);

            if (!Container.Sequence.IsStopped)
            {
                track.Init();
            }

            SequenceEditor.Refresh();

            Undo.RegisterCreatedObjectUndo(track.gameObject, string.Empty);

            SequenceEditor.SelectExclusive(SequenceEditor.GetEditor <FEventEditor>(track.GetEvent(0)));
        }