Beispiel #1
0
        // This method defines the way in which renderers are initialized
        private void UpdateRenderers()
        {
            if (renderersDirty)
            {
                ClearRenderers();

                // Find all renderers which should be controlled with this Highlighter component
                List <Renderer> renderers = new List <Renderer>();
                GrabRenderers(tr, renderers);

                // Cache found renderers
                for (int i = 0, imax = renderers.Count; i < imax; i++)
                {
                    GameObject          rg       = renderers[i].gameObject;
                    HighlighterRenderer renderer = rg.GetComponent <HighlighterRenderer>();
                    if (renderer == null)
                    {
                        renderer = rg.AddComponent <HighlighterRenderer>();
                    }
                    renderer.SetState(true);

                    renderer.Initialize(opaqueMaterial, transparentShader, cachedSeeThrough);
                    highlightableRenderers.Add(renderer);
                }

                renderersDirty = false;
            }
        }
        // This method defines how renderers are initialized
        private void UpdateRenderers()
        {
            if (isDirty)
            {
                isDirty = false;

                ClearRenderers();

                // Find all renderers which should be highlighted with this HighlighterCore component instance
                GrabRenderers(tr);

                // Cache found renderers
                for (int i = 0, imax = sRendererData.Count; i < imax; i++)
                {
                    RendererData rendererData = sRendererData[i];
                    GameObject   rg           = rendererData.renderer.gameObject;

                    HighlighterRenderer renderer = rg.GetComponent <HighlighterRenderer>();
                    if (renderer == null)
                    {
                        renderer = rg.AddComponent <HighlighterRenderer>();
                    }
                    renderer.isAlive = true;

                    renderer.Initialize(opaqueMaterial, transparentShader, rendererData.submeshIndices);
                    renderer.SetOverlay(cachedOverlay);
                    renderer.SetColor(cachedColor);
                    highlightableRenderers.Add(renderer);
                }

                // Release RendererData instances
                for (int i = 0; i < sRendererData.Count; i++)
                {
                    ReleaseRendererDataInstance(sRendererData[i]);
                }
                sRendererData.Clear();
            }
        }