Exemplo n.º 1
0
        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();
        }
Exemplo n.º 2
0
        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);
            }
        }