private void Start() { m_outlineEffect = Camera.gameObject.AddComponent <OutlineEffect>(); m_editor = IOC.Resolve <IRTE>(); TryToAddRenderers(m_editor.Selection); m_editor.Selection.SelectionChanged += OnRuntimeEditorSelectionChanged; RTEComponent rteComponent = GetComponentInParent <RTEComponent>(); if (rteComponent != null) { m_sceneWindow = rteComponent.Window; if (m_sceneWindow != null) { m_sceneWindow.IOCContainer.RegisterFallback <IOutlineManager>(this); } } if (RenderPipelineInfo.Type != RPType.Standard) { Debug.Log("OutlineManager is not supported"); Destroy(this); } }
private void CreateGizmo() { if (m_gizmo != null) { Destroy(m_gizmo); m_gizmo = null; } if (m_lightType == LightType.Point) { if (m_gizmo == null) { m_gizmo = gameObject.AddComponent <PointLightGizmo>(); } } else if (m_lightType == LightType.Spot) { if (m_gizmo == null) { m_gizmo = gameObject.AddComponent <SpotlightGizmo>(); } } else if (m_lightType == LightType.Directional) { if (m_gizmo == null) { m_gizmo = gameObject.AddComponent <DirectionalLightGizmo>(); } } m_gizmo.Window = Window; }
protected override void OnDestroy() { base.OnDestroy(); if (m_gizmo != null) { Destroy(m_gizmo); m_gizmo = null; } }
protected virtual void OnWindowUnregistered(RuntimeWindow window) { if (window.WindowType == RuntimeWindowType.Scene && m_gizmos != null) { List <Component> gizmos = m_gizmos.ToList(); for (int i = gizmos.Count - 1; i >= 0; i--) { RTEComponent rteComponent = gizmos[i] as RTEComponent; if (rteComponent != null && rteComponent.Window == window) { DestroyImmediate(rteComponent); gizmos.RemoveAt(i); } } m_gizmos = gizmos.ToArray(); } }
protected virtual void TryCreateGizmos(IComponentDescriptor componentDescriptor, List <Component> gizmos, RuntimeWindow window) { if (componentDescriptor != null && componentDescriptor.GizmoType != null && IsComponentEnabled && Expander.isOn) { for (int j = 0; j < Components.Length; ++j) { Component component = Components[j]; if (component != null) { Component gizmo = component.gameObject.AddComponent(componentDescriptor.GizmoType); if (gizmo is RTEComponent) { RTEComponent baseGizmo = (RTEComponent)gizmo; baseGizmo.Window = window; } gizmo.SendMessageUpwards("Reset", SendMessageOptions.DontRequireReceiver); gizmos.Add(gizmo); } } } }