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(); }
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()); }
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()); }
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()); }
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()); }
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()); }
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()); }
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); }
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); } } } }
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]); } }