我正在动态创建一个预制件并尝试在子游戏对象上设置一堆属性。其中一个属性是纹理,尽管纹理确实显示为预制件的子项(与 GameObject 和 Mesh 一样),但 GameObject 上的 MeshRenderer 仍然没有显示任何材质,并且整个网格显示为粉红色。这是我的代码:
Texture2D sharedTexture = (Texture2D)Resources.Load ("mainTexture", typeof(Texture2D));
string prefabPath = basepath + filename + ".prefab";
UnityEngine.Object prefab = PrefabUtility.CreateEmptyPrefab (prefabPath);
GameObject root = new GameObject ("Zone_" + filename);
GameObject temp = new GameObject(filename);
Texture2D texCopy = (Texture2D)UnityEngine.Object.Instantiate (sharedTexture);
MeshFilter meshFilter = (MeshFilter)temp.AddComponent<MeshFilter> ();
MeshRenderer meshRenderer = temp.AddComponent<MeshRenderer> ();
MeshCollider meshCollider = (MeshCollider)temp.AddComponent<MeshCollider> ();
temp.AddComponent<Zone> ();
Mesh mesh = buildMeshForFilename (filename);
mesh.name = "Zone_Mesh";
meshFilter.mesh = mesh;
meshCollider.sharedMesh = mesh;
meshRenderer.material.mainTexture = texCopy;
temp.transform.parent = root.transform;
AssetDatabase.AddObjectToAsset(mesh, prefabPath);
AssetDatabase.AddObjectToAsset (texCopy, prefabPath);
PrefabUtility.ReplacePrefab(root, prefab, ReplacePrefabOptions.ConnectToPrefab);
AssetDatabase.SaveAssets ();
GameObject.Destroy (root);
我如何让纹理显示在网格上,所以它不仅仅是粉红色的?