Комментарии 36
Привет. А в итоге, что за игра-то? Понял, что это 2d что-то, но не более.
0
Хабр не любит пиара — и конкретизация нашей игры пост богаче не сделает (:
0
Я думаю, ссылка в комментарии, да еще и по просьбе двух людей (а я тоже хочу) — это святое! За такое Хабр не обидется.
Ссылку, ссылку!
0
Спасибо за пост, выцепил для себя пару полезных советов! Сам сейчас нахожусь в ситуации, когда программировать вроде как умею, а опыта в Enterprise-разработке нет, и тоже потихоньку пилю свою игру на Юнити.
P.S. Присоединяюсь к требующим ссылку на игру))
P.S. Присоединяюсь к требующим ссылку на игру))
0
Наверное, мы уже достаточно глубоко в ветке комментов и сюда никто не залезет? Наш дебютный проект — store.steampowered.com/app/375560/DungeonRift
0
Ну вот, а в чём проблема?)) Многие непонятно почему так боятся 'случайного пиара", что усердно добавляют в текст конструкции вроде «одна хорошая компания», «магазин на букву А», «известная игра про футбол» и так далее. А в чём проблема назвать полностью? Что плохого в том, чтобы вольно или невольно пропиарить то, что лично ты считаешь хорошим?
-1
Классическая ошибка. В PullRandomFromList вы зря передаёте List как ref.
Ref нужен, если вы хотите иметь возможность заставить аргумент начать показывать на другой лист. А возможность поменять лист у вас и так есть.
+3
В первом методе можно принимать не List, а IReadOnlyList. Так вы сможете передать туда не только List, но и все, что поддерживает этот интерфейс
+1
Все верно. А еще было бы лучше и удобнее оформить эти методы как extension, что бы вызывать таким образом: ExampleClass a = list.GetRandomFromList();
+2
Не написали ИМХО одну важную вещь про крайнюю полезность SerializedObject, с помощью него можно реализовывать логику объекта для которого не всегда требуются GameObject'ы, например предметы инвентаря.
+1
Спасибо, нашел несколько полезных советов для себя)
+1
Объединяйте однотипные спрайты (а тем более отдельные спрайты одной анимации) в общую картинку
Вот это скорее вредный совет, с атласами, сделанными вручную сложнее работать (удалять, изменять и добавлять элементы). В Unity есть очень удобный SpritePacker, который за разработчика это все делает, причем обычно оптимальнее. В 2017 его еще улучшили, но я пока еще последнюю версию толком не трогал.
+2
Умный термин — Interface segregation principle.
ISP про другое. Тут умный термин — Single responsibility principle из того же SOLID
+1
Я за туториал вида “Делаем игрушку для хакатона за сутки с нуля”.
+3
Очень хочется определиться с начальным уровнем аудитории. Это кто-то, понимающий хоть что-то в программировании и ему не надо будет объяснять что такое класс или условный оператор, или это человек, впервые севший за компьютер? Пока не могу однозначно решить.
+2
Это кто-то, понимающий хоть что-то в программировании и ему не надо будет объяснять что такое класс или условный оператор
Однозначно для таких. Первых лучше отдельно хоть чуток подружить с программированием, после чего уже переходить к шагу «делаем игру» :-)
+3
подпишусь на тутор.
особенно хотелось бы про
т.е. да, я создаю SceneController, и у всех создаваемых объектов в старте идет "пропиши себя в SceneController", а потом, если надо обратиться из перчатки левой руки в ножик правой руки, то иду в голову и, по путям, через точку, -> в ножик другой руки.
далее его можем модифицировать из других объектов (скриптов) в виде:
т.е.:
Тутор нужен, потому что «с разбегу» трудно понять где графический объект, а где его скриптовый компонент (или еще хуже, несколько атачнутых скриптов)" и как их искать без Find()-a… даже на (не суперовую) конструкцию выше — у меня ушло больше года.
особенно хотелось бы про
Избегайте GameObject.Find()
т.е. да, я создаю SceneController, и у всех создаваемых объектов в старте идет "пропиши себя в SceneController", а потом, если надо обратиться из перчатки левой руки в ножик правой руки, то иду в голову и, по путям, через точку, -> в ножик другой руки.
public class LeftHandGlove: MonoBehaviour { <-- скрипт на объекте
...
void Start()
{
GameObject _app = GameObject.Find("_app"); // DontDestroyOnLoad() persistent
MHead = _app.GetComponent(); // взяли голову из persist
MHead.LeftGlove = this.gameObject; // <-- Self Binding to ManHead
далее его можем модифицировать из других объектов (скриптов) в виде:
(...) MHead.LeftGlove.GetComponent<LeftScript>().MyState = 200;
т.е.:
(controler 3D object ->) на нем Controller script -> Totem_3D_object -> и его Script -> и в нем public переменная
Тутор нужен, потому что «с разбегу» трудно понять где графический объект, а где его скриптовый компонент (или еще хуже, несколько атачнутых скриптов)" и как их искать без Find()-a… даже на (не суперовую) конструкцию выше — у меня ушло больше года.
+1
Простите, но:
удобнее воспользоваться встроенной утилитой утилитой SpritePacker.
+1
Зачем хранить в памяти все текста на всех языках в рантайме? Проще подгружать 1 язык, при смене — подгружать следующий. В примерах Unity есть урок как сделать локализацию.
+2
Это такое весьма абстрактное «проще». Имплементировать это может быть чуть-чуть сложнее, а экономия памяти будет сколько, сотня-другая килобайт? При том, сколько памяти занимают игры на Unity сами собой это абсолютно не принципиальная разница.
Но да, так, конечно, делать правильнее.
Но да, так, конечно, делать правильнее.
0
Всё хорошо в Unity кроме её веса. Собрал на ней пару безделушек-паззлов и забросил. Присматриваюсь к Godot.
0
Там нужно очень досконально смотреть настройки. Порой снятие одной галочки урезает по 30-40% от общего веса игры.
0
Это да, но сама среда очень громоздкая. Около гига сама Unity без никто. Godot — 40 мегабайт. Шаблоны экспорта под все платформы оптом — чуть более двухсот мегабайт. Для 2D-игрушек — самое оно.
0
А Вы не путаете Юнити с Анрилом или Краем? Там да, на Анриле чистый билд, без ничего, весит пару сотен Мб, на Крае и того больше. А на Юнити многие делают мобильные игры весом меньше 50 Мб. Я сейчас заканчиваю игру (не мобильную) на Юнити, весит около 400 Мб, из них 3/4 — вес JPEG-спрайтов. Где там «Около гига сама Unity без никто.», если честно, непонятно.
0
Мне кажется, Bookvarenko говорит про гигайбайт веса САМОГО Юнити. Среды разработки. Что, кажется, правда — у меня сейчас со всеми модулями папка с редактором (без Mono) весит 6 с небольшим гигабайт.
С другой стороны, я совершенно не понимаю, как это может иметь какое-то серьёзное значение.
А мои собранные на Юнити игры весят по 25-30 мегов на мобилки и 400 под десктоп (со всеми ресурсами).
Так что я не совсем могу понять эту претензию (:
С другой стороны, я совершенно не понимаю, как это может иметь какое-то серьёзное значение.
А мои собранные на Юнити игры весят по 25-30 мегов на мобилки и 400 под десктоп (со всеми ресурсами).
Так что я не совсем могу понять эту претензию (:
0
НЛО прилетело и опубликовало эту надпись здесь
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Ошибки новичка Unity, испытанные на собственной шкуре