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