@@ -63,16 +63,17 @@ static PropertyModification[] MaterialPropertyToPropertyModifications(string nam
6363 return modifications ;
6464 }
6565
66- static bool ApplyMaterialModificationToAnimationRecording ( PropertyModification [ ] modifications )
66+ static bool ApplyMaterialModificationToAnimationRecording ( PropertyModification [ ] previousModifications , PropertyModification [ ] currentModifications )
6767 {
68- UndoPropertyModification [ ] undoModifications = new UndoPropertyModification [ modifications . Length ] ;
68+ UndoPropertyModification [ ] undoModifications = new UndoPropertyModification [ previousModifications . Length ] ;
6969 for ( int i = 0 ; i < undoModifications . Length ; ++ i )
7070 {
71- undoModifications [ i ] . previousValue = modifications [ i ] ;
71+ undoModifications [ i ] . previousValue = previousModifications [ i ] ;
72+ undoModifications [ i ] . currentValue = currentModifications [ i ] ;
7273 }
7374
7475 UndoPropertyModification [ ] ret = Undo . InvokePostprocessModifications ( undoModifications ) ;
75- return ret . Length != modifications . Length ;
76+ return ret . Length != undoModifications . Length ;
7677 }
7778
7879 static public bool OverridePropertyColor ( MaterialProperty materialProp , Renderer target , out Color color )
@@ -141,22 +142,22 @@ static public bool ApplyMaterialModificationToAnimationRecording(MaterialPropert
141142 {
142143 case MaterialProperty . PropType . Color :
143144 SetupMaterialPropertyBlock ( materialProp , changedMask , target ) ;
144- applied = ApplyMaterialModificationToAnimationRecording ( MaterialPropertyToPropertyModifications ( materialProp , target , ( Color ) oldValue ) ) ;
145+ applied = ApplyMaterialModificationToAnimationRecording ( MaterialPropertyToPropertyModifications ( materialProp , target , ( Color ) oldValue ) , MaterialPropertyToPropertyModifications ( materialProp , target , materialProp . colorValue ) ) ;
145146 if ( ! applied )
146147 TearDownMaterialPropertyBlock ( target ) ;
147148 return applied ;
148149
149150 case MaterialProperty . PropType . Vector :
150151 SetupMaterialPropertyBlock ( materialProp , changedMask , target ) ;
151- applied = ApplyMaterialModificationToAnimationRecording ( MaterialPropertyToPropertyModifications ( materialProp , target , ( Vector4 ) oldValue ) ) ;
152+ applied = ApplyMaterialModificationToAnimationRecording ( MaterialPropertyToPropertyModifications ( materialProp , target , ( Vector4 ) oldValue ) , MaterialPropertyToPropertyModifications ( materialProp , target , materialProp . vectorValue ) ) ;
152153 if ( ! applied )
153154 TearDownMaterialPropertyBlock ( target ) ;
154155 return applied ;
155156
156157 case MaterialProperty . PropType . Float :
157158 case MaterialProperty . PropType . Range :
158159 SetupMaterialPropertyBlock ( materialProp , changedMask , target ) ;
159- applied = ApplyMaterialModificationToAnimationRecording ( MaterialPropertyToPropertyModifications ( materialProp , target , ( float ) oldValue ) ) ;
160+ applied = ApplyMaterialModificationToAnimationRecording ( MaterialPropertyToPropertyModifications ( materialProp , target , ( float ) oldValue ) , MaterialPropertyToPropertyModifications ( materialProp , target , materialProp . floatValue ) ) ;
160161 if ( ! applied )
161162 TearDownMaterialPropertyBlock ( target ) ;
162163 return applied ;
@@ -167,7 +168,7 @@ static public bool ApplyMaterialModificationToAnimationRecording(MaterialPropert
167168 {
168169 string name = materialProp . name + "_ST" ;
169170 SetupMaterialPropertyBlock ( materialProp , changedMask , target ) ;
170- applied = ApplyMaterialModificationToAnimationRecording ( MaterialPropertyToPropertyModifications ( name , target , ( Vector4 ) oldValue ) ) ;
171+ applied = ApplyMaterialModificationToAnimationRecording ( MaterialPropertyToPropertyModifications ( name , target , ( Vector4 ) oldValue ) , MaterialPropertyToPropertyModifications ( name , target , materialProp . textureScaleAndOffset ) ) ;
171172 if ( ! applied )
172173 TearDownMaterialPropertyBlock ( target ) ;
173174 return applied ;
0 commit comments