public override void OnGUI(Rect position, SerializedProperty property, GUIContent label)
    {
        //EditorGUI.BeginProperty(position, GUIContent.none, property);
        //SerializedProperty memberProperty = property.FindPropertyRelative("PropertyName");
        //SerializedProperty typeProperty = property.FindPropertyRelative("Type");
        SerializedProperty propertyProperty = property.FindPropertyRelative("PropertyType");
        PropertyTypeInfo   propertyTypeInfo = (PropertyTypeInfo)propertyProperty.enumValueIndex;
        SerializedProperty curve1Property   = property.FindPropertyRelative("Curve1");
        SerializedProperty curve2Property   = property.FindPropertyRelative("Curve2");
        SerializedProperty curve3Property   = property.FindPropertyRelative("Curve3");
        SerializedProperty curve4Property   = property.FindPropertyRelative("Curve4");

        int count = UnityPropertyTypeInfo.GetCurveCount(propertyTypeInfo);

        EditorGUI.indentLevel++;
        if (count > 0)
        {
            EditorGUILayout.PropertyField(curve1Property);
        }
        if (count > 1)
        {
            EditorGUILayout.PropertyField(curve2Property);
        }
        if (count > 2)
        {
            EditorGUILayout.PropertyField(curve3Property);
        }
        if (count > 3)
        {
            EditorGUILayout.PropertyField(curve4Property);
        }
        EditorGUI.indentLevel--;

        //EditorGUI.EndProperty();
    }
Exemplo n.º 2
0
 public static FieldInfo[] getValidFields(object component, List <FieldInfo> fields)
 {
     foreach (FieldInfo field in component.GetType().GetFields())
     {
         var type = UnityPropertyTypeInfo.GetMappedType(field.FieldType);
         if (type != PropertyTypeInfo.PostProcessProfile && type != PropertyTypeInfo.None)
         {
             fields.Add(field);
         }
     }
     return(fields.ToArray());
 }
Exemplo n.º 3
0
    public static FieldInfo[] getValidFields(Component component)
    {
        List <FieldInfo> fields = new List <FieldInfo>();

        foreach (FieldInfo field in component.GetType().GetFields())
        {
            if (UnityPropertyTypeInfo.GetMappedType(field.FieldType) != PropertyTypeInfo.None)
            {
                fields.Add(field);
            }
        }
        return(fields.ToArray());
    }
Exemplo n.º 4
0
    public static PropertyInfo[] getValidProperties(Component component)
    {
        List <PropertyInfo> properties = new List <PropertyInfo>();

        foreach (PropertyInfo propertyInfo in component.GetType().GetProperties())
        {
            if (UnityPropertyTypeInfo.GetMappedType(propertyInfo.PropertyType) != PropertyTypeInfo.None && propertyInfo.CanWrite)
            {
                properties.Add(propertyInfo);
            }
        }
        return(properties.ToArray());
    }
Exemplo n.º 5
0
    private PropertyInfo[] getValidProperties(Component component, PropertyTypeInfo propertyTypeInfo)
    {
        List <PropertyInfo> properties = new List <PropertyInfo>();

        PropertyInfo[] pi = component.GetType().GetProperties();
        for (int i = 0; i < pi.Length; i++)
        {
            if (UnityPropertyTypeInfo.GetMappedType(pi[i].PropertyType) == propertyTypeInfo && pi[i].CanWrite)
            {
                properties.Add(pi[i]);
            }
        }
        return(properties.ToArray());
    }
Exemplo n.º 6
0
    public static FieldInfo[] getValidFields(Component component)
    {
        List <FieldInfo> fields = new List <FieldInfo>();

        {
            var __array12       = component.GetType().GetFields();
            var __arrayLength12 = __array12.Length;
            for (int __i12 = 0; __i12 < __arrayLength12; ++__i12)
            {
                var field = (FieldInfo)__array12[__i12];
                {
                    if (UnityPropertyTypeInfo.GetMappedType(field.FieldType) != PropertyTypeInfo.None)
                    {
                        fields.Add(field);
                    }
                }
            }
        }
        return(fields.ToArray());
    }
Exemplo n.º 7
0
    public static PropertyInfo[] getValidProperties(Component component)
    {
        List <PropertyInfo> properties = new List <PropertyInfo>();

        {
            var __array11       = component.GetType().GetProperties();
            var __arrayLength11 = __array11.Length;
            for (int __i11 = 0; __i11 < __arrayLength11; ++__i11)
            {
                var propertyInfo = (PropertyInfo)__array11[__i11];
                {
                    if (UnityPropertyTypeInfo.GetMappedType(propertyInfo.PropertyType) != PropertyTypeInfo.None && propertyInfo.CanWrite)
                    {
                        properties.Add(propertyInfo);
                    }
                }
            }
        }
        return(properties.ToArray());
    }
    private PropertyInfo[] getValidProperties(Component component, PropertyTypeInfo propertyTypeInfo)
    {
        List <PropertyInfo> properties = new List <PropertyInfo>();

        {
            var __array3       = component.GetType().GetProperties();
            var __arrayLength3 = __array3.Length;
            for (int __i3 = 0; __i3 < __arrayLength3; ++__i3)
            {
                var propertyInfo = (PropertyInfo)__array3[__i3];
                {
                    if (UnityPropertyTypeInfo.GetMappedType(propertyInfo.PropertyType) == propertyTypeInfo && propertyInfo.CanWrite)
                    {
                        properties.Add(propertyInfo);
                    }
                }
            }
        }
        return(properties.ToArray());
    }
Exemplo n.º 9
0
    protected virtual void CinemaCurveControl_CurvesChanged(object sender, CurveClipWrapperEventArgs e)
    {
        if (e.wrapper == null)
        {
            return;
        }
        CinemaClipCurveWrapper wrapper   = e.wrapper;
        CinemaClipCurve        clipCurve = wrapper.Behaviour as CinemaClipCurve;

        if (clipCurve == null)
        {
            return;
        }

        Undo.RecordObject(clipCurve, string.Format("Changed {0}", clipCurve.name));

        for (int i = 0; i < clipCurve.CurveData.Count; i++)
        {
            MemberClipCurveData member = clipCurve.CurveData[i];

            CinemaMemberCurveWrapper memberWrapper = null;
            if (wrapper.TryGetValue(member.Type, member.PropertyName, out memberWrapper))
            {
                int showingCurves = UnityPropertyTypeInfo.GetCurveCount(member.PropertyType);

                for (int j = 0; j < showingCurves; j++)
                {
                    member.SetCurve(j, new AnimationCurve(memberWrapper.AnimationCurves[j].Curve.keys));
                }
            }
        }

        clipCurve.Firetime = wrapper.Firetime;
        clipCurve.Duration = wrapper.Duration;

        EditorUtility.SetDirty(clipCurve);
    }
Exemplo n.º 10
0
    public override void UpdateCurveWrappers(CinemaClipCurveWrapper clipWrapper)
    {
        CinemaMultiActorCurveClip clipCurve = clipWrapper.Behaviour as CinemaMultiActorCurveClip;

        if (clipCurve == null)
        {
            return;
        }

        for (int i = 0; i < clipCurve.CurveData.Count; i++)
        {
            MemberClipCurveData member = clipCurve.CurveData[i];

            CinemaMemberCurveWrapper memberWrapper = null;
            if (!clipWrapper.TryGetValue(member.PropertyType.ToString(), member.PropertyName, out memberWrapper))
            {
                memberWrapper              = new CinemaMemberCurveWrapper();
                memberWrapper.Type         = member.PropertyType.ToString();
                memberWrapper.PropertyName = member.PropertyName;
                memberWrapper.Texture      = EditorGUIUtility.ObjectContent(null, UnityPropertyTypeInfo.GetUnityType(member.Type)).image;
                ArrayUtility.Add <CinemaMemberCurveWrapper>(ref clipWrapper.MemberCurves, memberWrapper);

                int showingCurves = UnityPropertyTypeInfo.GetCurveCount(member.PropertyType);
                memberWrapper.AnimationCurves = new CinemaAnimationCurveWrapper[showingCurves];

                for (int j = 0; j < showingCurves; j++)
                {
                    memberWrapper.AnimationCurves[j] = new CinemaAnimationCurveWrapper();

                    memberWrapper.AnimationCurves[j].Id    = j;
                    memberWrapper.AnimationCurves[j].Curve = member.GetCurve(j);
                    memberWrapper.AnimationCurves[j].Color = UnityPropertyTypeInfo.GetCurveColor(j);
                    memberWrapper.AnimationCurves[j].Label = UnityPropertyTypeInfo.GetCurveName(member.PropertyType, j);
                }
            }
        }

        // Remove missing track items
        List <CinemaMemberCurveWrapper> itemRemovals = new List <CinemaMemberCurveWrapper>();
        {
            // foreach(var cw in clipWrapper.MemberCurves)
            var __enumerator1 = (clipWrapper.MemberCurves).GetEnumerator();
            while (__enumerator1.MoveNext())
            {
                var cw = (CinemaMemberCurveWrapper)__enumerator1.Current;
                {
                    bool found = false;
                    {
                        // foreach(var member in clipCurve.CurveData)
                        var __enumerator3 = (clipCurve.CurveData).GetEnumerator();
                        while (__enumerator3.MoveNext())
                        {
                            var member = (MemberClipCurveData)__enumerator3.Current;
                            {
                                if (member.PropertyType.ToString() == cw.Type && member.PropertyName == cw.PropertyName)
                                {
                                    found = true;
                                    break;
                                }
                            }
                        }
                    }
                    if (!found)
                    {
                        itemRemovals.Add(cw);
                    }
                }
            }
        }
        {
            var __list2      = itemRemovals;
            var __listCount2 = __list2.Count;
            for (int __i2 = 0; __i2 < __listCount2; ++__i2)
            {
                var item = (CinemaMemberCurveWrapper)__list2[__i2];
                {
                    ArrayUtility.Remove <CinemaMemberCurveWrapper>(ref clipWrapper.MemberCurves, item);
                }
            }
        }
    }
Exemplo n.º 11
0
    public override void UpdateCurveWrappers(CinemaClipCurveWrapper clipWrapper)
    {
        CinemaClipCurve clipCurve = clipWrapper.Behaviour as CinemaClipCurve;

        if (clipCurve == null)
        {
            return;
        }

        for (int i = 0; i < clipCurve.CurveData.Count; i++)
        {
            MemberClipCurveData member = clipCurve.CurveData[i];

            CinemaMemberCurveWrapper memberWrapper = null;
            if (!clipWrapper.TryGetValue(member.Type, member.PropertyName, out memberWrapper))
            {
                memberWrapper              = new CinemaMemberCurveWrapper();
                memberWrapper.Type         = member.Type;
                memberWrapper.PropertyName = member.PropertyName;
                memberWrapper.Texture      = EditorGUIUtility.ObjectContent(null, UnityPropertyTypeInfo.GetUnityType(member.Type)).image;
                ArrayUtility.Add <CinemaMemberCurveWrapper>(ref clipWrapper.MemberCurves, memberWrapper);

                int showingCurves = UnityPropertyTypeInfo.GetCurveCount(member.PropertyType);
                memberWrapper.AnimationCurves = new CinemaAnimationCurveWrapper[showingCurves];

                for (int j = 0; j < showingCurves; j++)
                {
                    memberWrapper.AnimationCurves[j] = new CinemaAnimationCurveWrapper();

                    memberWrapper.AnimationCurves[j].Id    = j;
                    memberWrapper.AnimationCurves[j].Curve = new AnimationCurve(member.GetCurve(j).keys); // Make a deep copy.

                    memberWrapper.AnimationCurves[j].Label = UnityPropertyTypeInfo.GetCurveName(member.PropertyType, j);
                    memberWrapper.AnimationCurves[j].Color = UnityPropertyTypeInfo.GetCurveColor(member.Type, member.PropertyName, memberWrapper.AnimationCurves[j].Label, j);
                }
            }
            else
            {
                int showingCurves = UnityPropertyTypeInfo.GetCurveCount(member.PropertyType);
                for (int j = 0; j < showingCurves; j++)
                {
                    memberWrapper.AnimationCurves[j].Curve = new AnimationCurve(member.GetCurve(j).keys); // Make a deep copy.
                }
            }
        }

        // Remove missing track items
        List <CinemaMemberCurveWrapper> itemRemovals = new List <CinemaMemberCurveWrapper>();

        for (int i = 0; i < clipWrapper.MemberCurves.Length; i++)
        {
            CinemaMemberCurveWrapper cw = clipWrapper.MemberCurves[i];
            bool found = false;
            for (int j = 0; j < clipCurve.CurveData.Count; j++)
            {
                MemberClipCurveData member = clipCurve.CurveData[j];
                if (member.Type == cw.Type && member.PropertyName == cw.PropertyName)
                {
                    found = true;
                    break;
                }
            }
            if (!found)
            {
                itemRemovals.Add(cw);
            }
        }
        for (int i = 0; i < itemRemovals.Count; i++)
        {
            ArrayUtility.Remove <CinemaMemberCurveWrapper>(ref clipWrapper.MemberCurves, itemRemovals[i]);
        }
    }