ModelImportSettings.fromJson constructor
Reads settings saved by toJson; anything missing or wrong keeps its default.
Implementation
factory ModelImportSettings.fromJson(Map<String, dynamic> json) {
final version = json['formatVersion'];
if (version is int && version > formatVersion) {
throw FormatException(
'Model import settings of format $version are newer than this ($formatVersion).',
);
}
final materials = <String, MaterialOverride>{};
final m = json['materials'];
if (m is Map) {
for (final MapEntry(:key, :value) in m.entries) {
if (key is String && value is Map) {
materials[key] = MaterialOverride.fromJson(
value.cast<String, dynamic>(),
);
}
}
}
final compression = json['textureCompression'];
return ModelImportSettings(
scale: _number(json['scale']) ?? 1.0,
maxTextureSize: (json['maxTextureSize'] as num?)?.toInt() ?? 4096,
mipmaps: json['mipmaps'] as bool? ?? true,
textureCompression: TextureCompression.values.firstWhere(
(c) => c.name == compression,
orElse: () => TextureCompression.none,
),
materials: materials,
);
}