36 lines
942 B
C#
36 lines
942 B
C#
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
|
|
public class EmissiveLightMatching : MonoBehaviour
|
|
{
|
|
[SerializeField] private List<int> indexes;
|
|
|
|
[SerializeField] private Light reference;
|
|
|
|
private readonly List<Color> colors = new();
|
|
private float initIntensity;
|
|
|
|
private void Awake()
|
|
{
|
|
initIntensity = reference.intensity;
|
|
}
|
|
|
|
// Start is called before the first frame update
|
|
private void Start()
|
|
{
|
|
foreach (var index in indexes)
|
|
colors.Add(gameObject.GetComponent<MeshRenderer>().materials[index].GetColor("_EmissiveColor"));
|
|
}
|
|
|
|
// Update is called once per frame
|
|
private void Update()
|
|
{
|
|
var x = 0;
|
|
foreach (var i in indexes)
|
|
{
|
|
gameObject.GetComponent<MeshRenderer>().materials[i].SetColor("_EmissiveColor",
|
|
colors[x] * (10 * reference.intensity / initIntensity));
|
|
x++;
|
|
}
|
|
}
|
|
} |