У меня есть два сборника в моем Assert; в моей сцене у меня есть экземпляры двух сборных. Я пытаюсь изменить цвет всех экземпляров одного prefab нажатием кнопки, но я получаю, что цвет всех экземпляров двух надстроек изменяется. Как я могу указать сборку для изменения внутри определенной функции? Я предполагаю, что gameObject ссылается на все объекты gameObjects в моей сцене и, вероятно, именно поэтому все экземпляры меняют цвет.Изменить цвет экземпляров prefab
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
Предложение: Отправьте свой вопрос о том, как вы сделали работу в качестве ответа на свой вопрос. – starbeamrainbowlabs