В настоящее время я работаю над игрой в Unity3D, где вы должны щелкать пары цветов, чтобы сопоставить их, а затем они исчезают. Для этого я использую 2D-спрайты, но мне сложно с точки зрения логики стереть пару, когда оба щелкнуты мышью.
Нажмите на желтый, затем снова нажмите на желтый, чтобы оба исчезли. (Пока доска не очистится или не окрасится.)
Если щелкнуть по желтому, ничего, кроме желтого, не произойдет.
Заранее спасибо.
Вот как выглядит расположение спрайтов:
Было бы лучше дать каждому цвету тег?
Вот что я хочу сделать: когда игра запускается, она выбирает 3 цвета из массива из 6, а затем случайным образом размещает их (по 2 каждого цвета) на экране. Затем вам нужно щелкнуть цвет, например, зеленый (он будет выделен), затем щелкнуть другой зеленый цвет, и они оба исчезнут. Если вы, скажем, сначала нажмете на зеленый, а затем на желтый, игра просто закончится.
Это код, который я реализовал на данный момент:
// [...]
if (Input.GetMouseButtonDown(0))
{
CastRay();
}
}
function CastRay() {
var ray: Ray = Camera.main.ScreenPointToRay(Input.mousePosition);
var hit: RaycastHit2D = Physics2D.Raycast(Camera.main.ScreenToWorldPoint(Input.mousePosition), Vector2.zero);
if(hit.collider != null)
{
// Number is the amount of objects on the screen at one time.(6)
number --;
//Test to see if a mouse click interacts with the 2D Sprite.(Then destroys it)
Debug.Log ("Target Position: " + hit.collider.gameObject.transform.position + gameObject.tag);
Destroy(hit.collider.gameObject);
}
// This when the number hits 0 the level restarts (To check random elements)
if (number == 0)
{
Application.LoadLevel (0);
}
}