CQ_Intelligent-Technology-T.../Assets/Improt/UTS/Scripts/Traffic Light/View Semaphores/TLGraphicsControl.cs

63 lines
1.4 KiB
C#

using System;
using UnityEngine;
public class TLGraphicsControl : MonoBehaviour
{
private Material greenMat;
private Material redMat;
[Header("Base Settings")]
[SerializeField] private Texture2D greenG;
[SerializeField] private Texture2D redG;
[SerializeField] private MeshRenderer mshG;
[SerializeField] private MeshRenderer mshR;
protected virtual void Awake()
{
greenMat = mshG.materials[1];
redMat = mshR.materials[1];
}
public virtual void ChangeGreen(bool greenState)
{
if(greenState)
{
greenMat.EnableKeyword("_EMISSION");
greenMat.SetTexture("_EmissionMap", greenG);
}
else
{
greenMat.DisableKeyword("_EMISSION");
}
}
public void ChangeRed(bool redState)
{
if(redState)
{
if (redMat == null)
{
redMat = mshR.materials[1];
}
redMat.EnableKeyword("_EMISSION");
redMat.SetTexture("_EmissionMap", redG);
}
else
{
redMat.DisableKeyword("_EMISSION");
}
}
public void ChangeGreenEmission(bool enable)
{
if (enable)
{
greenMat.EnableKeyword("_EMISSION");
}
else
{
greenMat.DisableKeyword("_EMISSION");
}
}
}