Я создал скрипт C#, который устанавливает цвет для моих объектов (в данном случае плитки). Проблема заключается в том, что он устанавливает цвет для нескольких объектов, а не только для одного объекта. у кого-нибудь есть решение? Люди, которые знают javascript, также могут ответить.Сценарий устанавливает цвет для нескольких объектов из пустого GameObject вместо цвета для child/children и isnt random
EDIT: Я немного обновил свой код. Я хочу сделать вещи более ясными. У меня есть 16 объектов (плитка), которые являются дочерьми одного пустого игрового объекта (плитки). Каждые 1,5 с (например) Я хочу, чтобы только одна плитка меняла цвет, случайным образом.
EDIT Я обновил свой вопрос и разместил решение/скрипт в ответе ниже.
private float timer = 0.0f;
Color red = Color.red;
Color blue = Color.blue;
Color green = Color.green;
Color white = Color.white;
public Transform tiles;
void Update()
{
timer += Time.deltaTime;
if (timer >= 1.5f)//change the float value here to change how long it takes to switch.
{
Transform tile = tiles.GetChild (Random.Range (0, 16));
int rand = Random.Range (1, 4);
if (rand == 1) {
tile.GetComponent<Renderer>().material.color = red;
} else if (rand == 2) {
tile.GetComponent<Renderer>().material.color = blue;
} else {
tile.GetComponent<Renderer>().material.color = green;
}
timer = 0;
}
}
А на случай, если вы не знаете, как это сделать, самый простой способ начать делать это в Unity - перенести свой код на вызовы Debug.Log() и выяснить, не является ли ваш код Я не знаю, как вы думаете. – Serlite
Я знаю, как отлаживать, но я не знаю, что я должен войти в свою консоль. Я пробовал 'Debug.Log (tile)' и 'Debug.Log (плитки)', которые дают мне оба вывода «Object». – ApoLLoSkiLLz