Outline-Effect icon indicating copy to clipboard operation
Outline-Effect copied to clipboard

Outline doesn't work on AddComponent

Open Maesla opened this issue 3 years ago • 2 comments

If you add outline after start, it doesn't work.

Steps

  1. Setup the camera with Outline Effect
  2. Add a cube to the scene
  3. Press play
  4. Add Outline component to the cube
  5. Verify that the outline is not visible

Cause

IsVisible = false although actually is visible. OnBecameVisible event is the event used to change the value of that flag. Because this event was already triggered, when you add the Outline component, the value visible doesn't change because the event was fired before

Fix

Possibly, do some checks at OnEnable and decide if this object is visible or not

Workarround

Forcing the mesh to disable/enable triggers again OnBecameVisible event

            public void AddOutline(GameObject go)
            {
                var outline = go.AddComponent<Outline>();
                bool isRendererEnabled = outline.Renderer.enabled;
                if (isRendererEnabled)
                {
                    outline.Renderer.enabled = false;
                    outline.Renderer.enabled = true;
                }
            }

Maesla avatar Apr 19 '21 09:04 Maesla

Thank you for this workaround, it worked great for me!

MattRix avatar May 01 '23 02:05 MattRix