protected void RefreshCachedRenderers() { if (highlightMeshRenderer != null && renderers != null && renderers.Any()) { return; } if (highlightMeshRenderer == null) { GenerateHighlightRenderer(); } else { highlightMeshRenderer.enabled = false; highlightMeshRenderer.gameObject.SetActive(false); } renderers = HighlightUtils.FindAllIncludedRenderer(gameObject); if (renderers == null || renderers.Any() == false) { throw new NullReferenceException($"{name} has no renderers to be highlighted."); } highlightMeshFilter.mesh = HighlightUtils.GeneratePreviewMesh(gameObject, renderers); }
/// <summary> /// Creates a highlight material with given texture. /// </summary> protected virtual Material CreateHighlightMaterial(Texture mainTexture) { Shader shader = HighlightUtils.GetDefaultHighlightShader(); Material material = new Material(shader) { mainTexture = mainTexture }; return(material); }
/// <summary> /// Creates a highlight material with given color. /// </summary> protected virtual Material CreateHighlightMaterial(Color highlightColor) { return(HighlightUtils.CreateDefaultHighlightMaterial(highlightColor)); }