Я много искал, но не смог найти решение, поэтому, пожалуйста, помогите. В целом, что я пытаюсь сделать, так это то, как вы можете видеть в упрощенном скрипте, который я создал массив (у него есть три элемента, каждый из которых является родителем его дочерние объекты), а затем случайным образом создавая экземпляры этих элементов. Что я хочу, так это то, что первый экземпляр должен произойти над объектом, уже находящимся в сцене, но затем второй объект должен создавать экземпляр над предыдущим экземпляром объекта, а третий - вторым экземпляром, и поэтому на. Теперь, что я думаю, я хочу, чтобы определить, если экземпляр (, если это невозможно, мы можем поставить экземпляр в отдельной функции и проверить, произошло это или нет, но я не понимаю, как поставить одну из этих двух проверок если условие) произошло или нет, то есть условие для оператора if, если оно да, тогда мне нужна ссылка на последний экземпляр, который произошел, поэтому я могу установить его равным lastRedgeSet. Пожалуйста, помогите, а также предложить лучший способ сделать это, если любому `Как создать объект из массива над ранее созданным объектом из того же массива?
public GameObject[] RedgeSets;
private GameObject LastRedgeSet;
public GameObject FixedRedges;
private Object myist;
void Start() {
LastRedgeSet = FixedRedges;
}
void Update() {
// if(instantiate happened or no Condition here){
//LatRedgeSet = (refrence to last instantiated object required here) }
Vector3 LastRedgeSetPos = LastRedgeSet.transform.position;
Vector3 addheight = new Vector3 (0, 5, 0);
if (Input.GetKeyDown (KeyCode.Z)) {
Instantiate (RedgeSets [UnityEngine.Random.Range (0, 3)], LastRedgeSetPos + addheight, Quaternion.identity);
}
`
спасибо большое за ваше решение, я попробовал его, и он работает хорошо, но проблема проблема ... Поскольку объекты в массиве имеют разную длину, поэтому объект создается друг на друга, но высота увеличивается ... чтобы встретить эта проблема, я хотел бы создать объект выше ранее созданного объекта для того, что я использовал переменную lastredgeset redgeset, на самом деле является именем объектов ... Используя ваше первое решение, вы получаете ошибку, которая не может преобразовать объект в gameobject PLZ help немного больше – Momin
@Momin ** «Поскольку объекты в массиве имеют разную длину, поэтому объект создается друг на друга, но высота увеличивается **« Теперь я полностью понимаю проблему. Исправлена проблема. Используйте первый код в моем ответе. Я тестировал его, и он работает. Если ваша проблема решена, не забудьте принять ответ. Кроме того, я исправил некоторые другие проблемы. При использовании массива не переустанавливайте его. Это не должно быть «Random.Range (0, 3)]». Это должно быть «Random.Range (0, RedgeSets.Length)]». – Programmer
спасибо, что ответили еще раз, к счастью, я получил еще одно решение до вашего ответа, но это тоже будет работать, и я буду использовать его ... примет как ответ :) – Momin