public static bool HasAnyAnimatableParameters(this TimelineClip clip) { if (clip.asset == null || Attribute.IsDefined(clip.asset.GetType(), typeof(NotKeyableAttribute))) { return(false); } if (!clip.HasScriptPlayable()) { return(false); } var serializedObject = GetSerializedObject(clip); if (serializedObject == null) { return(false); } var prop = serializedObject.GetIterator(); var expand = true; bool isRootAnimatable = clip.asset is IPlayableBehaviour; bool hasAnimatable = false; while (prop.NextVisible(expand)) { if (IsAnimatable(prop.propertyType) && IsKeyable(clip.asset.GetType(), prop.propertyPath)) { hasAnimatable |= isRootAnimatable || IsAnimatablePath(clip, prop.propertyPath); } } return(hasAnimatable); }
public static bool IsParameterAnimatable(this TimelineClip clip, string parameterName) { bool result; if (clip.asset == null || Attribute.IsDefined(clip.asset.GetType(), typeof(NotKeyableAttribute))) { result = false; } else if (!clip.HasScriptPlayable()) { result = false; } else { SerializedObject serializedObject = AnimatedParameterExtensions.GetSerializedObject(clip); if (serializedObject == null) { result = false; } else { bool flag = clip.asset is IPlayableBehaviour; SerializedProperty serializedProperty = serializedObject.FindProperty(parameterName); result = (serializedProperty != null && AnimatedParameterExtensions.IsAnimatable(serializedProperty.get_propertyType()) && AnimatedParameterExtensions.IsKeyable(clip.asset.GetType(), parameterName) && (flag || clip.IsAnimatablePath(serializedProperty.get_propertyPath()))); } } return(result); }
public static bool IsParameterAnimatable(this TimelineClip clip, string parameterName) { if (clip.asset == null || Attribute.IsDefined(clip.asset.GetType(), typeof(NotKeyableAttribute))) { return(false); } if (!clip.HasScriptPlayable()) { return(false); } var serializedObject = GetSerializedObject(clip); if (serializedObject == null) { return(false); } bool isRootAnimatable = clip.asset is IPlayableBehaviour; var prop = serializedObject.FindProperty(parameterName); if (prop != null && IsAnimatable(prop.propertyType) && IsKeyable(clip.asset.GetType(), parameterName)) { return(isRootAnimatable || IsAnimatablePath(clip, prop.propertyPath)); } return(false); }
public static bool HasAnyAnimatableParameters(this TimelineClip clip) { bool result; if (clip.asset == null || Attribute.IsDefined(clip.asset.GetType(), typeof(NotKeyableAttribute))) { result = false; } else if (!clip.HasScriptPlayable()) { result = false; } else { SerializedObject serializedObject = AnimatedParameterExtensions.GetSerializedObject(clip); if (serializedObject == null) { result = false; } else { SerializedProperty iterator = serializedObject.GetIterator(); bool flag = true; bool flag2 = clip.asset is IPlayableBehaviour; bool flag3 = false; while (iterator.NextVisible(flag)) { if (AnimatedParameterExtensions.IsAnimatable(iterator.get_propertyType()) && AnimatedParameterExtensions.IsKeyable(clip.asset.GetType(), iterator.get_propertyPath())) { flag3 |= (flag2 || clip.IsAnimatablePath(iterator.get_propertyPath())); } } result = flag3; } } return(result); }