Форум программистов, компьютерный форум, киберфорум
Unity, Unity3D
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
1 / 1 / 2
Регистрация: 03.10.2021
Сообщений: 138

Как удобнее вывести рецепт крафта в инспектор?

30.08.2024, 19:18. Показов 395. Ответов 6

Студворк — интернет-сервис помощи студентам
Есть у меня в игре некоторое количество ресурсов, различных, они используются для крафта тех или иных предметов. Эти предметы это классы от MonoBehavior, в которые нужно поместить рецепт крафта.
Первая идея пришла в голову создать перечисление CraftRasource, куда записать все виды ресурсы и рецепт хранить как
C#
1
System.Collections.Generic.List<(CraftResource, int)>
Но, инспектору это слишком сложно, не выводит. Можно было бы сделать два отдельных листа, вот так
C#
1
2
public System.Collections.Generic.List<CraftResource> Types;
public System.Collections.Generic.List<int> Amount;
Но выглядит как-то кривовато, да и через функции гонять неудобно. Как можно сделать это лучше? Конечно, очевидным вариантом было использовать Dictionary, то инспектор его тоже не видит, с листом были хотя бы какие-то шансы.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
30.08.2024, 19:18
Ответы с готовыми решениями:

Реализация крафта, как в майнкрафте на С++
Не знаю, как это реализовать есть несколько идей, но проблема в нескольких вариантах крафта. Например, крафт досок, так как элемент крафта...

В каких случаях удобнее использовать processes , в каких удобнее threads?
Привет! Экзаменационный вопрос: show a real case example in which you would choose processes, and another in which you would choose...

Как выдать рецепт по ингридиентам?
food = set(input() for _ in range(int(input( 'Сыр, огурец, авокадо, перец')))) # получаем продукты в холодильнике (генератором и ниже так...

6
193 / 135 / 57
Регистрация: 28.05.2022
Сообщений: 894
30.08.2024, 19:28
Где у вас хранится CraftResource? у какого то айтема который можно скрафтить?

Добавлено через 2 минуты
*Перечитал и увидел, если бы вы сделали словариком craftresource и int - чем будет int?
0
1 / 1 / 2
Регистрация: 03.10.2021
Сообщений: 138
30.08.2024, 19:37  [ТС]
int будет количеством этого ингредиента для крафта, а само CraftResource будет типом (типом то есть названием ингредиента, а не типом данных, само собой)

Добавлено через 6 минут
Ну, то есть будет примерно такое
C#
1
2
3
4
5
6
 List<(CraftResource, int)> recipe = new()
 {
     (CraftResource.Steel, 2),
     (CraftResource.Sapphire, 1),
     (CraftResource.Carbon, 4),
 };
будет обозначать, что для создания требуется 2 стали, 1 сапфир и 4 углерода.
Для словаря по тому же принципу, только будет перечисление, что дерева 0, стекла 0, и так далее и тому подобное.
0
193 / 135 / 57
Регистрация: 28.05.2022
Сообщений: 894
30.08.2024, 19:40
Лучший ответ Сообщение было отмечено Слава57 как решение

Решение

Попробуй так (псевдо код):

Code
1
2
3
4
5
6
7
8
9
10
11
class CraftReceipt
{
   list<ReceiptItem> RequireItems;
  //тут можешь добавить свои будущие разработки, к примеру уровень для этого крафта и тд.
   class ReceiptItem
  {
      CraftResource; // ресурс
      Count; //кол во ресурсов
      
  }
}
И уже где надо храни этот CraftReceipt, главное не забудь добавить атрибут system.serializable над классами
0
399 / 308 / 104
Регистрация: 07.05.2017
Сообщений: 2,214
30.08.2024, 20:58
а наследование тут не подойдет случайно ?
0
1 / 1 / 2
Регистрация: 03.10.2021
Сообщений: 138
30.08.2024, 22:11  [ТС]
Куда наследование, от кого наследование?)
0
399 / 308 / 104
Регистрация: 07.05.2017
Сообщений: 2,214
30.08.2024, 23:03
Цитата Сообщение от Слава57 Посмотреть сообщение
Куда наследование, от кого наследование?)
от темы ООП. наследование называется )). просто для размышления тему предлагаю.

Добавлено через 43 минуты
а если вопрос чисто в серриализации словаря и его элементов, то прямого пути с помощью атрибутов я пока не встречал.
попробуй покурить данный костыль.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
30.08.2024, 23:03
Помогаю со студенческими работами здесь

[РЕЦЕПТ] Как написать парсер
Установить ОС Linux, mitmproxy, зайти на сайт, прочитать в mimproxy, какие данные были отправлены (адрес страницы, куки, другие параметры),...

Как добавить пошаговый рецепт?
class Recipes: def __init__(self, make, ingredient, prepare): self.make = make self.ingredient = ingredient ...

Как связать назначение лекарства (рецепт) и заказ
Смотрите у меня таблицы лекарство, заказ и рецепт Лекарство и рецепт - многие о многим Заказ - лекарство - многие ко многим а вот...

Как встроить окно в Инспектор Объектов?
Всем добрый день. В книге Архангельского &quot;Программирование в Delphi7&quot; сказано, что есть возможность встроить окно Code Explorer в окно...

Как отследить работу своей программы(инспектор)
Ранее писал на сишарпе, щас на делфи потихоньку перешел Подскажите пожалуйста как отследить работу своей программки, я поставил точку...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru