private void PresentModel(string name, bool isSkeletalMesh, GltfModelEntryType type = GltfModelEntryType.Base) { string file = modelManager.GetModelPath(name, type); string assetName = Path.GetFileNameWithoutExtension(Path.GetFileName(file)); List <AlkaronEngine.Assets.Asset> importedAssets = null; if (isSkeletalMesh) { //AssetImporterSkeletalMesh.Import(file, assetName, assetName, out importedAssets); } else { AssetImporterGltfMesh.Import(file, assetName, assetName, (obj) => { Console.WriteLine("Import state: " + obj.State); }, out importedAssets); } for (int i = 0; i < importedAssets.Count; i++) { if (importedAssets[i] is StaticMesh) { AddStaticMesh(importedAssets[i] as StaticMesh); } } var package = MainGame.Instance.PackageManager.LoadPackage(assetName, false); package.Save(); }
internal string GetModelPath(string name, GltfModelEntryType type = GltfModelEntryType.Base) { name = name.ToLowerInvariant(); if (ModelLookup.ContainsKey(name)) { GltfModelEntry entry = ModelLookup[name]; if (entry.Types.Contains(type)) { int index = entry.Types.IndexOf(type); return(entry.Files[index]); } else { if (entry.Types.Contains(GltfModelEntryType.Unknown)) { int index = entry.Types.IndexOf(GltfModelEntryType.Unknown); return(entry.Files[index]); } else { return(null); } } } else { return(null); } }