Unity Listing ниже и движется если отключено - PullRequest
0 голосов
/ 19 октября 2018

так вот идея, у меня есть несколько игровых объектов в пользовательском интерфейсе, перечисленных ниже друг друга, поэтому идея выглядит следующим образом

GameObject1
GameObject2
GameObject3
GameObject4
GameObject5

, поэтому я хочу отключить GameObject4, но при этом GameObject5 останется в своем положении, и я хочу, чтобы он автоматически переместился вверх в положение GameObject4, как, например, GameObject1
GameObject2
GameObject3
GameObject5

, а не GameObject1
GameObject2
GameObject3

GameObject5

у всех есть идеи, как это сделать

Ответы [ 2 ]

0 голосов
/ 19 октября 2018

Попробуйте создать массив этих объектов (я думаю, вы имеете в виду элементы пользовательского интерфейса) в массиве, сохраните их начальные позиции на другом массиве, а затем выполните цикл, чтобы вытолкнуть их из стека.

Попробуйте поиграть с этим, чтобыудовлетворить ваши потребности:

 public GameObject[] buttons;
 float[] buttonPos;

private void Start()
{
    buttonPos = new float[buttons.Length];
    for (int i = 0; i < buttons.Length; i++)
    {
        buttonPos[i] =  buttons[i].transform.position.y;
        print(buttonPos[i]);
    }

}

private void Update()
{
    if (Input.GetKeyDown("space"))
    {
        DestroyButton(1);
    }
}

void DestroyButton(int i)
{
    Destroy(buttons[i]);
    Stack(i);
}

void Stack(int i)
{
    for ( int j= i; j < buttons.Length; j++)
    {
        if(j != buttons.Length-1)
        buttons[j + 1].transform.position = new Vector3(buttons[j + 1].transform.position.x, buttonPos[j], buttons[j + 1].transform.position.z);
    }

}
0 голосов
/ 19 октября 2018

Ваш вопрос довольно неясен и неполон;даже (пропущенные) разрывы строк сбивают с толку ...

Поскольку это пользовательский интерфейс, а ваш вопрос содержит пробелы, а не пробелы, я полагаю, ваши gameObjects находятся в VerticalLayoutGroup?Придурковат, если они есть, стыдно за то, что вы не заявили об этом в своем вопросе.

Если вы хотите, чтобы элементы были отключены без нижних элементов, чтобы "двигаться вверх"

Если я понялВаш вопрос правильно, решение было бы поставить ваш контент как дочерний элемент другого, например, так:

enter image description here

РЕДАКТИРОВАТЬ: как правильно @comphonia предлагает, предпочтительно, чтобы это меню создавалось программно, чтобы каждая кнопка была дочерним по отношению к родительскому игровому объекту, который никогда не был отключен, и помещала их в список или массив, так что вы можете отключить их или включить их по отдельности

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...