下記のエラーがでコンソールに出てプレハブのマテリアルを設定できない時の解決方法を紹介します。
Not allowed to access Renderer.material on prefab object. Use Renderer.sharedMaterial instead UnityEngine.Renderer:get_material ()
[ 解決方法 ]
このエラーは、Resourcesにあるプレハブをインスタンス化する前にそのプレハブのマテリアルを設定しようとすると発生します。
解決方法は簡単で、インスタンス化してからマテリアルを設定すれば良いだけです。
using System.Collections; using System.Collections.Generic; using UnityEngine; public class ScriptTest : MonoBehaviour { void Start() { //これだとエラーが出ます。 //GameObject Cube = (GameObject)Resources.Load("Cube"); //Cube.transform.GetComponent<MeshRenderer>().material.color = Color.red; //これだとエラー出ません。 GameObject Cube = Instantiate((GameObject)Resources.Load("Cube")); Cube.transform.GetComponent<MeshRenderer>().material.color = Color.red; } }