по книжке хотел пример перетасовки карт освоить. Установил в коде ссылки, в инспектор перенес нужные объекты. Но VS выдает предупреждение, что полю нигде не присваивается значение, и поэтому оно всегда будет null.
Менял и доступ, и тип на GO и новый экземпляр создавал - в итоге одно и то же.
Из-за того, что значение всегда null, не рассчитывается начальная позиция объекта и в результате карты не рассчитываются от первого объекта, как указано в коде.
Подскажите, пожалуйста
Синтаксис:
Используется csharp
public class SceneController : MonoBehaviour {
public const int gridRows = 2;
public const int gridCols = 4;
public const float offsetX = 2f;
public const float offsetY = 2.5f;
public MemoryCard originalCard;
public Sprite[] images;
void Start()
{
Vector3 startPos = originalCard.transform.position;
for (int i = 0; i < gridCols; i++)
{
for (int j = 0; j < gridRows; j++)
{
MemoryCard card;
if (i == 0 && j == 0)
{
card = originalCard;
}
else
{
card = Instantiate(originalCard) as MemoryCard;
}
int id = Random.Range(0, images.Length);
originalCard.SetCard(id, images[id]);
<span style="font-weight: bold">float posX = (offsetX * i) + startPos.x; // в итоге этот startPos всегда ноль и получается не такое расположение, которое нужно
float posY = -(offsetY * j) + startPos.y;</span> // карты накладываются друг на друга с небольшим сдвигом, вместо того, чтобы дистанцироваться друг от друга
card.transform.position = new Vector3(posX, posY, startPos.z);
}
}
}
}
public const int gridRows = 2;
public const int gridCols = 4;
public const float offsetX = 2f;
public const float offsetY = 2.5f;
public MemoryCard originalCard;
public Sprite[] images;
void Start()
{
Vector3 startPos = originalCard.transform.position;
for (int i = 0; i < gridCols; i++)
{
for (int j = 0; j < gridRows; j++)
{
MemoryCard card;
if (i == 0 && j == 0)
{
card = originalCard;
}
else
{
card = Instantiate(originalCard) as MemoryCard;
}
int id = Random.Range(0, images.Length);
originalCard.SetCard(id, images[id]);
<span style="font-weight: bold">float posX = (offsetX * i) + startPos.x; // в итоге этот startPos всегда ноль и получается не такое расположение, которое нужно
float posY = -(offsetY * j) + startPos.y;</span> // карты накладываются друг на друга с небольшим сдвигом, вместо того, чтобы дистанцироваться друг от друга
card.transform.position = new Vector3(posX, posY, startPos.z);
}
}
}
}
http://www.imageup.ru/img100/3147063/me ... d.jpg.html