private bool ResetResource(string confirmTxt) { if (m_resStaticMesh != null && confirmTxt.Length > 0) { if (DialogResult.OK != MessageBox.Show(this, confirmTxt, "Please Confirm", MessageBoxButtons.OKCancel)) { return(false); } } //-- m_preview.Reset(); if (m_resStaticMesh != null) { m_resStaticMesh.Dispose(); m_resStaticMesh = null; } m_prop = null; this.propertyGridMtl.SelectedObject = null; this.propertyGridRes.SelectedObject = null; this.comboBoxLOD.Items.Clear(); this.comboBoxSection.Items.Clear(); return(true); }
//加载静态模型并将当前材质赋给模型 public void LoadStaticMesh(string pkg, string file) { try { using (NexusEngineExtension.NWaitCursor wc = new NexusEngineExtension.NWaitCursor(this)) { NResourceLoc resLoc = new NResourceLoc(pkg, file); m_resStaticMesh = NResourceManager.Instance.LoadStaticMesh( resLoc, EResourceIOMode.Block, EResourceIOPriority.Normal ); for (int i = 0; i < m_resStaticMesh.GetNumLOD(); ++i) { for (int j = 0; j < m_resStaticMesh.GetNumSection(i); ++j) { m_resStaticMesh.ImportSetMaterial(i, j, m_Material); } } m_preview.ShowStaticMesh(m_resStaticMesh); m_Sphere = null; } } catch (System.Exception ex) { NexusEditor.Program.ShowException(ex, "Load Static Mesh FAILED"); } }
public void LoadStaticMesh(string pkg, string file) { try { using (NexusEngineExtension.NWaitCursor wc = new NexusEngineExtension.NWaitCursor(this)) { NResourceLoc resLoc = new NResourceLoc(pkg, file); m_resStaticMesh = NResourceManager.Instance.LoadStaticMesh( resLoc, EResourceIOMode.Block, EResourceIOPriority.Normal ); m_prop = new ResStaticMeshProperty(m_resStaticMesh); this.propertyGridRes.SelectedObject = m_prop; m_preview.ShowStaticMesh(m_resStaticMesh); RefreshLOD(); } } catch (System.Exception ex) { NexusEditor.Program.ShowException(ex, "Load Static Mesh FAILED"); } }
public void LoadSphere() { m_Sphere = m_preview.ShowSphereShapeComponent(500, 18, 18); if (m_Material != null) { m_Sphere.SetMaterial(m_Material); } m_resStaticMesh = null; }
public new void Close() { if (m_resStaticMesh != null) { m_resStaticMesh.Dispose(); m_resStaticMesh = null; } m_preview.Dispose(); m_finalClose = true; base.Close(); }
public StaticMeshMaterialProperty(NResourceStaticMesh res, int lod, int sec) { m_Res = res; m_Lod = lod; m_Section = sec; if (m_Res != null) { NMtlBase mtl = m_Res.GetMaterial(m_Lod, m_Section); if (mtl != null) { m_Loc = new NResourceLoc(mtl.Name); } } }
public void LoadStaticMesh(NResourceLoc loc) { m_level.DestroyAllActors(); try { NResourceStaticMesh res = NResourceManager.Instance.LoadStaticMesh(loc, EResourceIOMode.Block, EResourceIOPriority.Normal); this.ShowStaticMesh(res); } catch (System.Exception e) { NexusEditor.Program.ShowException(e, "Static Mesh Preview Load FAILED!"); } }
private void CreateResource() { ResetResource(""); // 产生一个不重复的名称 string resName = "NewStaticMesh"; resName += DateTime.Now.ToFileTime(); // 创建空白资源和内部数据 m_resStaticMesh = NResourceManager.Instance.NewStaticMesh(resName); m_prop = new ResStaticMeshProperty(m_resStaticMesh); // 更新界面 RefreshLOD(); m_preview.ShowStaticMesh(m_resStaticMesh); }
public override void PostCreateActor(NexusEngine.NActor actor) { base.PostCreateActor(actor); //创建显示用部件 NResourceLoc res = new NResourceLoc("engine_data", "/resource_default/skydome.nmdl"); NResourceStaticMesh mesh = NResourceManager.Instance.LoadStaticMesh(res, EResourceIOMode.Auto, EResourceIOPriority.Normal); if (mesh == null) { return; } actor.Frozen = true; NActorComponent comp = actor.CreateComponent("SkyComponent", "nsky_component"); NSkyComponent meshComp = comp as NSkyComponent; meshComp.ResetResource(res); }
public void ShowStaticMesh(NResourceStaticMesh mesh) { try { m_level.DestroyAllActors(); //-- create a actor for mesh NActor meshActor = m_level.CreateActor("StaticMeshActor", "nactor"); NActorComponent comp = meshActor.CreateComponent("MeshComp", "nstatic_mesh_component"); NStaticMeshComponent meshComp = comp as NStaticMeshComponent; meshComp.ResetResource(mesh); m_actorBox = meshComp.GetBoundingBox(); //-- add default light AddDefaultLight(); } catch (System.Exception e) { NexusEditor.Program.ShowException(e, "Static Mesh Preview Open FAILED!"); } }
public ResStaticMeshProperty(NResourceStaticMesh res) : base(res) { }