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);
            }
        }
示例#2
0
        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;
        }
示例#3
0
        protected override void OnDestroy()
        {
            base.OnDestroy();

            if (m_gizmo != null)
            {
                Destroy(m_gizmo);
                m_gizmo = null;
            }
        }
示例#4
0
        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();
            }
        }
示例#5
0
        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);
                    }
                }
            }
        }