private static void ChangeColorsInSubObjects(ExportEntry export, Dictionary <string, CFVector4> vectorValues, Dictionary <string, float> scalarValues, PropertyCollection props = null)
 {
     props ??= export.GetProperties();
     foreach (var childObjProp in props.OfType <ObjectProperty>())
     {
         var childObj = childObjProp.ResolveToEntry(export.FileRef) as ExportEntry;
         if (childObj != null && childObj.ClassName == "SkeletalMeshComponent")
         {
             var childMaterials = childObj.GetProperty <ArrayProperty <ObjectProperty> >("Materials");
             if (childMaterials != null)
             {
                 foreach (var childMatObj in childMaterials)
                 {
                     if (childMatObj.ResolveToEntry(export.FileRef) is ExportEntry childMat)
                     {
                         RandomizeSubMatInst(childMat, vectorValues, scalarValues);
                     }
                 }
             }
         }
     }
 }