Почему не изменяется цвет материала префаба объекта?

Делая 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.

Я не понимаю в чем дело. Буду рад любой помощи.


Ответы (0 шт):