private void MayAttachVisualModel(EntityModel entity, GameObject gameObject) { var meshRendererComponent = gameObject.GetComponent<MeshRenderer>(); var meshFilterComponent = gameObject.GetComponent<MeshFilter>(); if (meshFilterComponent == null || meshRendererComponent == null) return; entity.Id = gameObject.name; entity.IsStatic = gameObject.isStatic; var componentModel = new EntityComponentModel { Id = "VisualModel" }; var meshReferenceItem = new EntityComponentDataItemModel { Key = "MeshReference" }; componentModel.Data.Add(meshReferenceItem); entity.Components.Add(componentModel); var exportsModel = _exportType != ModelExportType.No; var path = AssetDatabase.GetAssetPath(meshFilterComponent.sharedMesh ?? meshFilterComponent.mesh); if (!string.IsNullOrEmpty(path) && exportsModel) { if (_exportType == ModelExportType.OriginalModelFile) { meshReferenceItem.Value = _filePathExporter.ExportAssetToModels(path); } else { meshReferenceItem.Value = ConvertModelToPmeshAndSaveToFolder(meshFilterComponent.sharedMesh ?? meshFilterComponent.mesh, meshRendererComponent.material, path); } } var texture = meshRendererComponent.sharedMaterial.mainTexture; var textureAssetPath = AssetDatabase.GetAssetPath(texture); if (!string.IsNullOrEmpty(textureAssetPath) && exportsModel) { _filePathExporter.ExportAssetToModels(textureAssetPath); } }