Exemplo n.º 1
0
        void RenderLoop(int stagedLayer, SortingType sortType, bool clear, bool useGroupColor, Color overrideColor)
        {
            if (!useGroupColor)
            {
                Shader.SetGlobalColor(_Color, overrideColor);
            }


            bool clearedCamera = false;

            for (int i = 0; i < highlightGroups.Count; i++)
            {
                HighlightGroup group = highlightGroups[i];
                if (group.sortingType == sortType)
                {
                    TempCam.clearFlags = clearedCamera || !clear ? CameraClearFlags.Nothing : CameraClearFlags.Color;
                    // if (clear) {
                    // }

                    clearedCamera = true;

                    if (useGroupColor)
                    {
                        Shader.SetGlobalColor(_Color, group.highlightColor);
                    }

                    group.Stage(stagedLayer);
                    TempCam.RenderWithShader(DrawSimple, "");
                    group.Unstage();
                }
            }
        }
Exemplo n.º 2
0
        // we need this for the depth mask
        void RenderSceneWithoutHighlights(int stagedLayer)
        {
            //clear before we start renedering
            TempCam.clearFlags = CameraClearFlags.Color;

            //cull all highlighted renderers
            TempCam.cullingMask = ~(1 << stagedLayer);

            Shader.SetGlobalColor(_Color, Color.clear);

            StageAll(stagedLayer);
            TempCam.RenderWithShader(DrawSimple, "");
            UnstageAll();

            //cull eveyrthing but highlighted renderers
            TempCam.cullingMask = 1 << stagedLayer;
        }