Почему не изменяется цвет материала префаба объекта?
Делая 3д игру на unity я столкнулся с проблемой, при спавне объекта и последующем изменении цвета его изначального материала в Mesh Renderer цвет у материала не изменяется, хотя в инспекторе объекта его материал с измененным цветом отображается.
Вот фрагмент кода:
[SerializeField]
GameObject obj;
[SerializeField]
Transform spawner;
[SerializeField]
float delay;
void Start()
{
StartCoroutine(ObjSpawn(delay));
}
IEnumerator ObjSpawn(float time)
{
while (true)
{
yield return new WaitForSeconds(time);
GameObject currentObj = Instantiate(obj, spawner.position, spawner.rotation);
MeshRenderer objRenderer = currentObj.GetComponent<MeshRenderer>();
if (objRenderer != null)
{
Color objColor = new Color(Random.Range(0f, 1f), Random.Range(0f, 1f), Random.Range(0f, 1f));
objRenderer.material.color = objColor;
Debug.Log("obj material color changed.");
}
else
{
Debug.LogError("obj renderer is null!");
}
}
}
Изменено: фрагмент кода периодично спавнит объект(его префаб) через определенный промежуток времени изменяя цвет его материала в компоненте MeshRenderer.
Я не понимаю в чем дело. Буду рад любой помощи.