我在Assert中有两个预制件;在我的场景中,我有两个预制件的实例。我试图用按钮单击来改变一个预制件的所有实例的颜色,但是我得到的结果是两个预制件的所有实例的颜色都改变了。我如何指定在特定功能内更改预制件?我猜gameObject是指我场景中的所有gameObjects,可能这就是为什么所有的实例都会改变颜色。更改预制实例的颜色
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class eventSensors : MonoBehaviour {
// Use this for initialization
void Start() {
}
// Update is called once per frame
void Update() {
}
public void tempSensor() {
print("estas en la funcuion de tempSensor");
// this.gameObject.GetComponent<Renderer>().material.color = Color.red;
//gameObject.GetComponent<Renderer>().sharedMaterial.color = Color.red;
var prefab= Instantiate(gameObject, transform.position, transform.rotation);
prefab.GetComponent<Renderer>().material.SetColor("_Color", Color.red);
}
public void lightSensor()
{
print("estas en la funcuion de lightSensor");
gameObject.GetComponent<Renderer>().sharedMaterial.color = Color.green;
}
//Sent to all game objects before the application is quit
//this is called when the user stops playmode.
private void OnApplicationQuit()
{
//reset all prefab color to default
gameObject.GetComponent<Renderer>().sharedMaterial.color = Color.white;
}
}
是的,我只有一个单一的材料文件夹中的proyect –
无需创建多个材料:看我的答案。 – Kardux
建议:发布你的问题,关于你如何使ti工作作为你的问题的答案。 – starbeamrainbowlabs