Esempio n. 1
0
 /// <summary>
 /// Checks for a valid model (a model should contain meshes to be displayed).
 /// </summary>
 /// <param name="assetLoader"><see cref="AssetLoaderBase"/> used to load the model.</param>
 private void CheckForValidModel(AssetLoaderBase assetLoader)
 {
     if (assetLoader.MeshData == null || assetLoader.MeshData.Length == 0)
     {
         throw new Exception("File contains no meshes");
     }
 }
Esempio n. 2
0
        /// <summary>
        /// Setups the Avatar Loader instance reference and fills the available files list.
        /// </summary>
        protected void Start()
        {
#if UNITY_EDITOR
            if (!Application.isPlaying)
            {
                if (FreeLookCamPrefab == null || ThirdPersonControllerPrefab == null)
                {
                    if (EditorUtility.DisplayDialog(DialogTitle, "This sample is not configured.\nDo you want to configure it now?", "Yes", "No"))
                    {
                        SetupAvatarLoaderSample();
                    }
                }
            }
#endif
            _avatarLoader = FindObjectOfType <AvatarLoader>();
            if (_avatarLoader == null)
            {
#if TRILIB_OUTPUT_MESSAGES
                Debug.LogError("Could not find any Avatar Loader script instance.");
#endif
                return;
            }
#if UNITY_EDITOR
            var modelsPath = Path.Combine(Path.GetFullPath("./Assets/TriLib/TriLibExtras/Samples"), ModelsDirectory);
#else
            var modelsPath = Path.Combine(Path.GetFullPath("."), ModelsDirectory);
#endif
            var supportedExtensions = AssetLoaderBase.GetSupportedFileExtensions();
            _files      = Directory.GetFiles(modelsPath, "*.*").Where(x => supportedExtensions.Contains(Path.GetExtension(x).ToLower())).ToArray();
            _windowRect = new Rect(20, 20, 240, Screen.height - 40);
        }
Esempio n. 3
0
 public AssetProviderBase(AssetLoaderBase owner, string assetName, System.Type assetType)
 {
     Owner     = owner;
     AssetName = assetName;
     AssetType = assetType;
     States    = EAssetStates.None;
     Handle    = new AssetOperationHandle(this);
 }
        private void CheckForAssimpAsset()
        {
            var extension = Path.GetExtension(AssetPath);

            if (string.IsNullOrEmpty(extension))
            {
                _isAssimpAsset = false;
            }
            _isAssimpAsset = AssetLoaderBase.IsExtensionSupported(extension);
        }
Esempio n. 5
0
            /// <summary>
            /// Handles "Load local asset button" click event and tries to load an asset at chosen path.
            /// </summary>
            private void LoadLocalAssetButtonClick()
            {
                var fileOpenDialog = FileOpenDialog.Instance;

                fileOpenDialog.Title  = "Please select a File";
                fileOpenDialog.Filter = AssetLoaderBase.GetSupportedFileExtensions() + "*.zip;";
#if (UNITY_WINRT && !UNITY_EDITOR_WIN)
                fileOpenDialog.ShowFileOpenDialog(delegate(byte[] fileBytes, string filename)
                {
                    LoadInternal(filename, fileBytes);
#else
                fileOpenDialog.ShowFileOpenDialog(delegate(string filename)
                {
#endif
                    LoadInternal(filename, null);
                }
                                                  );
            }
        /// <summary>
        /// Setups the Avatar Loader instance reference and fills the available files list.
        /// </summary>
        protected void Start()
        {
            _avatarLoader = FindObjectOfType <AvatarLoader>();
            if (_avatarLoader == null)
            {
                Debug.LogError("Could not find any Avatar Loader script instance.");
                return;
            }
#if UNITY_EDITOR
            var modelsPath = string.Format("{0}/Samples/{1}", TriLibProjectUtils.FindPathRelativeToProject("TriLibExtras", "t:DefaultAsset TriLibExtras"), ModelsDirectory);
#else
            var modelsPath = Path.Combine(Path.GetFullPath("."), ModelsDirectory);
#endif
            var supportedExtensions = AssetLoaderBase.GetSupportedFileExtensions();
            _files               = Directory.GetFiles(modelsPath, "*.*").Where(x => supportedExtensions.Contains("*" + FileUtils.GetFileExtension(x) + ";")).ToArray();
            _windowRect          = new Rect(20, 20, 240, Screen.height - 40);
            InformationText.text = string.Format(InformationText.text, ModelsDirectory, modelsPath);
        }
Esempio n. 7
0
            /// <summary>
            /// Handles "Load local asset button" click event and tries to load an asset at chosen path.
            /// </summary>
            private void LoadLocalAssetButtonClick()
            {
                var fileOpenDialog = FileOpenDialog.Instance;

                fileOpenDialog.Title  = "Please select a File";
                fileOpenDialog.Filter = AssetLoaderBase.GetSupportedFileExtensions() + "*.zip;";
#if !UNITY_EDITOR && UNITY_WINRT && (NET_4_6 || NETFX_CORE || NET_STANDARD_2_0) && !ENABLE_IL2CPP && !ENABLE_MONO
                fileOpenDialog.ShowFileOpenDialog(delegate(byte[] fileBytes, string filename)
                {
                    LoadInternal(filename, fileBytes);
#else
                fileOpenDialog.ShowFileOpenDialog(delegate(string filename)
                {
                    LoadInternal(filename);
#endif
                }
                                                  );
            }
Esempio n. 8
0
            /// <summary>
            /// Handles "Load local asset button" click event and tries to load an asset at chosen path.
            /// </summary>
            private void LoadLocalAssetButtonClick()
            {
#if !UNITY_EDITOR && UNITY_WEBGL
                ErrorDialog.Instance.ShowDialog("Please drag and drop your model files into the browser window.");
#else
                var fileOpenDialog = FileOpenDialog.Instance;
                fileOpenDialog.Title  = "Please select a File";
                fileOpenDialog.Filter = AssetLoaderBase.GetSupportedFileExtensions() + ";*.zip;";
#if !UNITY_EDITOR && UNITY_WINRT && (NET_4_6 || NETFX_CORE || NET_STANDARD_2_0)
                fileOpenDialog.ShowFileOpenDialog(delegate(byte[] fileBytes, string filename)
                {
                    LoadInternal(filename, fileBytes);
#else
                fileOpenDialog.ShowFileOpenDialog(delegate(string filename)
                {
                    LoadInternal(filename);
#endif
                }
                                                  );
#endif
            }
Esempio n. 9
0
        //Searches inside a path and returns the first path of an asset loadable by TriLib
        private string GetReadableAssetPath(string path)
        {
            var supportedExtensions = AssetLoaderBase.GetSupportedFileExtensions();

            foreach (var file in Directory.GetFiles(path))
            {
                var fileExtension = FileUtils.GetFileExtension(file);
                if (supportedExtensions.Contains(fileExtension))
                {
                    return(file);
                }
            }
            foreach (var directory in Directory.GetDirectories(path))
            {
                var assetPath = GetReadableAssetPath(directory);
                if (assetPath != null)
                {
                    return(assetPath);
                }
            }
            return(null);
        }
Esempio n. 10
0
            /// <summary>
            /// Handles "Load local asset button" click event and tries to load an asset at chosen path.
            /// </summary>
            private void LoadLocalAssetButtonClick()
            {
                var fileOpenDialog = FileOpenDialog.Instance;

                fileOpenDialog.Title  = "Please select a File";
                fileOpenDialog.Filter = AssetLoaderBase.GetSupportedFileExtensions();
#if (UNITY_WINRT && !UNITY_EDITOR_WIN)
                fileOpenDialog.ShowFileOpenDialog(delegate(byte[] fileBytes, string filename)
#else
                fileOpenDialog.ShowFileOpenDialog(delegate(string filename)
#endif
                {
                    PreLoadSetup();
                    var assetLoaderOptions = GetAssetLoaderOptions();
                    using (var assetLoader = new AssetLoader())
                    {
                        assetLoader.OnMetadataProcessed += AssetLoader_OnMetadataProcessed;
                        try
                        {
#if (UNITY_WINRT && !UNITY_EDITOR_WIN)
                            var extension   = FileUtils.GetFileExtension(filename);
                            _rootGameObject = assetLoader.LoadFromMemoryWithTextures(fileBytes, extension, assetLoaderOptions, _rootGameObject);
#else
                            _rootGameObject = assetLoader.LoadFromFile(filename, assetLoaderOptions);
#endif
                        }
                        catch (System.Exception exception)
                        {
                            ErrorDialog.Instance.ShowDialog(exception.ToString());
                        }
                    }
                    if (_rootGameObject != null)
                    {
                        PostLoadSetup();
                    }
                }
                                                  );
            }
            /// <summary>
            /// Stores a reference to all assets supported by TriLib located at "persistentDataPath".
            /// </summary>
            private void Start()
            {
                var filter = AssetLoaderBase.GetSupportedFileExtensions();

                _files = Directory.GetFiles(Application.persistentDataPath, "*.*").Where(x => filter.Contains("*" + FileUtils.GetFileExtension(x) + ";")).ToArray();
            }