Позиционирование содержимого массива (спрайты) - PullRequest
0 голосов
/ 25 июня 2019

У меня есть картинки с числами (я имею в виду спрайты). Я получил их на пустой GameObject, я имею в виду [SerializeField], и добавил через скрипт (C # Ofcourse), поэтому объекты на самом деле не там, они генерируются, когда начинается игра. Таким образом, как вы можете видеть в коде, я могу установить количество строк и столбцов, а со смещением также расстояния по осям X и Y. Но я не могу изменить это положение. Кажется, что первый генерируемый заблокирован в середине проекта (первый вверх-влево), поэтому я попытался переместить пустышку пустого игрового объекта, но спрайты все еще на месте, даже если я вместо этого использую Инспектор , Похоже, это нужно было бы поместить в сценарий, но как?

Пожалуйста, дайте мне достаточно примеров, которые будут работать с Unity?

Я пытался расположить его в Unity, как я уже упоминал, перемещая Гизмо объекта Gameobject, а также в Inspector. Действительно, кажется, что это можно сделать только в сценарии (я могу ошибаться, но я пробовал все) .

public class Controll : MonoBehaviour 
{
    public const int gridRows = 6;
    public const int gridCols = 6;
    public const float offsetX = 0.65f;
    public const float offsetY = 0.97f;

    [SerializeField] private GameObject[] cardBack;

    // Use this for initialization
    void Start ()
    {
        for (int i = 0; i < gridRows; i++)
        {
            for (int j = 0; j < gridCols; j++)
            {
                Instantiate(cardBack[i], new Vector3(offsetY*j, offsetX* i *-1 , -0.1f), Quaternion.identity);
            }
        }
    }

1 Ответ

0 голосов
/ 25 июня 2019

Вы создаете все объекты на корневом уровне сцены.Они никоим образом не связаны с GameObject, который изначально отвечал за создание экземпляров.

Если вы хотите, чтобы они располагались относительно нерестившегося GameObject, используйте

var position = transform.position + new Vector3(offsetY * j, offsetX * i * -1, -0.1f);
Instantiate(cardBack[i], position, Quaternion.Identity, <b>transform</b>);

, чтобысоздавать их как дочерние объекты GameObject, к которым привязан этот скрипт Controll.

Теперь, если вы переведите, поверните или масштабируете этот родительский объект, все экземпляры объектов будут преобразованы вместе с ним.

...