public ResSFXEditor() { m_realtimeMode = true; m_elementsCtrl = new List <SFXElement>(); InitializeComponent(); m_res = NResourceManager.Instance.NewSpecialEffect("DefaultSFXRes"); m_preview = new ResourcePreview("ResSFXPreview_LV"); m_preview.ShowSpecialEffect(m_res); this.splitContainerV.Panel1.Controls.Add(m_preview); this.splitContainerH.Panel2.Enabled = true; NControl.NCurveEditorCtrl curveCtrl = new NexusEditor.NControl.NCurveEditorCtrl(); this.groupBoxCurve.Controls.Add(curveCtrl); curveCtrl.Dock = DockStyle.Fill; //-- 根据特效元素子类型,创建菜单内容 System.Collections.ArrayList nativeClassList = NEffectElement.GetNativeClassNameList(); foreach (String className in nativeClassList) { ToolStripItem menuItem = this.contextMenuStripCreate.Items.Add("new " + className); menuItem.Tag = className; menuItem.Click += new EventHandler(effectMenuItem_Click); } //-- 取得所有Distribution相关的class m_distributionClasses = new List <Type>(); Type baseDistType = typeof(NexusEngine.NDistribution); Assembly engineDll = baseDistType.Assembly; foreach (Type t in engineDll.GetTypes()) { if (t.IsSubclassOf(baseDistType) && !t.IsAbstract) { m_distributionClasses.Add(t); } } m_Timeline.TooltipDelegate = this.OnTimelineTooltip; }
public void ShowSpecialEffect(NResourceSpecialEffect sfx) { try { m_level.DestroyAllActors(); //-- create a actor for SFX NActor sfxActor = m_level.CreateActor("SFXActor", "nactor"); NActorComponent comp = sfxActor.CreateComponent("SFXComp", "nspecial_effect_instance"); NSpecialEffectInstance sfxComp = comp as NSpecialEffectInstance; sfxComp.ResetResource(sfx); sfxComp.Play(); m_resActorComp = sfxComp; } catch (System.Exception e) { NexusEditor.Program.ShowException(e, "SFX Preview Open FAILED!"); } }