こんにちは、ソリティアゲームを作っています。今、すべてのカードを 13 x 4 で画面に表示します。カードをドラッグできますが、どういうわけか上から下まで行全体が選択されています。ドラッグを左または右に移動すると、その隣のカードと行全体が選択されます。
私の質問: 他のカードをドラッグせずに 1 枚のカードを選択してドラッグするにはどうすればよいですか?
using UnityEngine;
using System.Collections;
public class SetupCards : MonoBehaviour
{
int numberOfCards = 52;
int numberOfCardSorts = 4;
public float verticalSize = 1.4f;
void OnGUI()
{
int currentSort = 0;
int cardNumber = 0;
for (int i = 0; i < numberOfCards; ++i)
{
int numberOfCardsPerSort = numberOfCards / numberOfCardSorts;
float cardSizeX = Screen.width / numberOfCardsPerSort;
if (cardNumber == numberOfCardsPerSort)
{
++currentSort;
cardNumber = 0;
}
Vector2 cardSize = new Vector2(cardSizeX, cardSizeX * verticalSize);
Rect rect = new Rect(
cardSize.x * cardNumber,
cardSize.y * currentSort,
cardSize.x,
cardSize.y);
string texturePath = "Textures/cards/";
switch (currentSort)
{
case 0:
texturePath += "diamond/diamond_";
break;
case 1:
texturePath += "clover/clover_";
break;
case 2:
texturePath += "heart/heart_";
break;
case 3:
texturePath += "spade/spade_";
break;
}
texturePath += cardNumber.ToString();
Texture texture = Resources.Load(texturePath) as Texture;
if (Input.GetMouseButton(0))
{
if (Input.mousePosition.x <= rect.x + rect.width &&
Input.mousePosition.x >= rect.x)
{
if(-Input.mousePosition.y <= rect.y + rect.height &&
-Input.mousePosition.y >= rect.y)
rect.x = Input.mousePosition.x;
{
rect.y = -Input.mousePosition.y + Screen.height;
}
}
}
GUI.Label(rect, texture);
++cardNumber;
}
}
}