Вторник, 02 Июня 2020, 01:24

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Модератор форума: beril  
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Как заменить один префаб на другой? (Нужно менять префабы из списки с помощью кнопок)
Как заменить один префаб на другой?
YraivДата: Суббота, 16 Мая 2020, 10:10 | Сообщение # 1
был не раз
Сейчас нет на сайте
В моей игре есть список разных объектов. У каждого есть описание с кнопкой, по нажатию на которую, должен загружаться префаб, а предыдущий удаляться.
Например. На сцене есть объект. Я открыл меню и выбрал в нём другой объект, первый объект должен удалиться, а второй встать на его место и точно также меняться должны другие, я думал сделать так :
Код

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class BuyMobs : MonoBehaviour
{
    public GameObject[] Mobs;
    public int MobsNomer;

    public void OnMouseDown()
    {
        Instantiate(Mobs[MobsNomer], Mobs[MobsNomer].transform.position, Quaternion.identity);
    }

}


Но как-то не работает. Хотел этим способом закинуть префабы в массив, чтоб потом выбирать, какие нужно загружать, но это какой-то не правильный путь видимо
freeprogrammerДата: Воскресенье, 17 Мая 2020, 03:59 | Сообщение # 2
участник
Сейчас нет на сайте
Ну тут получается ты не выбираешь, а создаёшь (Instantiate) новый на основе выбора. А так как тебе предыдущий нужно удалять, то нужно хранить ссылку на него после создания:
Код
private GameObject cyrGameObject;

public void OnMouseDown()
{
    if(cyrGameObject!=null)Destroy(cyrGameObject);
    cyrGameObject=Instantiate(Mobs[MobsNomer], Mobs[MobsNomer].transform.position, Quaternion.identity);
}


Medieval Checkers , Aeronauts, Funny Animals, KickItUp Soccer Brazil, Dragon Fire & Fury
YraivДата: Воскресенье, 17 Мая 2020, 04:45 | Сообщение # 3
был не раз
Сейчас нет на сайте
Я это к кнопке хотел привязать, но что-то ругается, когда нажми на кнопку, чтоб создать объект

MissingReferenceException: The variable Mobs of BuyMobs doesn't exist anymore.
You probably need to reassign the Mobs variable of the 'BuyMobs' script in the inspector.
freeprogrammerДата: Воскресенье, 17 Мая 2020, 08:19 | Сообщение # 4
участник
Сейчас нет на сайте
Тогда лучше проект в студию или в личку.

Medieval Checkers , Aeronauts, Funny Animals, KickItUp Soccer Brazil, Dragon Fire & Fury
YraivДата: Воскресенье, 17 Мая 2020, 10:19 | Сообщение # 5
был не раз
Сейчас нет на сайте
кинул
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Как заменить один префаб на другой? (Нужно менять префабы из списки с помощью кнопок)
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2020 Рейтинг