@@ -126,28 +126,28 @@ public void RegisterAnimatedBoneHierarchy(int hash)
126
126
/// <summary>
127
127
/// Callback event when character has been updated.
128
128
/// </summary>
129
- public event Action < UMAData > OnCharacterUpdated { add { if ( CharacterUpdated == null ) CharacterUpdated = new UMADataEvent ( ) ; CharacterUpdated . AddListener ( new UnityAction < UMAData > ( value ) ) ; } remove { CharacterUpdated . RemoveListener ( new UnityAction < UMAData > ( value ) ) ; } }
129
+ public event Action < UMAData > OnCharacterUpdated { add { if ( CharacterUpdated == null ) CharacterUpdated = new UMADataEvent ( ) ; CharacterUpdated . AddAction ( value ) ; } remove { CharacterUpdated . RemoveAction ( value ) ; } }
130
130
/// <summary>
131
131
/// Callback event when character has been completely created.
132
132
/// </summary>
133
- public event Action < UMAData > OnCharacterCreated { add { if ( CharacterCreated == null ) CharacterCreated = new UMADataEvent ( ) ; CharacterCreated . AddListener ( new UnityAction < UMAData > ( value ) ) ; } remove { CharacterCreated . RemoveListener ( new UnityAction < UMAData > ( value ) ) ; } }
133
+ public event Action < UMAData > OnCharacterCreated { add { if ( CharacterCreated == null ) CharacterCreated = new UMADataEvent ( ) ; CharacterCreated . AddAction ( value ) ; } remove { CharacterCreated . RemoveAction ( value ) ; } }
134
134
/// <summary>
135
135
/// Callback event when character has been destroyed.
136
136
/// </summary>
137
- public event Action < UMAData > OnCharacterDestroyed { add { if ( CharacterDestroyed == null ) CharacterDestroyed = new UMADataEvent ( ) ; CharacterDestroyed . AddListener ( new UnityAction < UMAData > ( value ) ) ; } remove { CharacterDestroyed . RemoveListener ( new UnityAction < UMAData > ( value ) ) ; } }
137
+ public event Action < UMAData > OnCharacterDestroyed { add { if ( CharacterDestroyed == null ) CharacterDestroyed = new UMADataEvent ( ) ; CharacterDestroyed . AddAction ( value ) ; } remove { CharacterDestroyed . RemoveAction ( value ) ; } }
138
138
139
139
/// <summary>
140
140
/// Callback event when character DNA has been updated.
141
141
/// </summary>
142
- public event Action < UMAData > OnCharacterDnaUpdated { add { if ( CharacterDnaUpdated == null ) CharacterDnaUpdated = new UMADataEvent ( ) ; CharacterDnaUpdated . AddListener ( new UnityAction < UMAData > ( value ) ) ; } remove { CharacterDnaUpdated . RemoveListener ( new UnityAction < UMAData > ( value ) ) ; } }
142
+ public event Action < UMAData > OnCharacterDnaUpdated { add { if ( CharacterDnaUpdated == null ) CharacterDnaUpdated = new UMADataEvent ( ) ; CharacterDnaUpdated . AddAction ( value ) ; } remove { CharacterDnaUpdated . RemoveAction ( value ) ; } }
143
143
/// <summary>
144
144
/// Callback event used by UMA to make last minute tweaks
145
145
/// </summary>
146
- public event Action < UMAData > OnCharacterBeforeUpdated { add { if ( CharacterBeforeUpdated == null ) CharacterBeforeUpdated = new UMADataEvent ( ) ; CharacterBeforeUpdated . AddListener ( new UnityAction < UMAData > ( value ) ) ; } remove { CharacterBeforeUpdated . RemoveListener ( new UnityAction < UMAData > ( value ) ) ; } }
146
+ public event Action < UMAData > OnCharacterBeforeUpdated { add { if ( CharacterBeforeUpdated == null ) CharacterBeforeUpdated = new UMADataEvent ( ) ; CharacterBeforeUpdated . AddAction ( value ) ; } remove { CharacterBeforeUpdated . RemoveAction ( value ) ; } }
147
147
/// <summary>
148
148
/// Callback event used by UMA to make last minute tweaks
149
149
/// </summary>
150
- public event Action < UMAData > OnCharacterBeforeDnaUpdated { add { if ( CharacterBeforeDnaUpdated == null ) CharacterBeforeDnaUpdated = new UMADataEvent ( ) ; CharacterBeforeDnaUpdated . AddListener ( new UnityAction < UMAData > ( value ) ) ; } remove { CharacterBeforeUpdated . RemoveListener ( new UnityAction < UMAData > ( value ) ) ; } }
150
+ public event Action < UMAData > OnCharacterBeforeDnaUpdated { add { if ( CharacterBeforeDnaUpdated == null ) CharacterBeforeDnaUpdated = new UMADataEvent ( ) ; CharacterBeforeDnaUpdated . AddAction ( value ) ; } remove { CharacterBeforeDnaUpdated . RemoveAction ( value ) ; } }
151
151
152
152
public UMADataEvent CharacterCreated ;
153
153
public UMADataEvent CharacterDestroyed ;
@@ -878,44 +878,27 @@ public void MergeMatchingOverlays()
878
878
public void PreApplyDNA ( UMAData umaData , bool fixUpUMADnaToDynamicUMADna = false )
879
879
{
880
880
EnsureAllDNAPresent ( ) ;
881
- bool fixup = false ;
882
- //DynamicUMADna:: when loading an older recipe that has UMADnaHumanoid/Tutorial into a race that now uses DynamicUmaDna the following wont work
883
- //so check that and fix it if it happens
884
- if ( fixUpUMADnaToDynamicUMADna )
885
- {
886
- DynamicDNAConverterBehaviourBase . FixUpUMADnaToDynamicUMADna ( this ) ;
887
- }
888
- else
889
- {
890
- //clear any color adjusters from all overlays in the recipe
891
- //Only do this if we havent looped back to fixup dna
892
- umaData . umaRecipe . ClearOverlayColorAdjusters ( ) ;
893
- }
881
+ //clear any color adjusters from all overlays in the recipe
882
+ umaData . umaRecipe . ClearOverlayColorAdjusters ( ) ;
894
883
foreach ( var dnaEntry in umaDna )
895
884
{
896
885
//DynamicDNAPlugins FEATURE: Allow more than one converter to use the same dna
897
886
List < DNAConvertDelegate > dnaConverters ;
898
887
this . umaDNAPreApplyConverters . TryGetValue ( dnaEntry . Key , out dnaConverters ) ;
899
-
888
+ //DynamicUMADna:: when loading an older recipe that has UMADnaHumanoid/Tutorial into a race that now uses DynamicUmaDna the following wont work
889
+ //so check that and fix it if it happens
890
+ if ( dnaConverters == null || dnaConverters . Count == 0 )
891
+ {
892
+ DynamicDNAConverterBehaviourBase . FixUpUMADnaToDynamicUMADna ( this ) ;
893
+ this . umaDNAPreApplyConverters . TryGetValue ( dnaEntry . Key , out dnaConverters ) ;
894
+ }
900
895
if ( dnaConverters != null && dnaConverters . Count > 0 )
901
896
{
902
897
for ( int i = 0 ; i < dnaConverters . Count ; i ++ )
903
898
{
904
899
dnaConverters [ i ] ( umaData , umaData . GetSkeleton ( ) ) ;
905
900
}
906
901
}
907
- else
908
- {
909
- //DynamicUMADna:: try again this time calling FixUpUMADnaToDynamicUMADna first
910
- if ( fixUpUMADnaToDynamicUMADna == false )
911
- {
912
- fixup = true ;
913
- }
914
- }
915
- }
916
- if ( fixup )
917
- {
918
- PreApplyDNA ( umaData , true ) ;
919
902
}
920
903
}
921
904
0 commit comments