Создание массива Unity

122
12 марта 2021, 07:20

Есть вот такой простенький код, который устанавливает объекты на сцене. Мне необходимо, что бы каждый созданный объект, был добавлен в list<Transorm> а из этого листа последний трансформ записывался в отдельную переменную (например в отдельный трансформ или вектор) и при нажатии другой клавиши, последний трансформ из листа удалялся, перекидывая данные переменной на позицию выше. Как это можно реализовать?

private GameObject Player;
private PlayerController PlayerController;
public GameObject SpawnPoints;
private Vector3 lastEndPosition;

void Start()
{
Player = GameObject.Find("Player");
PlayerController = Player.GetComponent<PlayerController>();
}
void Update()
{
    lastEndPosition = new Vector2(PlayerController.transform.position.x, PlayerController.transform.position.y);
    if(Input.GetKeyDown(KeyCode.S))
    {
    Instantiate(SpawnPoints, lastEndPosition, Quaternion.identity);
    }
}
Answer 1

Разобрался, вообще забил на лист трансформов, сделал всё через стак и мне кажется совсем неправильно, но это работает и работает как мне нужно))

private GameObject Player;
private PlayerController PlayerController;
[SerializeField]private GameObject SpawnObject;
private int Pos;
public Vector2 SpawnPoint;
private GameObject InstanceObj;
Stack<GameObject> Spawn = new Stack<GameObject>();

void Start()
{
Player = GameObject.Find("Player");
PlayerController = Player.GetComponent<PlayerController>();
}
void Update()
{
    Pos = Spawn.Count;
    if(Pos >= 1)
    {
        SpawnPoint = new Vector2(Spawn.Peek().transform.position.x, 
    Spawn.Peek().transform.position.y);
    }
    else
    {
        SpawnPoint = Vector2.zero;
    }
    if(Input.GetKeyDown(KeyCode.S))
    {
        InstanceObj = Instantiate(SpawnObject, 
    PlayerController.transform.position, Quaternion.identity);
        InstanceObj.name = "Point " + Pos;
        Spawn.Push(InstanceObj);
    }
    if(Input.GetKeyDown(KeyCode.R))
    {
        Destroy(Spawn.Pop());
    }
}
READ ALSO
C# - Process | Манипуляции

C# - Process | Манипуляции

C# Пример: BEServiceexe - Приостановлено

101
OleDbConnection не получает команды извне

OleDbConnection не получает команды извне

Написал класс по примеру из https://stackoverflowcom/questions/13135321/how-to-create-a-method-in-a-class-that-would-connect-to-my-database-on-calling

108
C# Замена текста в PDF

C# Замена текста в PDF

Пользуюсь библиотекой ItextsharpМой код почему то не хочет работать, он то сохраняет файл, но не открывает или он вообще не создаётся

104