public void GetGeometries( ) { if (this.fbxsdk == FBX.SDK2010) { UniFBXGeometry.indexes = Enumerable.Range(0, UniFBX.list.Count).Where(x => list[x].Contains(", \"Mesh\" {")).ToList(); } else { UniFBXGeometry.indexes = Enumerable.Range(0, UniFBX.list.Count).Where(x => list[x].Contains("\"Geometry::") && list[x].Contains("Mesh")).ToList(); } switch (this.setting.paths.runnningMethode) { case RunnningMethode.MainThread: ugeometries1 = new UniFBXGeometries(); ugeometries1.Init(this.setting, 1); break; #if (!UNITY_WEBPLAYER && !UNITY_WEBGL) case RunnningMethode.AsyncThread: if (this.setting.paths.maxThreads > 3) { ugeometries1 = new UniFBXGeometries(); ugeometries1.Init(this.setting, 1); ugeometries2 = new UniFBXGeometries(); ugeometries2.Init(this.setting, 2); ugeometries3 = new UniFBXGeometries(); ugeometries3.Init(this.setting, 3); } else if (this.setting.paths.maxThreads == 3) { ugeometries1 = new UniFBXGeometries(); ugeometries1.Init(this.setting, 1); ugeometries2 = new UniFBXGeometries(); ugeometries2.Init(this.setting, 2); } else { ugeometries1 = new UniFBXGeometries(); ugeometries1.Init(this.setting, 1); } break; #endif default: ugeometries1 = new UniFBXGeometries(); ugeometries1.Init(this.setting, 1); break; } }
protected virtual void Dispose(bool disposing) { if (!this.disposed) { if (disposing) { this.content = null; if (UniFBX.list != null) { UniFBX.list.Clear(); } if (UniFBX.meshes != null) { UniFBX.meshes.Clear(); } if (this.models != null) { this.models.Clear(); } if (this.materialProp70 != null) { this.materialProp70.Clear(); } if (this.uanimations != null) { this.uanimations.Finish(); } UniFBX.list = null; UniFBX.meshes = null; this.models = null; this.materialProp70 = null; this.ulayeredTextures = null; this.ugeometries1 = null; this.ugeometries2 = null; this.ugeometries3 = null; this.umodels = null; this.umaterials = null; this.utextures = null; this.ulayeredTextures = null; this.uanimations = null; this.ulights = null; this.ucameras = null; } } this.disposed = true; }
public void Dispose( ) { this.content = null; if (UniFBX.list != null) { UniFBX.list.Clear(); } if (UniFBX.meshes != null) { UniFBX.meshes.Clear(); } if (this.models != null) { this.models.Clear(); } if (this.materialProp70 != null) { this.materialProp70.Clear(); } if (this.uanimations != null) { this.uanimations.Finish(); } UniFBX.list = null; UniFBX.meshes = null; this.models = null; this.materialProp70 = null; this.ulayeredTextures = null; this.ugeometries1 = null; this.ugeometries2 = null; this.ugeometries3 = null; this.umodels = null; this.umaterials = null; this.utextures = null; this.ulayeredTextures = null; this.uanimations = null; this.ulights = null; this.ucameras = null; }
public void Add(GameObject o, UniFBXGeometries ugeometries1, UniFBXGeometries ugeometries2, UniFBXGeometries ugeometries3, FBXSetting setting, int geometryIndex) { StartCoroutine(this.IAdd(o, ugeometries1, ugeometries2, ugeometries3, setting, geometryIndex)); }
private IEnumerator IAdd(GameObject o, UniFBXGeometries ugeometries1, UniFBXGeometries ugeometries2, UniFBXGeometries ugeometries3, FBXSetting setting, int geometryIndex) { if (ugeometries1 != null) { while (!ugeometries1.IsDone) { yield return(null); } } if (ugeometries2 != null) { while (!ugeometries2.IsDone) { yield return(null); } } if (ugeometries3 != null) { while (!ugeometries3.IsDone) { yield return(null); } } Mesh mesh = null; if (UniFBX.meshes.ContainsKey(geometryIndex)) { mesh = UniFBX.meshes[geometryIndex]; } if (mesh != null) { MeshFilter mf = o.AddComponent <MeshFilter> (); mf.mesh = mesh; mf.mesh.name = o.name; MeshRenderer mr = o.AddComponent <MeshRenderer> (); mr.enabled = setting.meshes.rendererOnLoad; mr.materials = new Material[mf.mesh.subMeshCount]; for (int i = 0; i < mr.materials.Length; i++) { #if UNITY_5 if (setting.materials.shaderType == ShaderType.Standard) { if (setting.materials.standardMaterial) { mr.materials[i].CopyPropertiesFromMaterial(setting.materials.standardMaterial); } } else if (setting.materials.shaderType == ShaderType.Legacy) { #else if (setting.materials.shaderType == ShaderType.Legacy) { #endif if (setting.textures.normalmaps) { #if UNITY_5 mr.materials[i].shader = Shader.Find("Legacy Shaders/Bumped Diffuse"); #else mr.materials[i].shader = Shader.Find("Bumped Diffuse"); #endif } else { #if UNITY_5 mr.materials[i].shader = Shader.Find("Legacy Shaders/Diffuse"); #else mr.materials[i].shader = Shader.Find("Diffuse"); #endif } } mr.materials[i].name = "0"; if (setting.materials.materialImported == Imported.No) { mr.materials[i].color = setting.materials.colorDefault; } yield return(null); } switch (setting.meshes.colliderType) { case ColliderType.Box: o.AddComponent <BoxCollider> (); break; case ColliderType.Mesh: o.AddComponent <MeshCollider> (); break; case ColliderType.Sphere: o.AddComponent <SphereCollider> (); break; } } UniFBXGeometry.Count++; DestroyImmediate(this); } }