розовый означает "у меня нет материала"
Вот, вероятно, где ваша проблема:
filter.GetComponent<MeshRenderer>().material.color = Color.white;
устанавливает цвет материала на сетке визуализации.
Вы должны сначала дать материалу рендеринга сетки. Попробуйте это:
MeshRenderer renderer = gameObject.AddComponent<MeshRenderer>();
MeshFilter filter = gameObject.AddComponent<MeshFilter>();
Material = mathew; //---This is our material, mathew.
mathew = new Material(Shader.Find("Standard")); //--- first we construct mathew
mathew.color = color.white; //--- then we give mathew some color
filter.GetComponent<MeshFilter>().transform.localScale = new
Vector3(0.0009f, 0.0009f, 0.0009f);
filter.GetComponent<MeshRenderer>().material = mathew; //finally we attach mathew to his new friend, MeshRenderer.
Существует более простой способ сделать это, используя публичные переменные, но кажется, что вы генерируете все свои вещи на лету. Так что я пошел с этим.
Дайте мне знать, работает это или нет. Удачи!