public static bool ApplyMaterialModificationToAnimationRecording(MaterialProperty materialProp, int changedMask, Renderer target, object oldValue) { switch (materialProp.type) { case MaterialProperty.PropType.Color: MaterialAnimationUtility.SetupMaterialPropertyBlock(materialProp, changedMask, target); MaterialAnimationUtility.ApplyMaterialModificationToAnimationRecording(materialProp, (Object)target, (Color)oldValue); return(true); case MaterialProperty.PropType.Vector: MaterialAnimationUtility.SetupMaterialPropertyBlock(materialProp, changedMask, target); MaterialAnimationUtility.ApplyMaterialModificationToAnimationRecording(materialProp, (Object)target, (Color)((Vector4)oldValue)); return(true); case MaterialProperty.PropType.Float: case MaterialProperty.PropType.Range: MaterialAnimationUtility.SetupMaterialPropertyBlock(materialProp, changedMask, target); MaterialAnimationUtility.ApplyMaterialModificationToAnimationRecording(materialProp, (Object)target, (float)oldValue); return(true); case MaterialProperty.PropType.Texture: if (!MaterialProperty.IsTextureOffsetAndScaleChangedMask(changedMask)) { return(false); } string name = materialProp.name + "_ST"; MaterialAnimationUtility.SetupMaterialPropertyBlock(materialProp, changedMask, target); MaterialAnimationUtility.ApplyMaterialModificationToAnimationRecording(name, (Object)target, (Vector4)oldValue); return(true); default: return(false); } }
private void OnPropertyContextMenu(GenericMenu menu, MaterialProperty property, Renderer[] renderers) { if (this.m_Responder != null) { if (property.targets != null && property.targets.Length != 0) { if (renderers != null && renderers.Length != 0) { List <PropertyModification> list = new List <PropertyModification>(); for (int i = 0; i < renderers.Length; i++) { Renderer target = renderers[i]; list.AddRange(MaterialAnimationUtility.MaterialPropertyToPropertyModifications(property, target)); } if (this.m_Responder.IsEditable(renderers[0])) { this.OnPropertyContextMenu(menu, list.ToArray()); } else { this.OnDisabledPropertyContextMenu(menu); } } } } }
private static bool ApplyMaterialModificationToAnimationRecording(MaterialProperty materialProp, UnityEngine.Object target, float value) { UndoPropertyModification[] array = MaterialAnimationUtility.CreateUndoPropertyModifications(1, target); MaterialAnimationUtility.SetupPropertyModification(materialProp.name, value, array[0]); UndoPropertyModification[] array2 = Undo.postprocessModifications(array); return(array2.Length != array.Length); }
public static PropertyModification[] MaterialPropertyToPropertyModifications(MaterialProperty materialProp, Renderer target) { PropertyModification[] result; switch (materialProp.type) { case MaterialProperty.PropType.Color: result = MaterialAnimationUtility.MaterialPropertyToPropertyModifications(materialProp, target, materialProp.colorValue); break; case MaterialProperty.PropType.Vector: result = MaterialAnimationUtility.MaterialPropertyToPropertyModifications(materialProp, target, materialProp.vectorValue); break; case MaterialProperty.PropType.Float: case MaterialProperty.PropType.Range: result = MaterialAnimationUtility.MaterialPropertyToPropertyModifications(materialProp, target, materialProp.floatValue); break; case MaterialProperty.PropType.Texture: { string name = materialProp.name + "_ST"; result = MaterialAnimationUtility.MaterialPropertyToPropertyModifications(name, target, materialProp.vectorValue); break; } default: result = null; break; } return(result); }
void OnPropertyContextMenu(GenericMenu menu, MaterialProperty property, Renderer[] renderers) { if (m_Responder == null) { return; } if (property.targets == null || property.targets.Length == 0) { return; } if (renderers == null || renderers.Length == 0) { return; } var modifications = new List <PropertyModification>(); foreach (Renderer renderer in renderers) { modifications.AddRange(MaterialAnimationUtility.MaterialPropertyToPropertyModifications(property, renderer)); } if (m_Responder.IsEditable(renderers[0])) { OnPropertyContextMenu(menu, modifications.ToArray()); } else { OnDisabledPropertyContextMenu(menu); } }
private static void ApplyMaterialModificationToAnimationRecording(string name, Object target, Vector4 vec) { UndoPropertyModification[] propertyModifications = MaterialAnimationUtility.CreateUndoPropertyModifications(4, target); MaterialAnimationUtility.SetupPropertyModification(name + ".x", vec.x, propertyModifications[0]); MaterialAnimationUtility.SetupPropertyModification(name + ".y", vec.y, propertyModifications[1]); MaterialAnimationUtility.SetupPropertyModification(name + ".z", vec.z, propertyModifications[2]); MaterialAnimationUtility.SetupPropertyModification(name + ".w", vec.w, propertyModifications[3]); UndoPropertyModification[] propertyModificationArray = Undo.postprocessModifications(propertyModifications); }
private static void ApplyMaterialModificationToAnimationRecording(MaterialProperty materialProp, Object target, Color color) { UndoPropertyModification[] propertyModifications = MaterialAnimationUtility.CreateUndoPropertyModifications(4, target); MaterialAnimationUtility.SetupPropertyModification(materialProp.name + ".r", color.r, propertyModifications[0]); MaterialAnimationUtility.SetupPropertyModification(materialProp.name + ".g", color.g, propertyModifications[1]); MaterialAnimationUtility.SetupPropertyModification(materialProp.name + ".b", color.b, propertyModifications[2]); MaterialAnimationUtility.SetupPropertyModification(materialProp.name + ".a", color.a, propertyModifications[3]); UndoPropertyModification[] propertyModificationArray = Undo.postprocessModifications(propertyModifications); }
private static void ApplyMaterialModificationToAnimationRecording(string name, UnityEngine.Object target, Vector4 vec) { UndoPropertyModification[] array = MaterialAnimationUtility.CreateUndoPropertyModifications(4, target); MaterialAnimationUtility.SetupPropertyModification(name + ".x", vec.x, array[0]); MaterialAnimationUtility.SetupPropertyModification(name + ".y", vec.y, array[1]); MaterialAnimationUtility.SetupPropertyModification(name + ".z", vec.z, array[2]); MaterialAnimationUtility.SetupPropertyModification(name + ".w", vec.w, array[3]); Undo.postprocessModifications(array); }
private static void ApplyMaterialModificationToAnimationRecording(MaterialProperty materialProp, UnityEngine.Object target, Color color) { UndoPropertyModification[] array = MaterialAnimationUtility.CreateUndoPropertyModifications(4, target); MaterialAnimationUtility.SetupPropertyModification(materialProp.name + ".r", color.r, array[0]); MaterialAnimationUtility.SetupPropertyModification(materialProp.name + ".g", color.g, array[1]); MaterialAnimationUtility.SetupPropertyModification(materialProp.name + ".b", color.b, array[2]); MaterialAnimationUtility.SetupPropertyModification(materialProp.name + ".a", color.a, array[3]); Undo.postprocessModifications(array); }
private static PropertyModification[] MaterialPropertyToPropertyModifications(string name, UnityEngine.Object target, Vector4 vec) { PropertyModification[] array = MaterialAnimationUtility.CreatePropertyModifications(4, target); MaterialAnimationUtility.SetupPropertyModification(name + ".x", vec.x, array[0]); MaterialAnimationUtility.SetupPropertyModification(name + ".y", vec.y, array[1]); MaterialAnimationUtility.SetupPropertyModification(name + ".z", vec.z, array[2]); MaterialAnimationUtility.SetupPropertyModification(name + ".w", vec.w, array[3]); return(array); }
private static PropertyModification[] MaterialPropertyToPropertyModifications(MaterialProperty materialProp, UnityEngine.Object target, Color color) { PropertyModification[] array = MaterialAnimationUtility.CreatePropertyModifications(4, target); MaterialAnimationUtility.SetupPropertyModification(materialProp.name + ".r", color.r, array[0]); MaterialAnimationUtility.SetupPropertyModification(materialProp.name + ".g", color.g, array[1]); MaterialAnimationUtility.SetupPropertyModification(materialProp.name + ".b", color.b, array[2]); MaterialAnimationUtility.SetupPropertyModification(materialProp.name + ".a", color.a, array[3]); return(array); }
private static void ApplyMaterialModificationToAnimationRecording(MaterialProperty materialProp, Object target, float value) { UndoPropertyModification[] propertyModifications = MaterialAnimationUtility.CreateUndoPropertyModifications(1, target); MaterialAnimationUtility.SetupPropertyModification(materialProp.name, value, propertyModifications[0]); UndoPropertyModification[] propertyModificationArray = Undo.postprocessModifications(propertyModifications); }
public static bool ApplyMaterialModificationToAnimationRecording(MaterialProperty materialProp, int changedMask, Renderer target, object oldValue) { bool result; switch (materialProp.type) { case MaterialProperty.PropType.Color: { MaterialAnimationUtility.SetupMaterialPropertyBlock(materialProp, changedMask, target); bool flag = MaterialAnimationUtility.ApplyMaterialModificationToAnimationRecording(materialProp, target, (Color)oldValue); if (!flag) { MaterialAnimationUtility.TearDownMaterialPropertyBlock(target); } result = flag; break; } case MaterialProperty.PropType.Vector: { MaterialAnimationUtility.SetupMaterialPropertyBlock(materialProp, changedMask, target); bool flag = MaterialAnimationUtility.ApplyMaterialModificationToAnimationRecording(materialProp, target, (Vector4)oldValue); if (!flag) { MaterialAnimationUtility.TearDownMaterialPropertyBlock(target); } result = flag; break; } case MaterialProperty.PropType.Float: case MaterialProperty.PropType.Range: { MaterialAnimationUtility.SetupMaterialPropertyBlock(materialProp, changedMask, target); bool flag = MaterialAnimationUtility.ApplyMaterialModificationToAnimationRecording(materialProp, target, (float)oldValue); if (!flag) { MaterialAnimationUtility.TearDownMaterialPropertyBlock(target); } result = flag; break; } case MaterialProperty.PropType.Texture: if (MaterialProperty.IsTextureOffsetAndScaleChangedMask(changedMask)) { string name = materialProp.name + "_ST"; MaterialAnimationUtility.SetupMaterialPropertyBlock(materialProp, changedMask, target); bool flag = MaterialAnimationUtility.ApplyMaterialModificationToAnimationRecording(name, target, (Vector4)oldValue); if (!flag) { MaterialAnimationUtility.TearDownMaterialPropertyBlock(target); } result = flag; } else { result = false; } break; default: result = false; break; } return(result); }
private static PropertyModification[] MaterialPropertyToPropertyModifications(MaterialProperty materialProp, UnityEngine.Object target, float value) { PropertyModification[] array = MaterialAnimationUtility.CreatePropertyModifications(1, target); MaterialAnimationUtility.SetupPropertyModification(materialProp.name, value, array[0]); return(array); }