Форум программистов, компьютерный форум, киберфорум
Unity, Unity3D
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.59/75: Рейтинг темы: голосов - 75, средняя оценка - 4.59
0 / 0 / 0
Регистрация: 28.03.2018
Сообщений: 10

Выбор персонажа в меню игры

09.08.2018, 16:24. Показов 15243. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем доброго времени суток.

Ребят, не прошу написать код. Прошу толкнуть в нужную сторону.

Начинаю изучать Unity, и первые шаги хочу сделать с создания игрового меню.

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

Я так понимаю, нужно создать некоторое кол-во превабов персонажей для каждой расы и для каждого рода (М,Ж), задать им ID, и потом по нажатию кнопок в меню листать эти ID из какого то config листа и менять префабы в сцене выбора персонажа для дальнейшей кастомизации. Затем нужно сохранить уже параметры кастомизированного префаба и передать на следующую сцену информации о персонаже и входа в игру. При последующем запуске игры сразу запускать сцену информации о персонажи с ранее сохраненными данными о персонаже.

А как это реализовать в C# хз.

Укажите, где рыть инфу, или может кто сможет объяснить как это сделать.

Добавлено через 6 минут
Пока что создано префабы двух рас, Люди и Эльфы. В расе Люди созданы 2 префаба, один М и один Ж. В расе Эльфы, так же, один М и один Ж. И того четыре префаба.
Так же, созданы сцена Loading, MainMenu, GameScens1(Карта старта), GameScens2(первая карта мира).
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
09.08.2018, 16:24
Ответы с готовыми решениями:

Положение персонажа в пространстве для 2d игры
Здравствуйте. Подскажите может кто сталкивался, как можно сделать следующее. Есть персонаж и различные объекты: деревья, дома, стены. Как...

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

Выбор ЯП для создания 2D игры
Доброго времени суток и прощу прощения за вопрос который уверен всех уже заманал, но сам я уже готов выстрелить себе в лоб... Решил...

6
28 / 26 / 9
Регистрация: 10.08.2016
Сообщений: 162
10.08.2018, 06:30
привет, такое меню и кастомизация персонажей не простая задачка
если вы только начинаете изучать Unity ..то 99,9% "утоните" в коде не понимая что откуда - куда, настоятельно советую вам сделать хотя бы несколько простых мини игр.. хотя бы что то ..что работает, играбельно для новичка, создавать простое UI, способы сохранения игры и прочие нужные вещи

ну а если по поводу вашей задумки то объяснять тут придется очень многое, проще посмотреть уроки на юtube там их полно на это направление, можно для начала просто что то скопировать от туда и модифицировать под свои нужды
1
0 / 0 / 0
Регистрация: 28.03.2018
Сообщений: 10
10.08.2018, 14:01  [ТС]
В том то и дело, что на YouTube не нашел инфу. Перерыл все, а то что нужно не нашел. И гайдов не могу найти.
Есть пример с отключением префабов, но это очень сильно будет нагружать память. Самый главный вопрос то в том, как выбранного персонажа загрузить на сцену.
0
82 / 78 / 34
Регистрация: 13.02.2018
Сообщений: 1,347
10.08.2018, 17:37
SUNR1s, То что тебе нужно.
0
33 / 32 / 10
Регистрация: 07.08.2012
Сообщений: 148
10.08.2018, 23:52
Цитата Сообщение от SUNR1s Посмотреть сообщение
Пока что создано префабы двух рас, Люди и Эльфы. В расе Люди созданы 2 префаба, один М и один Ж.
Не претендую на лучший вариант, но я делал когда то так. Есть отдельный статик класс который запоминает выбор - состояние: люди, эльфы,м,ж и т.п., он не меняется при загрузке сцен. А один префаб - персонаж, смотрит парамеры нужные в этом статике и настраивает себя, подключает нужные картинки, звуки, анимации. Все. Крутить можно как угодно, понимаю что проблема где сохранять и откуда брать настройки, если правильно понял.
0
0 / 0 / 0
Регистрация: 28.03.2018
Сообщений: 10
11.08.2018, 00:08  [ТС]
Цитата Сообщение от Askfor Посмотреть сообщение
понимаю что проблема где сохранять и откуда брать настройки, если правильно понял.
Проблема, как сделать меню выбора персонажа=)
Как, так сказать в лобби, выбрать персонажа, которым в дальнейшем будут играть=)
На сцене стоит 8 пьедесталов, на каждом из них по персонажу.
Под пьедесталами Button'ы с надписью "раса\пол". При нажатии определенный Button нужно запустить сцену игры с этим выбранным персонажем.

Вот какой вопрос=)
0
Эксперт .NETАвтор FAQ
 Аватар для Storm23
10424 / 5154 / 1825
Регистрация: 11.01.2015
Сообщений: 6,226
Записей в блоге: 34
11.08.2018, 13:02
Цитата Сообщение от SUNR1s Посмотреть сообщение
Проблема, как сделать меню выбора персонажа=)
Как, так сказать в лобби, выбрать персонажа, которым в дальнейшем будут играть=)
На сцене стоит 8 пьедесталов, на каждом из них по персонажу.
Под пьедесталами Button'ы с надписью "раса\пол". При нажатии определенный Button нужно запустить сцену игры с этим выбранным персонажем.
И что же тут сложного? Вы же сами описали что нужно сделать.

Цитата Сообщение от SUNR1s Посмотреть сообщение
По задумки, после входа в игру должна открыться сцена с созданием персонажа, выбор расы и кастомизации самого персонажа, создание ника (Если персонаж уже создан, то открывается сцена информации о созданом ранее персонаже и появляется возможность входа в саму игру).
1) Выбранные параметры будем хранить в PlayerPrefs. Сами префабы - в Resources. Имя префаба есть комбинация выбранных параметров. Например Синий Куб будет иметь имя префаба BlueCube:



2) Создадим скрипт PrefSelector:

PrefSelector
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
 
public class PrefSelector : MonoBehaviour
{
    public string ParameterName = "Shape";
    public string ParameterValue = "";
    public GameObject Marker;
 
    private void Start()
    {
        DrawMarker();
    }
 
    private void DrawMarker()
    {
        //draw marker around mu object if PlayerPrefs contains my value
        if (PlayerPrefs.GetString(ParameterName) == ParameterValue)//if my object is selected
        {
            Marker.transform.position = transform.position;
            Marker.SetActive(true);
        }
    }
 
    void OnMouseDown()
    {
        //store parameter value in PlayerPrefs
        PlayerPrefs.SetString(ParameterName, ParameterValue);
        //save PlayerPrefs
        PlayerPrefs.Save();
        //draw marker
        DrawMarker();
    }
}


Этот скрипт вешается на выбираемый объект. Он содержит два поля: ParameterName и ParameterValue. При клике на объект, в параметр ParameterName будет сохранено значение ParameterValue. Сохраняются параметры в PlayerPrefs.



3) Создаем несколько сцен с выбором формы, цвета и т.д. На каждый выбираемый объект вешаем скрипт PrefSelector с соответствующими параметрами.

4) На сцене игры создаем следующий скрипт:

GameManager
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
 
public class GameManager : MonoBehaviour
{
    void Start ()
    {
        //read preferences and load character prefab from resources
        var shape = PlayerPrefs.GetString("Shape");
        var color = PlayerPrefs.GetString("Color");
        var charName = color + shape;
        var prefab = Resources.Load<GameObject>(charName);
 
        //create character from prefab
        var character = Instantiate<GameObject>(prefab, Vector3.zero, Quaternion.identity);
    }
}


Этот скрипт читает настройки из PlayerPrefs, формирует имя префаба, читает префаб из Resources и создает объект из префаба.

В результате имеем несколько сцен кастомизации, после чего переходим на сцены игры, где создается кастомизированный объект:

Вложения
Тип файла: zip New Unity Project.zip (120.7 Кб, 91 просмотров)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
11.08.2018, 13:02
Помогаю со студенческими работами здесь

JavaScript для меню игры
Доброго времени суток, я не очень разбираюсь в JavaScript и хотел спросить что я не так сделал что не работает скрипт?Я делаю игру и по...

Выбор движка для создания игры
И так всем привет,прошу сильно не пинать... Посоветуйте движок для создания 3д игры,естественно с минимальными навыками программирования тк...

Выбор 2d кроссплатформенного движка для игры
Здравствуйте! В данный момент я пишу игру на питоне. По мере продвижения, появилась идея сделать ее для Android/Ios. Также была проблема со...

Выбор движка для FPS-подобной игры
Давненько есть идея перевести одну 2D - игру на рельсы 3D, тем самым осовременив ее технологически. И хотелось бы узнать, какой движок для...

При выходе из игры в меню пропадает курсор
Собираю игру и запускаю в меню все нормально выбираю пункт меню Играть -начинается игра, а когда обратно перехожу в меню курсор пропадает...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
PowerShell Snippets
iNNOKENTIY21 11.11.2025
Модуль PowerShell 5. 1+ : Snippets. psm1 У меня модуль расположен в пользовательской папке модулей, по умолчанию: \Documents\WindowsPowerShell\Modules\Snippets\ А в самом низу файла-профиля. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru