Я пытаюсь создать настольную игру Hex.Первый игрок внизу - желтый, а второй игрок - синий.Когда Игрок Один нажимает на гекс, он должен стать желтым, а когда Игрок 2 нажимает на гекс, он должен стать синим.
Я создал эту карту Hex, используя префаб, и теперь я хочу иметь возможность изменять цвет каждой плитки, когда я нажимаю на нее (желтые гексы, которые вы видите, будут прозрачными, но импортированный мной спрайтжелтый, поэтому цвет в средстве отображения спрайтов белый, хотя гексы выглядят желтыми.
Кстати, на данный момент изменение цвета в средстве отображения спрайтов изменяет цвет всех гексов.
Я следовал учебнику quill18creates, чтобы создать карту Hex, за исключением того, что я сделал ее в 2D вместо 3D.
https://www.youtube.com/watch?v=j-rCuN7uMR8
На момент написания, мой скрипт изменения цвета вообще не работает.Я пытался получить его, поэтому, когда он получает один щелчок, он меняется на желтый.Затем следующий клик на синий, рядом с желтым и так далее.Так как каждый игрок получает только один клик.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ColorChange : MonoBehaviour {
public Color[]colors; // allows input of material colors in a set sized array
public SpriteRenderer rend; // what are we rendering? the hex
private int index = 1; //initialize at 1, otherwise you have to press the ball twice to change color
// Use this for initialization
void Start () {
rend = GetComponent<SpriteRenderer> (); // gives functionality for the renderer
}
// Update is called once per frame
void onMouseDown () {
// if there are no colors present nothing happens
if (colors.Length == 0){
return;
}
if (Input.GetMouseButtonDown(0)){
index += 1; // when mouse is pressed down we increment up to the next index location
// when it reaches the end of the colors it stars over
if (index == colors.Length +1){
index = 1;
}
print (index); // used for debugging
rend.color = colors [index - 1]; // this sets the material color values inside the index
}
} //onMouseDown
}
Как мне реализовать это?Любая помощь будет высоко ценится!