Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- using Assimp;
- using Assimp.Configs;
- using AssimpLoader;
- using System.IO;
- public class SceneLoader2 : MonoBehaviour {
- private const int LoaderWindowID = 1;
- private const int OutputWindowId = 2;
- private AssimpLoaderOptions _assimpLoaderOptions;
- private GameObject _rootGameObject;
- private string _supportedFileFormats;
- private bool _spin;
- private List<string> _errorList = new List<string>();
- private Vector2 _scrollPositionLoader;
- private Vector2 _scrollPositionConsole;
- protected void Awake()
- {
- LoadSupportedImportFormats();
- SetupAssimpLoader();
- }
- protected void Update() {
- if (_rootGameObject != null && _spin) {
- _rootGameObject.transform.Rotate(0f, 20f * Time.deltaTime, 0f, Space.World);
- }
- }
- protected void OnGUI()
- {
- GUILayout.Window(LoaderWindowID, new Rect(0, 0, 200, 0), WindowFunction, "Asset Loader");
- GUILayout.Window(OutputWindowId, new Rect(200, Screen.height - 200, Screen.width - 200, 200), WindowFunction, "Output");
- }
- private void SetupAssimpLoader()
- {
- _assimpLoaderOptions = new AssimpLoaderOptions() {
- DontLoadCameras = true
- };
- }
- private void LoadSupportedImportFormats()
- {
- var supportedFileFormatsArray = AssimpLoader.AssimpLoader.GetSupportedImportFormats();
- _supportedFileFormats = "Everything|*.*";
- for (var f = 0; f < supportedFileFormatsArray.Length; f++)
- {
- var supportedFileFormat = supportedFileFormatsArray[f];
- _supportedFileFormats += "|" + supportedFileFormat.Substring(1) + "|*" + supportedFileFormat;
- }
- }
- private void WindowFunction (int windowID) {
- if (windowID == LoaderWindowID) {
- GUILayout.BeginVertical();
- GUILayout.Space(20);
- if (GUILayout.Button("Load Asset")) {
- var openFileDialog = new System.Windows.Forms.OpenFileDialog();
- openFileDialog.Filter = _supportedFileFormats;
- openFileDialog.Title = "Load Asset";
- if (openFileDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK) {
- _errorList.Clear();
- var filename = openFileDialog.FileName;
- if (_rootGameObject != null) {
- DestroyImmediate(_rootGameObject);
- }
- var assimpLoader = new AssimpLoader.AssimpLoader();
- //try {
- _rootGameObject = assimpLoader.LoadFromFile(openFileDialog.FileName, _assimpLoaderOptions);
- UnityEngine.Camera.main.FitToBounds(_rootGameObject.transform, 2f);
- _errorList.Add("Success");
- //} catch (System.Exception exception) {
- // _errorList.Add(exception.ToString());
- // _rootGameObject = null;
- //}
- }
- }
- GUILayout.Space(20);
- _assimpLoaderOptions.DontLoadCameras = GUILayout.Toggle(_assimpLoaderOptions.DontLoadCameras, "Don't Load Cameras");
- _assimpLoaderOptions.DontLoadLights = GUILayout.Toggle(_assimpLoaderOptions.DontLoadLights, "Don't Load Lights");
- _spin = GUILayout.Toggle(_spin, "Spin");
- GUILayout.Space(20);
- if (_rootGameObject != null) {
- var unityAnimation = _rootGameObject.GetComponent<UnityEngine.Animation>();
- if (unityAnimation != null) {
- GUILayout.Label("Animations");
- if (GUILayout.Button("Stop")) {
- unityAnimation.Stop();
- }
- GUILayout.Space(20);
- _scrollPositionLoader = GUILayout.BeginScrollView(_scrollPositionLoader, GUILayout.Height(300));
- foreach (AnimationState animationState in unityAnimation) {
- if (GUILayout.Button(animationState.name)) {
- unityAnimation.CrossFade(animationState.name);
- }
- }
- GUILayout.EndScrollView();
- GUILayout.Space(20);
- }
- }
- GUILayout.EndVertical();
- } else if (windowID == OutputWindowId) {
- _scrollPositionConsole = GUILayout.BeginScrollView(_scrollPositionConsole);
- foreach (var item in _errorList) {
- GUILayout.Label(item);
- }
- GUILayout.EndScrollView();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement