Unity2D Выбор персонажа | Как реализовать?

Форум для самых маленьких, а так же тех, кому недосуг читать справку самостоятельно.

Unity2D Выбор персонажа | Как реализовать?

Сообщение FirstGameMaker 04 янв 2020, 09:47

Как реализовать смену персонажа? Нужно чтобы после нажатия кнопок (влево или вправо) по кругу выбирался соответствующий префаб для управления игроком, но проблема в том, что моих скудных знаний не хватает чтобы даже примерно понять как это сделать. Буду рад любой помощи.
FirstGameMaker
UNец
 
Сообщения: 39
Зарегистрирован: 29 апр 2019, 11:57

Re: Unity2D Выбор персонажа | Как реализовать?

Сообщение Saltant 04 янв 2020, 19:26

Instantiate. Потом просто включай/выключай прифаб.
Я на Google Play _https://play.google.com/store/apps/developer?id=Saltant
Аватара пользователя
Saltant
Адепт
 
Сообщения: 2234
Зарегистрирован: 09 окт 2018, 16:40
Откуда: Химки
  • Сайт

Re: Unity2D Выбор персонажа | Как реализовать?

Сообщение FirstGameMaker 05 янв 2020, 13:45

Saltant писал(а):Instantiate. Потом просто включай/выключай прифаб.
Нет, мне нужно чтобы было видно следующий и предыдущий выбор. Что-то вроде этого: Изображение
FirstGameMaker
UNец
 
Сообщения: 39
Зарегистрирован: 29 апр 2019, 11:57

Re: Unity2D Выбор персонажа | Как реализовать?

Сообщение Saltant 05 янв 2020, 17:56

Ну просто меняй местами тогда геймобжекты, Transform.SetParent https://docs.unity3d.com/ScriptReferenc ... arent.html
Я на Google Play _https://play.google.com/store/apps/developer?id=Saltant
Аватара пользователя
Saltant
Адепт
 
Сообщения: 2234
Зарегистрирован: 09 окт 2018, 16:40
Откуда: Химки
  • Сайт

Re: Unity2D Выбор персонажа | Как реализовать?

Сообщение StupidMoth 05 янв 2020, 20:30

Как вариант, можно засунуть все в один EmptyGameObject и двигать влево/вправо интерполяцией или на фиксированный шаг. Вариантов реализации уйма, зависит от конкретных пожеланий.
Аватара пользователя
StupidMoth
UNец
 
Сообщения: 23
Зарегистрирован: 23 ноя 2019, 17:33

Re: Unity2D Выбор персонажа | Как реализовать?

Сообщение FirstGameMaker 13 янв 2020, 18:15

Вообщем спустя некоторое время лазанья в интернете и ломанья головы нашёл и отредактировал вот такой скрипт:
Синтаксис:
Используется csharp
    private GameObject[] characterList;
    private int index;
    public GameObject Canvas;
    public GameObject Ship1, Ship2, Ship3;
    public Text count_public;




    void Start()
    {
       
            Time.timeScale = 0;
     
        index = PlayerPrefs.GetInt("CharacterSelected");
        characterList = new GameObject[transform.childCount];


        for (int i = 0; i < transform.childCount; i++)
            characterList[i] = transform.GetChild(i).gameObject;


        foreach (GameObject go in characterList)
            go.SetActive(false);

        if (characterList[index])
            characterList[index].SetActive(true);

    }

    public void ToggleLeft()
    {

        characterList[index].SetActive(false);

        index--;
        if (index < 0)
            index = characterList.Length - 1;

        characterList[index].SetActive(true);

    }


    public void ToggleRight()
    {
        characterList[index].SetActive(false);

        index++;
        if (index == characterList.Length)
            index = 0;


        characterList[index].SetActive(true);
    }
    public void ConfirmButton()
    {
        PlayerPrefs.SetInt("CharacterSelected", index);
        Canvas.SetActive(true);
    }
}

Но тут образовалась новая проблема: в игре за каждого убитого противника начисляются очки, и мне бы хотелось чтобы за эти очки можно было открывать новых персонажей, но как это реализовать?
FirstGameMaker
UNец
 
Сообщения: 39
Зарегистрирован: 29 апр 2019, 11:57

Re: Unity2D Выбор персонажа | Как реализовать?

Сообщение Saltant 13 янв 2020, 19:28

FirstGameMaker писал(а):Но тут образовалась новая проблема: в игре за каждого убитого противника начисляются очки, и мне бы хотелось чтобы за эти очки можно было открывать новых персонажей, но как это реализовать?

Создай переменную под очки и проверяй перед открытием хватает или нет, в чем проблема то?
Я на Google Play _https://play.google.com/store/apps/developer?id=Saltant
Аватара пользователя
Saltant
Адепт
 
Сообщения: 2234
Зарегистрирован: 09 окт 2018, 16:40
Откуда: Химки
  • Сайт

Re: Unity2D Выбор персонажа | Как реализовать?

Сообщение FirstGameMaker 14 янв 2020, 15:21

Saltant писал(а):
FirstGameMaker писал(а):Но тут образовалась новая проблема: в игре за каждого убитого противника начисляются очки, и мне бы хотелось чтобы за эти очки можно было открывать новых персонажей, но как это реализовать?

Создай переменную под очки и проверяй перед открытием хватает или нет, в чем проблема то?
С этим всё понятно, но как мне сохранить количество очков(они сбрасываются после перезапуска сцены) и все их изменения после выхода из игры (игра на андроид)
Последний раз редактировалось FirstGameMaker 14 янв 2020, 15:30, всего редактировалось 1 раз.
FirstGameMaker
UNец
 
Сообщения: 39
Зарегистрирован: 29 апр 2019, 11:57

Re: Unity2D Выбор персонажа | Как реализовать?

Сообщение 1max1 14 янв 2020, 15:27

FirstGameMaker писал(а):
Saltant писал(а):
FirstGameMaker писал(а):Но тут образовалась новая проблема: в игре за каждого убитого противника начисляются очки, и мне бы хотелось чтобы за эти очки можно было открывать новых персонажей, но как это реализовать?

Создай переменную под очки и проверяй перед открытием хватает или нет, в чем проблема то?
С этим всё понятно, но как мне сохранить количество очков и все их изменения после выхода из игры (игра на андроид)

Чо, как там гугл поживает? https://www.google.com/search?sxsrf=ACY ... 39WwDxZ7Xc
Аватара пользователя
1max1
Адепт
 
Сообщения: 5505
Зарегистрирован: 28 июн 2017, 10:51

Re: Unity2D Выбор персонажа | Как реализовать?

Сообщение nurbolg 15 янв 2020, 11:13

FirstGameMaker писал(а):Как реализовать смену персонажа? Нужно чтобы после нажатия кнопок (влево или вправо) по кругу выбирался соответствующий префаб для управления игроком, но проблема в том, что моих скудных знаний не хватает чтобы даже примерно понять как это сделать. Буду рад любой помощи.

напиши мне в вк https://vk.com/id533329770, у меня есть видеоурок по этой теме могу поделиться.
nurbolg
UNIт
 
Сообщения: 67
Зарегистрирован: 26 окт 2019, 12:19

Re: Unity2D Выбор персонажа | Как реализовать?

Сообщение nurbolg 15 янв 2020, 11:17

FirstGameMaker писал(а):Как реализовать смену персонажа? Нужно чтобы после нажатия кнопок (влево или вправо) по кругу выбирался соответствующий префаб для управления игроком, но проблема в том, что моих скудных знаний не хватает чтобы даже примерно понять как это сделать. Буду рад любой помощи.


это про Нужно чтобы после нажатия кнопок (влево или вправо) по кругу выбирался
https://www.youtube.com/watch?v=yiUfnrxFPBo&list=PLXuZlbem3dU4iItVdhmJZF9cIuV2qrOFf&index=35&t=0s
Последний раз редактировалось nurbolg 15 янв 2020, 11:19, всего редактировалось 1 раз.
nurbolg
UNIт
 
Сообщения: 67
Зарегистрирован: 26 окт 2019, 12:19

Re: Unity2D Выбор персонажа | Как реализовать?

Сообщение nurbolg 15 янв 2020, 11:19

FirstGameMaker писал(а):
Saltant писал(а):
FirstGameMaker писал(а):Но тут образовалась новая проблема: в игре за каждого убитого противника начисляются очки, и мне бы хотелось чтобы за эти очки можно было открывать новых персонажей, но как это реализовать?

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

это про сохранение данных PlayerPrefs
https://www.youtube.com/watch?v=LYJ4tXu0zyk&list=PLXuZlbem3dU4iItVdhmJZF9cIuV2qrOFf&index=64&t=763s
nurbolg
UNIт
 
Сообщения: 67
Зарегистрирован: 26 окт 2019, 12:19

Re: Unity2D Выбор персонажа | Как реализовать?

Сообщение lastbaks 17 янв 2020, 17:10

вообще вопрос действительно слишком общий. Нет однозначного ответа на тему "как мне сделать добавление новых персонажей к выбору при наборе очков", поэтому опасаюсь, но любой ответ в данной теме будет натыкаться на встречные вопросы, и я тоже не смогу дать конкретного скрипта, потому что в одном скрипте уложить все это не получится, а если получится, то будет бессмысленно длинная лапша, по которой вопросов будет еще больше.
Поэтому отвечу тоже лишь общими терминами.
Вот один из вариантов.
Для выбора персонажей нужно в канву подгружать не сами объекты, а их копии.
При наведении на каждого сделать срабатывание instantiate нужного префаба.
По хранению данных при выходе - изучи и используй PlayerPrefs
По поводу дополнения персонажей с набором очков - хочешь, закидывай всех возможных вмассив,
а можно просто каждому персонажу дать переменную рейтинга, по которой он будет доступен только в случае.
если у тебя количество очков будет больше, чем эта его переменная.
lastbaks
UNец
 
Сообщения: 11
Зарегистрирован: 21 мар 2019, 08:02

Re: Unity2D Выбор персонажа | Как реализовать?

Сообщение FirstGameMaker 21 янв 2020, 18:00

Такс...я понимаю, что возможно всем надоел, но возникла очередная проблема: как мне после покупки персонажа сохранить информацию о том, что он куплен. Пытался реализовать с помощью PlayerPerfis вроде если int = 1, то корабль куплен.Но PlayerPerfis сохраняет и загружает во всех вариациях скрипта что int = 1, и получается что после покупки одного персонажа, покупаются сразу все. Как это исправить?
FirstGameMaker
UNец
 
Сообщения: 39
Зарегистрирован: 29 апр 2019, 11:57

Re: Unity2D Выбор персонажа | Как реализовать?

Сообщение AngryCat 22 янв 2020, 11:50

FirstGameMaker писал(а):Такс...я понимаю, что возможно всем надоел, но возникла очередная проблема: как мне после покупки персонажа сохранить информацию о том, что он куплен. Пытался реализовать с помощью PlayerPerfis вроде если int = 1, то корабль куплен.Но PlayerPerfis сохраняет и загружает во всех вариациях скрипта что int = 1, и получается что после покупки одного персонажа, покупаются сразу все. Как это исправить?

Каждый перс, свой индекс. Например: первый перс = 1, второй = 2 и т.д. А потом смотришь, в префах есть 1, значит первый куплен...
Здесь могла бы быть ваша реклама.
Аватара пользователя
AngryCat
Старожил
 
Сообщения: 716
Зарегистрирован: 20 июл 2018, 22:29
Skype: Дискорд - Флеш#4099


Вернуться в Почемучка

Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и гости: 33