34 lines
1.1 KiB
C#
34 lines
1.1 KiB
C#
using UnityEngine;
|
|
|
|
public class Highlighter : MonoBehaviour
|
|
{
|
|
public Renderer targetRenderer;
|
|
public Color highlightColor = Color.yellow;
|
|
public float outlineWidth = 0.1f; // Make this bigger for a thicker outline
|
|
|
|
private MaterialPropertyBlock propBlock;
|
|
private Color originalColor;
|
|
private float originalOutlineWidth;
|
|
|
|
void Awake()
|
|
{
|
|
if (targetRenderer == null)
|
|
targetRenderer = GetComponent<Renderer>();
|
|
propBlock = new MaterialPropertyBlock();
|
|
if (targetRenderer != null)
|
|
{
|
|
targetRenderer.GetPropertyBlock(propBlock);
|
|
originalColor = propBlock.GetColor("_OutlineColor");
|
|
originalOutlineWidth = propBlock.GetFloat("_OutlineWidth");
|
|
}
|
|
}
|
|
|
|
public void Highlight(bool on)
|
|
{
|
|
if (targetRenderer == null) return;
|
|
targetRenderer.GetPropertyBlock(propBlock);
|
|
propBlock.SetColor("_OutlineColor", on ? highlightColor : originalColor);
|
|
propBlock.SetFloat("_OutlineWidth", on ? outlineWidth : originalOutlineWidth);
|
|
targetRenderer.SetPropertyBlock(propBlock);
|
|
}
|
|
} |