0
我想实例化四个新的gameobject。我想分配从Web服务器接收的四种材料。现在,我可以创建四种材质并将图像存储到它们中。但是,我无法改变这四个gameobject材质。例如,我想更改第一个gameobject材质是image0,然后第二个gameobject是image1,依此类推。任何人都可以帮助我?这里是我的代码:在运行时更改GameObject的素材
public int k = 0;
public string filename;
public string url;
public string path;
public GameObject newpaper;
public Material material;
public GameObject newObject ;
[MenuItem("GameObject/Create Material")]
void Start() {
StartCoroutine (LoadImage());
}
void Update() {
GetComponent<Renderer>().material = material;
}
IEnumerator LoadImage(){
for (int i = 0; i < 4; i++) {
Instantiate (newpaper);
filename = "image" + k.ToString() + ".png";
Debug.Log (k);
url = "https://wwwfoodparadisehk.000webhostapp.com/" + filename;
WWW www = new WWW (url);
yield return www;
path = "Assets/MyMaterial" + k.ToString() + ".mat";
k = k + 1;
material = new Material (Shader.Find ("Sprites/Default"));
AssetDatabase.CreateAsset (material, path);
Debug.Log (AssetDatabase.GetAssetPath (material));
material.mainTexture = www.texture;
//GetComponent<Renderer>().material = material;
yield return 0;
}
}
还有另外一个问题。 gameobject newpaper有父母,它是飞机。我想改变平面材质。我该如何改变它? – HappyChan
您可以使用'newPaperInstance.transform.parent.gameObject'访问gameObject的父级,然后访问它的'Renderer'组件并更改其材质。 :) –
你能为我编辑代码吗?我做不到。我不知道脚本粘贴正确。 – HappyChan