Gamedev


Ответить в тред Ответить в тред

<<
Назад | Вниз | Каталог | Обновить тред | Автообновление
988 88 182

Unity Thread | yni & Coroutine Edition Аноним 16/11/17 Чтв 06:38:09 4567361
madewithunity.jpg (9Кб, 400x400)
400x400
Добро пожаловать в тред Unity - лучшего 3D и 2D игрового движка современности!
------------------
Прошлый тред: >>449619 (OP)
Шапка: http://www.writeurl.com/publish/zukmrogwv45ptyuseyol
------------------
Официальный сайт: https://unity3d.com/ru
Документация: https://docs.unity3d.com/ru/current/Manual/index.html
Уроки: https://unity3d.com/ru/learn/tutorials
Форум: https://forum.unity3d.com/
Магазин ассетов: https://unity3d.com/ru/asset-store
UnityWiki: http://wiki.unity3d.com/index.php/Main_Page
yni : https://www.youtube.com/watch?v=gnkBKtnYeb8

Made With Unity 2D Games Showreel 2017: https://www.youtube.com/watch?v=NMUr2yNALhU

The Unity Awards 2017 Winners:
https://www.youtube.com/watch?v=8--xPOlY7kU
------------------------------------------------------------------
На Unity сделано много замечательных игр - Rust, Блицкриг 3, Pillars of Eternity, Tyranny, Kerbal Space Program
,ユニゲーム и многие другие.
Главным преимуществом Unity перед другими движками является его простота для одиночной разработки. Не нужно иметь целую компанию девелоперов, чтобы сделать хорошую игру. Если ты один или имеешь небольшую команду и хочешь сделать хорошую игру без претензий на ААА, то Unity станет лучшим выбором. Тем не менее, даже крупные корпорации зачастую выбирают для своих игр именно Unity.
===================================

FAQ

- Какие у Unity сильные стороны?
- Простота разработки, удобный инструментарий, кроссплатформенность, богатая документация, огромное сообщество.

- Какие у Unity слабые стороны?
- Сложность в создании фотореалистичной графики. Для графики "как в Crysis" рекомендуется взять другой движок. Хотя Unity вполне способен выдавать не уступающую любым другим движкам картинку, это требует определённого навыка от разработчика.

- На каких языках я могу писать скрипты для Unity?
- На выбор два языка - C# и UnityScript. UnityScript - это что-то среднее между JavaScript и ActionScript. Выбирай язык по своему вкусу, они оба вполне удобны, но помни, что большинство примеров написано на C#.

- Для каких жанров подходит Unity?
- Для абсолютно любых! Жанр ограничивается лишь фантазией разработчика (и его умением писать скрипты, разумеется). Можно создавать и РПГ, и стратегии, и слэшеры. Можно делать VR-проекты или Minecraft-подобные песочницы.

- На каких платформах работают созданные с помощью Unity игры?
- Windows, Linux, MacOS, SteamOS, Android, iOS, Windows Phone, PlayStation4, Xbox One, WebGL, Oculus Rift и многие другие. Полный список можно найти на официальном сайте. Таким образом, игры Unity работают на десктопах, на смартфонах, планшетах, приставках, в браузерах, VR-очках и некоторых других системах.

- Часто вижу скриншоты с красивой природой на Unity. Как такое создать?
- Очень просто! В Unity встроены удобные инструменты для создания террейна и SpeedTree для создания деревьев и готовая реализация ветра - не нужно ничего писать или скачивать и подключать плагины - ландшафт в Unity создаётся в пару кликов.

- Что такое стартер киты?
- Starter Kit - это набор скриптов и префабов, а зачастую и графических элементов для игры. Они призваны облегчить разработку игры определённого жанра и как правило разбиты по жанрам (Action-RPG Starter Kit, RTS Starter Kit, 3D Shooter Starter Kit, Space Game Starter Kit, VR Starter Kit и так далее). Также бывают стартер киты различных игровых элементов, не связанных с геймплеем (Nature Starter Kit с дополнительными природными объектами, Medieval Starter Kit со средневековыми объектами и так далее). По сути, стартер киты выполняют в разработке игры ту же роль, что и фреймворки в программировании. Однако стоит отметить, что использование геймплейного стартер кита принуждает разработчика изучать большое количество чужого кода и чужой структуры для внесения своих изменений и полноценного использования. В связи с этим большинство разработчиков предпочитает писать почти всё с нуля, получая полное понимание работы своей игры. Новичкам крайне не рекомендуется начинать знакомство с Unity со стартер китов.

- Что нужно уметь делать для создания полноценной игры, кроме Unity-разработки?
- Кроме непосредственной разработки игры на Unity, требуется также уметь создавать 3D модели (3ds Max, Blender, ZBrush), 2D рисунки (GraphicsGale, Aseprite, Piskel), текстуры (Substance Designer, NeoTextureEdit), музыку (FruityLoops, Ableton). Не обязательно учить это всё - например, в 2D играх не нужны 3D модели, а музыка необходима далеко не всегда. Также вы можете скачивать элементы для ваших игр на бесплатных сайтах. Если у вас есть деньги, то все необходимые элементы можно заказать у фрилансеров на https://www.fl.ru/ (русскоязычный) или https://www.upwork.com/ (англоязычный).

- Бесплатен ли Unity?
- Можно свободно скачивать, использовать и продавать готовые игры на Unity с лицензией Personal - это абсолютно бесплатно! Но на бесплатной версии при запуске игры будет появляться короткий стартовый ролик "Made with Unity", а также ваши доходы ограничены 100 000 долларов в год. Для снятия этих ограничений нужно приобретать платные версии лицензий Unity. В конечном итоге, платные варианты используются лишь крупными компаниями с огромными доходами, тогда как обычные разработчики в большинстве своём используют бесплатную Personal лицензию.
===============================

Обучение

- Язык
Итак, с чего же начать изучение этого замечательного движка? Прежде всего, с изучения языка. Самые основы C# можно узнать на интерактивных курсах здесь:
https://dotnetcademy.net/CSharp/Beginner
или в текстовом туториале здесь:
https://www.tutorialspoint.com/csharp/csharp_quick_guide.htm
Для изучения основ UnityScript выучи вначале основы JavaScript:
https://learn.javascript.ru/
Помни, что далеко не все элементы JS есть в US. Чтобы понять, в чём разница между этими двумя языками, прочти эту статью:
http://wiki.unity3d.com/index.php/UnityScript_versus_JavaScript
Помни, что тебе достаточно одного языка из двух и учить их оба одновременно не нужно.

- Движок
Если ты уже умеешь использовать язык, то можно приступать непосредственно к изучению движка. Крайне рекомендется купить/скачать книгу Unity in action (Unity в действии). В ней подробно описываются множество возможностей движка.
http://www.ozon.ru/context/detail/id/34792570/
Также посмотри на видеотуториалы с официального сайта:
https://unity3d.com/learn/tutorials
Если же ты не любишь видеотуториалы (или не понимаешь разговорный английский) и предпочитаешь текст, то посмотри здесь:
http://catlikecoding.com/unity/tutorials/
Тут крайне подробно описан процесс разработки и приведены примеры кода. Эти туториалы универсальны и описывают множество различных частей игры, от работы с текстурами до генерации карты мира. А вот в этом туториале описыватся разработка двухмерной игры с видом сверху:
https://www.raywenderlich.com/61532/unity-2d-tutorial-getting-started
Это будет полезно, даже если ты планируешь разрабатывать трёхмерную игру. Ни в коем случае нельзя обойти вниманием этот сборник туториалов:
https://noobtuts.com/unity
В нём подробно описывается процесс пошагового создания разных игр - двухмерных и трёхмерных.

Разумеется, все эти туториалы охватывают лишь часть возможностей Unity. Самый надёжный способ выучить Unity - это начать делать игру и по мере разработки гуглить непонятные моменты.


Аноним 16/11/17 Чтв 07:02:46 4567382
15108000554830s.jpg (4Кб, 117x200)
117x200
Как вы думаете, насколько подходит такая книга, для изучения C# на Unity?
Аноним 16/11/17 Чтв 09:07:01 4567433
Есть ли какие-то возможности асинхронного программирования в Unity?
Аноним 16/11/17 Чтв 09:15:36 4567444
>>456738
Я тебе рекомендую начать с книги Герберта Шилтда. А если захочешь углубленно изучить шарпы и виртуалку, тогда милости прошу к товарищу Рихтеру.

>>456743
Есть. Опиши круг задач, а я может быть что-нибудь подкину.
Аноним 16/11/17 Чтв 09:29:45 4567475
>>456551
Я бы на твои проекты глянул для начала. Ибо нужно знать какой у тебя уровень.

>>456672
Уж поверь, ты еще говноказуалок не видел. зайди на BigFishGames и посмотри, что там
Аноним 16/11/17 Чтв 10:00:29 4567526
Аноним 16/11/17 Чтв 10:06:36 4567537
>>456752
да нормально все там. я писал.
Аноним 16/11/17 Чтв 10:07:46 4567548
Аноним 16/11/17 Чтв 10:45:07 4567599
Интересно узнать решение этой ошибки, возникающей во время создания андроид билда:

Win32Exception: ApplicationName='C:/AndroidSDK\tools\aapt.exe', CommandLine='package --auto-add-overlay -v -f -m -J "gen" -M "AndroidManifest.xml" -S "res" -I "C:/AndroidSDK\platforms\android-25\android.jar" -F bin/resources.ap_', CurrentDirectory='Temp/StagingArea'
System.Diagnostics.Process.Start_noshell (System.Diagnostics.ProcessStartInfo startInfo, System.Diagnostics.Process process)
System.Diagnostics.Process.Start_common (System.Diagnostics.ProcessStartInfo startInfo, System.Diagnostics.Process process)
System.Diagnostics.Process.Start ()
(wrapper remoting-invoke-with-check) System.Diagnostics.Process:Start ()
UnityEditor.Utils.Program.Start (System.EventHandler exitCallback) (at C:/buildslave/unity/build/Editor/Mono/Utils/Program.cs:44)
UnityEditor.Utils.Program.Start () (at C:/buildslave/unity/build/Editor/Mono/Utils/Program.cs:28)
UnityEditor.Android.Command.Run (System.Diagnostics.ProcessStartInfo psi, UnityEditor.Android.WaitingForProcessToExit waitingForProcessToExit, System.String errorMsg)
UnityEditor.Android.PostProcessor.Tasks.TasksCommon.Exec (System.String command, System.String args, System.String workingdir, System.String errorMsg, Int32 retriesOnFailure)
UnityEditor.Android.PostProcessor.Tasks.BuildResources.CompileResources (UnityEditor.Android.PostProcessor.PostProcessorContext context)
UnityEditor.Android.PostProcessor.Tasks.BuildResources.Execute (UnityEditor.Android.PostProcessor.PostProcessorContext context)
UnityEditor.Android.PostProcessor.PostProcessRunner.RunAllTasks (UnityEditor.Android.PostProcessor.PostProcessorContext context)
UnityEditor.Android.PostProcessAndroidPlayer.PostProcess (BuildTarget target, System.String stagingAreaData, System.String stagingArea, System.String playerPackage, System.String installPath, System.String companyName, System.String productName, BuildOptions options, UnityEditor.RuntimeClassRegistry usedClassRegistry)
UnityEditor.Android.AndroidBuildPostprocessor.PostProcess (BuildPostProcessArgs args)
UnityEditor.PostprocessBuildPlayer.Postprocess (BuildTargetGroup targetGroup, BuildTarget target, System.String installPath, System.String companyName, System.String productName, Int32 width, Int32 height, System.String downloadWebplayerUrl, System.String manualDownloadWebplayerUrl, BuildOptions options, UnityEditor.RuntimeClassRegistry usedClassRegistry, UnityEditor.BuildReporting.BuildReport report) (at C:/buildslave/unity/build/Editor/Mono/BuildPipeline/PostprocessBuildPlayer.cs:186)
UnityEditor.HostView:OnGUI()

Аноним 16/11/17 Чтв 10:49:14 45676010
>>456759
Гуглил? 98% всех юнити-ошибок можно найти в гугуле
Аноним 16/11/17 Чтв 11:01:36 45676211
>>456760
Да, но вроде бы действующего решения ещё не нашёл
Аноним 16/11/17 Чтв 11:03:30 45676312
>>456762
Так не то гуглишь, гугли как дебажить ошибу процесса компиляции дабы получить читаемый и вменяемый трейс, а не то, как решить именно это трабоу.

СЧам же видишь, что эта чушь нечитаема и ни о чем не говорит
Аноним 16/11/17 Чтв 11:04:19 45676413
>>456759
У меня при билде под вебгл было что-то похожее, помог старый дедовский способ переустановил юньку и все sdk
Аноним 16/11/17 Чтв 13:36:45 45677514
>>456747
Да никакой еще уровень. Доделываю свой первый топ-даун шутер (начал по тутору с офф.сайта, потом понял что к чему и продолжил сам). Cейчас доделаю, и буду пилить какую-нибудь штуку для мобилки (хочу ознакомиться с 2D и особенностями разработки под телефоны. Потом попробую что-нибудь с онлайном поковырять). Как я изучаю: ставлю цель, что я хочу прикрутить к игре следующим, потом ищу что-то в API либо просто гуглю. В общем, это такой мой план на следующие пару месяцев.

>>456738
Мне очень помогла книжка c# player's guide. Все предельно просто. Позволила буквально за пару недель понять основы ООП, учитывая, что все, что я знал о программировании до этого это html-теги. Т.е. ничего.


Алсо, у меня вопрос. Где можно посмотреть ГРАМОТНЫЙ код? Как я понимаю, задача программиста не только в том, чтобы все работало, но и чтобы все было хорошо написано, и в случае чего быстро фиксилось, и не только написавшим. Просто хочу не потом это исправлять, а сразу учиться писать хорошо. Есть какие-нибудь уроки по этому мастерству?
(как комментить, обзывать переменные/классы, все такое)
Аноним 16/11/17 Чтв 13:43:57 45677815
>>456775
C# assebly декомпиляться на ура, тот же dnSpy

Бери любой релизнутый проект, декомпиль и смотри что к чему
Аноним 16/11/17 Чтв 13:52:46 45677916
>>456775
> Где можно посмотреть ГРАМОТНЫЙ код?
Где-то у меня был мем про то, что чувак понимает, что он теперь самый настоящий погромист, а того самого идеального кода не существует. И код, который он пишет, менее умелые люди берут в пример.
Аноним 16/11/17 Чтв 14:46:02 45678117
>>456775
>как комментить
понятно

>>456775
>обзывать переменные/классы
максимально точно

Рекомендую обмазаться автоматическими ревьюверами, они знатно будут тыкать тебя в говно твой код. Типа codacy что нибудь

Аноним 16/11/17 Чтв 14:47:51 45678218
>>456775
> потом понял что к чему
> как комментить
Шта?
Аноним 16/11/17 Чтв 14:51:55 45678319
>>456782
Он имеет ввиду common practices

Представь себе ты работаешь в коллективе из 20 кодеров. Твой коммент "эта та самая хуйнявка из наследного класса" будет охуенным брейнфаком для них
Аноним 16/11/17 Чтв 15:04:53 45678520
>>456781
>Рекомендую обмазаться автоматическими ревьюверами, они знатно будут тыкать тебя в говно твой код. Типа codacy что нибудь

Спасибо, попробую эту штуку.

>>456783
>common practices

Во, то что надо.
https://en.wikipedia.org/wiki/Coding_conventions

Аноним 16/11/17 Чтв 18:10:53 45681221
Любознательный ньюфаг в треде.
Изучал и писал на Python, перекатился теперь на JavaScript и потихоньку изучаю Unity. Просмотрел несколько туториалов (Space Shooter и 2D roguelike если быть совсем точным), изучаю сейчас общее руководство по скриптингу и потихоньку практикуюсь с простыми задачами в самом движке.

В общем, можете накидать советов мудрых за щеку? Очень хотелось бы знать не прогадал ли с выбором языка, и нет ли у JS каких-нибудь минусов по сравнению с Шарпом на Unity? К тому же, обнаружил что туториалы по Unity 9по-крайней мере самые попадающиеся на глаза) в основном просвещенны максимально простым платформерам и топ-даун шутеркам в лучшем случае. Где можно посмотреть какие-нибудь более углубленные проекты или посвященные другим жанрам, кроме парочки старых туториалов по 3d-стратегиям на YouTube?

Ну, и просто напоследок - с насколько тупыми вопросами можно обращаться в тред? Пока что изучаю в одиночку, но боюсь во многих местах я действую с изрядным костылизмом в самых простых вещах, но не знаю куда с такой мелочью обращаться за помощью.
Аноним 16/11/17 Чтв 18:20:47 45681522
>>456812
Если не ошибаюсь, тот же новый Job System, обмазанный по сто раз, в новых версиях 2017.2-3 - пока в полной мере только для шарпа.

JS же удобнее, если для мобильных платформ делаешь, там будет единая структура кода, в том числе и внешнего
Аноним 16/11/17 Чтв 18:23:04 45681723
>>456812
> не прогадал ли с выбором языка
Я видел дохуя туторов по шарпу и ниодного по JS.

> Где можно посмотреть какие-нибудь более углубленные проекты или посвященные другим жанрам
Мне казалось, чувак с ником Burg Zerg Arcade делал какую-то более-менее полноценную RPG.
Официальные туторы по Unity заточены больше под реализацию конкретных механик. Советую посмотреть live сессии, потому что там материал поинтереснее и фичи идут уровнем выше, т.е. это уже не настройка камеры и движения игрока, это реализация способностей и оружий, например.

> боюсь во многих местах я действую с изрядным костылизмом в самых простых вещах
Похуй. Пиши как можешь, но не забывай про гугл. Потом все равно найдешь более изящное решение, прокачаешь навык. Опять же, смотри Live сессии, там помимо того, что грамотно написан код, тебе еще и объясняют, почему лучше писать вот так.
Аноним 16/11/17 Чтв 19:32:10 45682424
>>456812
>В общем, можете накидать советов мудрых
Первый совет - забудь про "js" (в юнити не стандартный жс, а какая-то похожая скриптопараша). Все нормальные туторы, советы, ответы даны для шарпа.
Аноним 16/11/17 Чтв 19:36:37 45682525
Пацаны, ньюфаго-хэлп.

Есть две переменные, int score и int waveCount.

Нужно, чтобы через каждые 300 score, waveCount повышалась на единичку.

Т.е.

0 0
300 1
600 2
900 3
1200 4
ИТД

Да, я совсем тупой.

Аноним 16/11/17 Чтв 19:38:19 45682626
>>456825
Пиздец.
Дели score/waveCount и флурь down to integer?
Аноним 16/11/17 Чтв 19:41:01 45682727
Аноним 16/11/17 Чтв 20:18:10 45683528
Аноним 16/11/17 Чтв 20:45:19 45683729
>>456835
Это ему не поможет, ему нужно обновить waveCount соответсвенно текущему значению score, а не ловить именно 300, 600 и т.п. Мб у него score инкрементится по разным значениям, + 35, + 150 и т.п. деля на 300 он не только получит текущую фазу, если roundDown, но и, в случае с float, отеосительный остаток до следущей фазы, если нужно там шкалу отображать
Аноним 16/11/17 Чтв 21:32:20 45684330
>>456824
Да, уже обратил внимание. Параллельно учу JS на Кодакадемии и непрерывно проигрывал с того во что язык превратили в движке. Что ж, к счастью в туториалах по скриптингу неплохой материал собран, надеюсь его хватит. Да и Шилдз где-то лежал.
>>456817
>Официальные туторы по Unity заточены больше под реализацию конкретных механик
Так-то ведь хорошо, но я уже сталкиваюсь с тем что остро нехватает некоторых аспектов. Например ни в одном из туториалов не нашел хороших примеров работы с камерами - везде она просто прибита к месту и максимум объясняется что означают её параметры настройки. Пришлось скачивать сборную солянку из стандартных ассетов чтобы посмотреть какие варианты реализованы там со всеми полагающими перемещениями и настройками видам. Я так понимаю не стоит стесняться и в будущем таскать ассеты и смотреть как они работают чтобы велосипеды не творить?
Аноним 16/11/17 Чтв 21:49:04 45684731
>>456837
Так и есть. Сделал по вот этому совету >>456826
Вообще, вопрос не стоит обсуждения я просто тупой.
Аноним 16/11/17 Чтв 21:55:45 45684932
>>456843
>Я так понимаю не стоит стесняться и в будущем таскать ассеты и смотреть как они работают чтобы велосипеды не творить?
Assetwhoring стандарт для Unity девелопинга. Собсно, Unity тем и популярен, что куча ассетов и за тебя уде все написано, просто, блять, в лего играй и составляй игру мечты.

За это же Unity и не любят, впрочем, патрицианы с UE или более серьезных движков.
Аноним 16/11/17 Чтв 21:56:44 45685033
>>456849
Будешь играть в лего - ничего работать не будет.
Аноним 16/11/17 Чтв 21:58:41 45685134
Аноним 16/11/17 Чтв 22:04:09 45685235
15108491841980.webm (15329Кб, 1280x720, 00:00:58)
1280x720
Посоны, поясните что такое "reflection". Постоянно вижу этот термин, но гугл нормально не объясняет. И почему он такой медленный, как пишут?
Аноним 16/11/17 Чтв 22:06:26 45685336
>>456851
Да брось. Вот никогда не понимал этих претензий к переполненности стим стора. Вы что, против капитализма чтоли? Чем больше товара на полках, тем больше среди них попадается хороших вещей. Т.е. из 1000 игр будет 100 хороших. А из 100 игр будет 10 хороших (ну ладно, 30). Но все равно, 100>30.
А то, что искать надо, ну а хули. Можно и поискать. Почему никто не жалуется, что в день публикуется под тысячу книг? Каждый может найти то, что хочет.
Аноним 16/11/17 Чтв 22:08:40 45685537
>>456853
>А то, что искать надо, ну а хули. Можно и поискать
А ещё найдутся хитрые продавцы, которые будут товар проталкивать всеми силами. И будет дохуя никому не нужной рекламы к слову, согласно исследованиям, люди банально не видят всплывающую и контекстную рекламу на страницах. Приучились игнорировать вспышки Вот и зачем зря силы тратить сначала на заполнение сверх меры, а затем пропихивание и конкуренцию?
Аноним 16/11/17 Чтв 22:10:29 45685738
>>456852
https://msdn.microsoft.com/ru-ru/library/system.reflection(v=vs.110).aspx?f=255&MSPPError=-2147217396

https://stackoverflow.com/questions/3101577/what-is-reflection-in-c-what-are-the-benefit-how-to-use-it-to-get-benifit

По сути, как переводится, так и понимается. Отражение. Например, через reflection ты можешь получить тип переменной по ее имени в строковом формате и т.п.

>И почему он такой медленный, как пишут?
Ну тут нужно глубоко копать
https://stackoverflow.com/questions/771524/how-slow-is-reflection
Аноним 16/11/17 Чтв 22:15:27 45685839
>>456855
Так пусть проталкивают. Не против, если кто-то зарабатывает свою копеечку на дураках. Но зато если я захочу найти во что поиграть, я точно найду. Конечно, есть тренды, и триплэй текстовый квест ты не получишь. Но просто качественный найдешь легко. Как и вообще что угодно.
Аноним 16/11/17 Чтв 22:16:16 45685940
>>456826
> Дели score/waveCount
Но ведь waveCount у него изначально 0.
Аноним 16/11/17 Чтв 22:18:08 45686141
>>456859
>поставил изначально на единичку
>изящно решил проблему
Аноним 16/11/17 Чтв 22:18:17 45686242
>>456858
>Но зато если я захочу найти во что поиграть, я точно найду
Не найдёшь. В этом-то и вся суть, об этом исследования и говорят.
Аноним 16/11/17 Чтв 22:18:50 45686343
>>456859
Проверка на nullcheck - первое, чему должен научиться C# кодер

Тем более, когда речь о Unity. Там аж два типа null когда conditioned
Аноним 16/11/17 Чтв 22:24:58 45686444
>>456862
Ну хуй знает. Я вот сейчас захотел поиграть в игру про летающий спиннер в космосе, нарисованную одноруким раковым ребенком дауном. И что думаешь, не смог я найти такую игру?
Конечно смог: http://store.steampowered .com/app/745510/Fidget_Spinner_In_Space/
Аноним 16/11/17 Чтв 22:56:01 45687045
>>456864
Не знаю с чего я проиграл больше - с того что эта игра существует, или с того что в списке "похожие товары" первая же ссылка ведет на новый Ассасинс крид.
Аноним 16/11/17 Чтв 23:27:21 45687246
gfdgsd.png (93Кб, 984x956)
984x956
Аноним 17/11/17 Птн 00:27:19 45687647
>>456852
>И почему он такой медленный, как пишут?
Грубо говоря, обычный код обращается по цифровым ссылкам, а рефлекшен сначала ищет ссылку по символьному имени, потом использует
Аноним 17/11/17 Птн 01:36:39 45688048
Аноним 17/11/17 Птн 02:06:50 45688249
Аноним 17/11/17 Птн 02:20:19 45688450
>>456882
Да они задолбали, даже на тестовых сценах меньше сотни объектов.

Что если я хочу от 1к до 10к сложных юнитов и объектов на сцене, с анимацией, физикой, аи. Это же пиздец как лагает.

Даже без графена, потому что 4 ядра да и то, если повезёт. Почему вычисления на gpu не перенесут? Или я чего-то не знаю (знаю про physx).
Аноним 17/11/17 Птн 05:30:11 45688951
Сап. Как в 2d режиме поменять размер сетки(юнитов)? Полазил по настройкам не нашел
Аноним 17/11/17 Птн 09:00:55 45689352
>>456889
Никак вроде. Меняй количество пикселей на юнит для спрайтов.
Аноним 17/11/17 Птн 10:35:44 45690353
>>456825
private int score;
public int Score
{
get
{
return score;
}
set
{
score = value;
waveCount = Mathf.FloorToInt(score);
}
}

Делай так
Аноним 17/11/17 Птн 10:36:05 45690454
Аноним 17/11/17 Птн 11:40:11 45691155
>>456893
Ну это же пиздец, а есть привязка объектов к границам камеры какая-нибудь? НАпример мне в камеру 16:9 надо засунуть 14x25 спрайтов, и без сетки пиздец не удобно работать над дизайном уровней, нахуя она вообще нужна тогда, если даже под границы камеры не подстраивается
Аноним 17/11/17 Птн 11:41:55 45691256
>>456889
Не понял что для тебя "размер сетки", но в ортографической камере покрути Size, может это то, что тебе нужно.
Аноним 17/11/17 Птн 13:06:47 45692457
Ребят, как можно сделать, чтобы во время какого-нибудь лупа нельзя было трогать какую-нибудь переменную? Ну т.е. если враг делает какое-то действие, ему нельзя было сбивать хп.
Аноним 17/11/17 Птн 13:08:34 45692558
>>456924
if(mozhnoLiSbivatHpUVraga)
{
...
}
Аноним 17/11/17 Птн 13:19:35 45692959
>>456912
>в ортографической камере
Это где? Напиши по английски расположение или заскринь пожалуйста
Сетку ту и имею, что там за размер юнита и отвечает, просто она не вмещается ровно в область камеры, а мне нужно чтобы всё чётенько было
Аноним 17/11/17 Птн 13:22:13 45693060
>>456924
Ставь во начало цикла вариаблу и по окончанию оного - снимай.
Затем чек на вариаблу.
Аноним 17/11/17 Птн 13:23:21 45693261
image.png (27Кб, 421x292)
421x292
>>456929
мимо-другой-анон
Аноним 17/11/17 Птн 13:24:59 45693462
1.png (47Кб, 484x645)
484x645
Аноним 17/11/17 Птн 14:01:20 45693963
>>456930
>>456925
Спасибо.
Вот еще вопрос:
Как прекратить задавать настолько тупые вопросы, до которых сам додумываешься через минуту, если вдруг немного завтыкал.
Аноним 17/11/17 Птн 14:04:25 45694064
Аноним 17/11/17 Птн 14:15:32 45694265
Предстоит собеседование по юнити на мидла. Готовлюсь и нервничаю.
Аноним 17/11/17 Птн 14:22:17 45694466
>>456942
Если полотенце под ноги кинут, то можешь сразу выдыхать, тебя возьмут.
Аноним 17/11/17 Птн 14:34:30 45694767
>>456944
Если полотенце будет с принтом стилизированной буквы U - то сразу вытру ноги.
Аноним 17/11/17 Птн 14:38:10 45694868
>>456942
Если вышка или проф. есть + опыт, то хуле волноваться.
Аноним 17/11/17 Птн 14:40:06 45694969
>>456948
> хуле волноваться
Тут смотря на кого попадёшь. В прошлом или позапрошлом треде ананас рассказывал как его или его товарища на собеседовании обоссали за foreach, мол, труЪ-посоны так не делают, надо через for прогонять.
Аноним 17/11/17 Птн 14:43:37 45695170
>>456949
Обоссали, наверное, потому как в старой Unity был баг, когда foreach в heap срал, его починили в 5.3.x. Какие другие причины могут быть - не вижу.

Аноним 17/11/17 Птн 15:26:50 45695671
Аноним 17/11/17 Птн 15:28:12 45695772
>>456956
> 5.5.0.f3
Хм, ебашил через форич ещё со времён царя Гороха и даже не замечал что он серит.
Да и хрен с ним.
Аноним 17/11/17 Птн 16:55:49 45696473
>>456957
Это чисто баг Юнити.
Аноним 17/11/17 Птн 17:58:07 45697574
>>456932
>>456934
Спасибо, я чёт и не углядел.
Слушайте, а где почитать мануал, как сделать возможность менять разрешение графики в опциях игры. Например я сделал игру в 5:3 (400x240), а мне надо чтобы при выборе опции могло делаться в 16:9 (1920x1080), при таком раскладе кратно не получится увеличить, надо чтобы графика немножко растянулась в ширину, а в высоту например чтобы просто лишнее скрылось, например черная полоска, которая была в 5:3
Мне бы мануал, или может кто так подскажет, как это делается, две разные камеры надо или как, но если разные камеры, то графика не растянется, на канвас натягивать спрайты? не очень удобно при дизайне уровней
Аноним 17/11/17 Птн 19:14:47 45698375
Аноним 17/11/17 Птн 19:59:29 45700576
>>456736 (OP)
Анон, а как лучше сделать набор уровней для моей игрушки? Ну то есть допустим я сделал сцену игровое поле там, фишки, башенки, врагов, написал скрипты - вот мой уровень. Для каждого уровня понадобится ведь новая сцена? А для каждой сцены вновь создавать фишки-башенки-врагов и писать скрипты? Или можно как-то единоразово описать геймобжекты и их поведение, а потом как-то лишь прописать их расположение для каждого из уровней?
Аноним 17/11/17 Птн 20:01:34 45700677
>>457005
Можно уровень генерить, можно листать статичные.
Аноним 17/11/17 Птн 20:03:28 45700778
>>457005
Тебе изначально необходимо понять что такое сцена. Это набор геймобджектов и их компонентов в иерархии.
Все ресурсы проекта могут быть заюзаны хоть в первой сцене, хоть в десятой, хоть у чёрта в залупе.
Аноним 17/11/17 Птн 20:07:10 45700879
>>457007
Блядь, я почему-то думал, что сцена выступает так же и контейнером для использующихся в ней ресурсов. Сейчас глянул, действительно, похуй вообще. Сцены отдельно - ресурсы отдельно.
Аноним 17/11/17 Птн 20:07:39 45700980
>>457005
Дублируй существующую и изменяй как новую, с новым сеттингом и т.п, сохраняй как scene2. Пожалуйста, загружай после scene1

Тут все зависит от нужды и контекста. Загрузка готовых сцен будет самым быстрым и дешевым способом. Генерация - самых дорогим (expensive)
Аноним 17/11/17 Птн 20:08:09 45701081
>>457008
> я почему-то думал, что сцена выступает так же и контейнером для использующихся в ней ресурсов
Если только начал, то это нормально, не парься.
Аноним 17/11/17 Птн 21:07:24 45701482
>моушен блюр, хроматическую абберацию, фейковый интерлейс
Такие эффекты можно как-то добавить?
Как у бро из поста:
>>440815
>>440849
Аноним 17/11/17 Птн 21:12:49 45701783
Аноним 17/11/17 Птн 21:15:48 45702084
Аноним 17/11/17 Птн 21:17:41 45702185
>>457020
Щито поделать, на то оно и мыло.
Аноним 17/11/17 Птн 22:31:50 45702586
Аноним 18/11/17 Суб 14:12:45 45708387
Кто нибудь учился по видосикам "From gamer to game developer"? Годно?
Аноним 18/11/17 Суб 14:43:07 45708588
>>457083
Лучше постпвь себе задачу и решай при помощи гугла. Анализируй решение, придумывай что-то свое. В видосиках порой неучи ебаные, поэтому нет лучше учения, чем самоучение.
Аноним 18/11/17 Суб 14:47:07 45708789
>>457083
Этот >>457085 прав лишь частично. Я б посоветовал посмотреть и повторить официальные туториалы, по мере сложности. И не копипастить код, а переписывать с экрана ручками. Основы крепко в мозг засядут и дальше можно уже включать режим "гуляй душа".
А васяны да, частенько хуй пойми что несут.
432654 18/11/17 Суб 15:17:25 45709090
Сап аноны. Решил зайти в геймдюв за поддержкой в созданий игр на Юнити. Проблема наступила при распаковки ассета из ассет store, он завис на OverНайнХандред секунд, подождал 5 минут, подождал час, итог: не дождался, закрыл Юнити, снова открыл Юнити, открыл проект, нифига не засейвелось и придётся всё начинать сначала... Поэтому я обрнатился за помощью в геймдюв-тред. Лень исправлять самому, спрошу на дваче
Аноним 18/11/17 Суб 16:40:21 45709791
1.jpg (43Кб, 820x605)
820x605
Как внутри surface шейдера получить значение толщины объекта?
Суть нарисовал на пике, надо толщины, отмеченные красными стрелками.
Аноним 18/11/17 Суб 16:44:12 45709892
>>457097
Зачем тебе высчитывать это в шейдере? Совсем уже ебу дал?
Аноним 18/11/17 Суб 16:44:24 45709993
Аноним 18/11/17 Суб 16:46:29 45710094
Earthorbit-650x[...].png (484Кб, 650x366)
650x366
Аноним 18/11/17 Суб 17:28:10 45710595
Аноним 18/11/17 Суб 17:34:05 45710696
>>457105
Не мог бы ты пойти нахуй, если у тебя нет ответа на заданный вопрос? Заранее спасибо.
Аноним 18/11/17 Суб 17:44:20 45710997
>>457106
Не нервничай, сучечке, ты мне за работу не платил, дабы по твоим правилам отвечать. Никто тут тебе ничего не должен, запомни.
Аноним 18/11/17 Суб 18:35:15 45711298
>>457100
Так у тебя вся планета одним объектом? Ну ебни вторым проходом текстуру облаков с дисплейсментом по нормали, умноженной на высоту облаков и всякие uv искажения на нее захуяч. Зачем тебе ширину то считать?
Я бы вообще планету и облака разными объектами сделал, чтобы не ебаться с этим.
Аноним 18/11/17 Суб 19:22:48 45712099
Аноним 18/11/17 Суб 19:25:03 457122100
>>457120
Причем тут subsurface scattering, он хочет отрезать наложеный шейдер правильно, как по маске
Аноним 18/11/17 Суб 22:53:05 457137101
>>457097
Никак.
У тебя шейдер получает данные только для одного меша и рисует только этот меш.
Аноним 18/11/17 Суб 22:54:21 457138102
>>457137
Тссс, не рушь его мирок.
Аноним 18/11/17 Суб 22:55:58 457141103
>>457100
Если я всё правильно понял, то тебе хочется голубую обводку нарисовать, так?
Попробуй сделать так: 1 меш -- это планета. У неё рисуются фронт-фейсы, 2 меш -- это атмосфера. У неё рисуются только бэкфейсы.
Аноним 18/11/17 Суб 22:57:11 457143104
>>457138
Схуяли? Я что пидораха, чтобы над незнающими насмехаться?
Как же вы заебали, чесслово.
Аноним 18/11/17 Суб 23:12:35 457146105
Чо бля, никто не знает как называется эта кромка света правильно по научному?
Вот при затмении, на "поверхности" Луны это называется короной, а вот на "поверхности" атмосферы земли - есть свое имя.
Аноним 18/11/17 Суб 23:46:51 457151106
>>457100
Угла между нормалью и камерой достаточно чтобы правдоподобно зафейкать же.
Аноним 19/11/17 Вск 02:23:22 457158107
Сап, юнач. Поясни за сишарп. Смотрю тутор по скавенжерам, здесь в BoardManager в InitialiseList () этот самый лист сначала очищают. Объясни нахуя, ведь мы, вроде как, для каждого уровня создаем отдельный объект BoardManager, так зачем очищать тогда? Извиняйте, если вопрос нубский, я в программированиях не разбираюсь.
Аноним 19/11/17 Вск 10:02:15 457168108
>>457137
Да, я уже почитал об этом, спасибо.
Аноним 19/11/17 Вск 12:06:09 457173109
Аноним 19/11/17 Вск 14:11:52 457193110
>>457158
Ты блядь исходники дай посмотреть. А заебали уже.
Аноним 19/11/17 Вск 14:29:41 457199111
А я запилил свой первый элемент ГУИ переопределяя базовый класс потом - покакал. А именно - слайдер с экспоненциальной шкалой. Есть замечания о том как это следовало сделать лучше (кроме скачивания говеных ассетов)
using System;
using UnityEngine.UI;

public class SliderExponential : Slider
{
private Func<float, float> getValueFunction = x => x;
private Func<float, float> setValueFunction = x => x;

public float expotentialValue
{
get
{
return getValueFunction(base.value);
}

set
{
base.value = setValueFunction(value);
}
}

public void setExpotential(Func<float, float> getValueFunction, Func<float, float> setValueFunction)
{
this.getValueFunction = getValueFunction;
this.setValueFunction = setValueFunction;
}
}
В Start() родителя нужно инициализировать slider.setExpotential(x => 0.1f x x, x => Mathf.Sqrt(x * 10f)); Вторая функция - обратная первой
Аноним 19/11/17 Вск 14:33:10 457201112
>>457199
Кроме слова base которое тут не нужно. Ну и разметка проебалась: x => 0.1f УМНОЖЬ СУКА x УМНОЖЬ СУКА x
Аноним 19/11/17 Вск 15:07:29 457215113
>>457201
Лол, на самом деле base нужно, без него логика ломается. Охуительная практика для разработки движка - использовать поле value рядом с зарезервированным словом value, 10 юнити из 10
Аноним 19/11/17 Вск 16:16:22 457231114
Аноним 19/11/17 Вск 16:23:59 457234115
Аноним 19/11/17 Вск 16:39:09 457239116
>>457234
Так про то и речь - оно заново не используется. В каждом экземпляре класса сначала создается List, потом очищается, а потом используется. Я этого не понимаю.
Аноним 19/11/17 Вск 16:57:35 457245117
>>457239
>Я этого не понимаю.

Потому как подобно 90% всех юнити-говнокодеров, ты сформировал мнение, мол, "C# простой, по сути - скриптовый язык, синтаксис выучил и все, готов в бой". Оно как бы так, однако знание простых основ целевого языка таки отсеяло бы 99% вопрос аналогично заданному.

Очистка даже новосозданного generic-массива а-ля List/Dictionary - просто common practices.
Аноним 19/11/17 Вск 17:59:28 457260118
>>457245
Нука нука. Давай снимай штаны и показывай где у тебя common и где practice
>мимокрокодил
Аноним 19/11/17 Вск 18:06:29 457262119
>>457245
>Очистка даже новосозданного generic-массива а-ля List/Dictionary - просто common practices.
Пруфы то будут?
Аноним 19/11/17 Вск 18:12:33 457263120
>>457260
>>457262
Да пжалста, есть куча аргументов за и против:

https://www.dotnetperls.com/list-clear
^ List.Clear() используется без пояснения, автоматом - common practice

А вот тут поясняется:
https://stackoverflow.com/questions/1969993/is-it-better-to-return-null-or-empty-collection

А вот тут чувак, будучу модным круты contrarian? хайпит и зарабатывает brownie points, пихая "мэтров" (в его воображении) с горы и заявляя обратное:
https://www.codeproject.com/Articles/794448/Is-it-Really-Better-to-Return-an-Empty-List-Instea

То есть все как обычно. Выводы делайте сами.

Кул-стори тайм:

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

Это как использовать `internal` для класса или нет - каждый сам решает.
Аноним 19/11/17 Вск 18:28:37 457267121
33cb33bca42f8ec[...].png (801Кб, 794x798)
794x798
>>457263
Братишка, ты вообще в курсе что твои ссылки не имеют отношения к тому что надо очищать список после создания? В первой, например, пишут что надо ИЛИ создавать новый список ИЛИ очищать
Аноним 19/11/17 Вск 18:31:21 457270122
>>457267
Возвращайся, как прочитаешь полностью и вникнешь.

Вообще, заметив в чужом коде кучу странных вещей, как тот же List.Clear(), у тебя должен резонно возникнуть вопрос - а заче--, ох, да вот жеж блять этот вопрос: >>457158

Ну пиздец, ты еще не только приведенные аргументы не читаешь, да и сам тред тоже. Ну и нахуй ты тогда?
Аноним 19/11/17 Вск 18:34:04 457273123
>>457270
Пиздец ты поехавший, приводит статьи на другие темы и еще чем то не доволен. Вообще в ахуе, сижу проигрываю с тебя а мог бы игры делать
Аноним 19/11/17 Вск 18:35:51 457274124
>>457273
>а мог бы игры делать
Ага, игры от индюка, кто даже basics C# не знает. Игры типа:
>>456864
этого высера
Аноним 19/11/17 Вск 18:40:16 457275125
>>457274
А вот и подрыв. Вместо того что бы признать что ты обосрался и привел левые примеры в которых clear() и используется то всего то полтора раза
Аноним 19/11/17 Вск 18:49:57 457276126
>>457275
>Вместо того что бы признать что ты обосрался
Ты из /b/ сюда пришел, что ли? Этот старый прием там со школотой на ура работает, мол, заявить что кто-то обосрался и спровоцировать его на damage control.

Поясняю на пальцах: тут никто никому ничего не должен. Чувак задал вопрос, я ответил. Ответ не понравился - ну и ладно, никто не обязан его принимать, как святые скрижали.
Но если ты заявил, что он тебе не понравился потому как НЕПРАВИЛЬНЫЙ: будь добр, сучечке, доказать это и обосновать свою позицию.

ну это я, конечно, замахнулся, доказать ты ничего не сможешь и тупо в обратку пойдешь на перекидывание стрелок, ad hominem и strawman/
Аноним 19/11/17 Вск 18:51:11 457277127
Аноним 19/11/17 Вск 18:55:52 457278128
>>457276
Но ведь доказывать СВОЕ утверждение должен был ты, но не смог, приведя ссылки на рандомные статьи. О чем я тебе и говорю, с сожалением и сочувствием так то обосраться прилюдно
Аноним 19/11/17 Вск 19:02:46 457282129
>>457278
>Но ведь доказывать СВОЕ утверждение должен был ты
Что я и сделал. Нужно понять простую вещь: тот факт, что ты не считаешь мое доказательство правильным или не понимаешь его - не значит, что оно не правильное.

А вот еще одна вещь: вместо того, что бы как глупый попугай повторять "ты не прав, ты не прав", мог бы уже привести правильное доказательство на поставленный оригинальный вопрос, которое, в сравнение с моим доказательством, было бы более весомым и актуальным и, соответственно, нивелировало мое.

Внимание, риторический вопрос: почему ты еще этого не сделал?
Отвечать не нужно.
Аноним 19/11/17 Вск 19:19:58 457286130
>>457282
>что ты не считаешь мое доказательство правильным или не понимаешь его - не значит, что оно не правильное.
>
Братишка, я говорю что ты рандомные статьи привел, которые никак не являются доказательством того что Очистка даже новосозданного generic-массива а-ля List/Dictionary - просто common practices

я прям как с пахомом тут сижу и доказываю очевидные вещи
Аноним 19/11/17 Вск 19:28:46 457287131
goalposts.jpg (26Кб, 300x240)
300x240
>>457286
Ну так докажи, в чем проблема, приведи более правильные, вот и все.
Аноним 19/11/17 Вск 19:45:13 457291132
>>457287
Братишка, как я тебе приведу более правильные доказательства не существования common practice? Чайком тебя не ошпарить?
Аноним 19/11/17 Вск 19:50:37 457292133
>>457291
>как я тебе приведу более правильные доказательства не существования common practice?
Ну как я и сказал, ты будешь переводить стрелки. Мы же оба прекрасно понимаем, что тебе не нужно этого доказывать, тебе лишь нужно привести своё доказательство и пояснение на вопрос >>457158:

>Почему List.Clear() так используется.

Вот и все.
Само собой сделать ты этого не можешь, поэтому занимаешься goalposts moving - делая вид, что объект аргумента был совсем другой (как правило, в подобных случая выбирают более широкий топик, который в принципе доказан или опровергнут быть не может, ты выбрал адресацию common practices, хотя это НЕ было вопросом или субъектом его, это было частью моего ответа) и тем самым смещая линию обсуждения на другой топик.
Аноним 19/11/17 Вск 19:56:21 457293134
Аноним 19/11/17 Вск 20:04:25 457295135
>>457292
Братишка, ты же поехавший, доказывай давай свое первоначальное утверждение Очистка даже новосозданного generic-массива а-ля List/Dictionary - просто common practices или уже признавай что обосрался, хуле ты.

Алсо, чайку попей https://ru.wikipedia.org/wiki/Чайник_Рассела
Аноним 19/11/17 Вск 20:07:27 457296136
>>457295
Зачёсывать про Чайник Рассела в 2018-ом? Серьёзно?
мимо шёл, нахуй пошёл
Аноним 19/11/17 Вск 20:47:50 457300137
14856781384240.jpg (30Кб, 680x510)
680x510
>>457158
Короче почитал ваш срач, даже интересно стало. Скорее всего это сделано для удобства расширения. Никакого сакрального смысла в очищении листа после создания нет. Просто потом этот метод может вызываться чтобы ВНЕЗАПНО очистить aka инициализировать лист, что и подразумевается из его названия.
Аноним 19/11/17 Вск 20:49:46 457302138
>>457300
ps весь тутор я не читал, может там этот боард менеджер используется повторно, учитывая что initialize принимает номер сцены в качестве аргумента
Аноним 19/11/17 Вск 21:13:23 457307139
>>457293
>>Is it better to return null or empty collection?
Ну вот теперь перечитай и задумайся, где же тут ответ.

Альсо,
>https://www.dotnetperls.com/list-clear
не был ответом на вопрос, это было частью ответа, в которой я показал пример аналогичного использования .Clear() (outside of Unity-sphere)

>>457295
Свой ответ на вопрос анона у тебя есть или нет?
Есть - выкладывай, нет - не отвечай.

>>457302
>может там этот боард менеджер используется повторно

ЕСЛИ используется повторно, то тогда ответ очевиден.
Однако же, это не умаляет оригинального вопроса, ибо я привел пример использования в контексте, где инстанция не реюзается.

И вообще, common practices - это не знак "правильного кода", не призывк действию, мол, если ты так не делаешь - то лопух. Понимайте это банально как "привычка" или "так принято". Вы не раз встретите еще аналогичные примеры в чужом коде,с опытом придет понимание и таких вопросов не будет.

А вообще, можно, блять, банально хотя бы Шарп по книге поучить, там уже ответы есть на подавляющее большинство подобных вопросов.
Аноним 19/11/17 Вск 21:28:02 457310140
>>456736 (OP)
Херачу на ведро, проблема такая. После компиляции, на телефоне в одной сцене не отображается часть объектов, хотя во вкладках сценс и гейм все ок. Камера перспектив.
Аноним 19/11/17 Вск 21:53:21 457315141
>>457307
>Альсо,
>>https://www.dotnetperls.com/list-clear
>не был ответом на вопрос, это было частью ответа, в которой я показал пример аналогичного использования .Clear() (outside of Unity-sphere)
Ты - законченный дегенерат. Там clear используется для очистки существующего списка а не свежесозданного
Аноним 20/11/17 Пнд 02:27:49 457373142
А как вообще ассеты лицензируются? Правильно ли я понимаю, что можно зайти на assetstore.unity3d.com, выбрать любые ассеты с подписью FREE, нажать Add to Downloads, скачать их, вставить в свою игру и заработать на ней 100к долларов (да кого я обманываю, 15 баксов на плеймаркете - уже неплохо) ничего так и не заплатив автору? Или есть какие-то тонкости и нюансы?
Аноним 20/11/17 Пнд 02:28:59 457374143
>>457373
> Правильно ли я понимаю, что можно зайти на assetstore.unity3d.com, выбрать любые ассеты с подписью FREE, нажать Add to Downloads, скачать их, вставить в свою игру
Да.
> заработать на ней 100к долларов
Нет.
Аноним 20/11/17 Пнд 02:32:28 457375144
>>457374
Что да/нет? То, что я смогу физически их вставить в свою игру - я и так знаю. Интересует правовая сторона вопроса.
Аноним 20/11/17 Пнд 02:33:51 457376145
>>457375
> Интересует правовая сторона вопроса
В ассетах пишут, даёт ли автор право использовать их в коммерческих целях.
Аноним 20/11/17 Пнд 02:35:44 457377146
>>457376
Где? Я в глаза долблюсь. Или можно только те, в которых написано что разрешено?
Аноним 20/11/17 Пнд 02:37:11 457378147
>>457377
> Или можно только те, в которых написано что разрешено?
Если пишут что разрешено — значит смело хуярь.
Обычно пишут "для ознакомления" или "можно смело пидорить и продавать".
Аноним 20/11/17 Пнд 02:41:57 457380148
>>457378
Я вот прямо сейчас с десяток рандомных фриассетов открыл - нигде подобного не написано.
Аноним 20/11/17 Пнд 02:48:37 457381149
Аноним 20/11/17 Пнд 03:03:30 457382150
>>457381
>In order to use Unity Asset Store you must be 18 years of age or older. On using the service you warrant that you have legal capacity to enter into the agreement.
Ну ахеть теперь. Если правда вскроется - мои игры удалят, а заработанные копейки потребуют вернуть?
Аноним 20/11/17 Пнд 03:04:41 457383151
>>457382
> Если правда вскроется
Какая? Что тебе 15?
Аноним 20/11/17 Пнд 03:06:29 457384152
Аноним 20/11/17 Пнд 04:21:22 457388153
Аноним 20/11/17 Пнд 07:16:01 457392154
>>457310
Плюсом даже коллайдер работает.
Аноним 20/11/17 Пнд 10:50:41 457409155
Аноним 20/11/17 Пнд 11:20:25 457415156
>>457384
Лучше б к ЕГЭ готовился. У Люськи вон сын уже все учебники наизусть выучил.
Аноним 20/11/17 Пнд 12:42:08 457440157
Почему курсор лочится в центре окна Game? Неудобно тестить гуй очень
Аноним 20/11/17 Пнд 15:03:45 457467158
>>457415
Я немножко призер всероса по математике, мне ЕГЭ не нужно.
Аноним 20/11/17 Пнд 15:06:40 457469159
Аноним 20/11/17 Пнд 15:32:22 457472160
>>457467
Нужно или не нужно, а сдавать придётся.
Аноним 20/11/17 Пнд 15:36:24 457474161
>>457467
Жестко, а как готовился? Какую теорию помимо егэшной нужно знать?
Аноним 20/11/17 Пнд 15:50:47 457475162
image7159.jpg (276Кб, 1240x739)
1240x739
>>456736 (OP)
Кирюша, очень серьезный вопрос.

Какая практическая разница между использование CommandBuffer vs Graphics, в создании скрин-спейс ефектов.

Вообще какая между ними разница, мб командБуффер помогает как то по ресурсам выигрывать, я так понял это более низкоуровневая поебота?

У меня вот задача сделать "скрин спейс фог", под мобилки. Естественно, желательно мммаксимально дешево.
Аноним 20/11/17 Пнд 16:28:07 457480163
>>457475
>мб командБуффер помогает как то по ресурсам выигрывать
Блять, вам профилирование на что? Сделай оба варианта и смотри, что будет быстрее в твоем случае.
Однозначного ответа нет
Аноним 20/11/17 Пнд 17:24:14 457485164
Котики, у меня иногда из-за ошибок код уходит в while(true){}. Можно ли как то вывести редактор из бесконечности иначе чем через убивание процесса?
Аноним 20/11/17 Пнд 17:26:00 457486165
>>457485
То есть ты задаёшь бесконечный цикл в одном из кадров, и удивляешься что следующий кадр не прорисовывается?
Аноним 20/11/17 Пнд 17:27:38 457489166
>>457485
break?
Можно включить в цикл таймер и брейкать если занимает более чем n секунд/минут
Аноним 20/11/17 Пнд 17:34:05 457490167
>>457486
>То есть ты задаёшь бесконечный цикл в одном из кадров, и удивляешься что следующий кадр не прорисовывается?
Ниет жи, я пишу йоба-условие которое иногда содержит ошибки и уводит цикл в бесконечность.

>>457489
>break?
>Можно включить в цикл таймер и брейкать если занимает более чем n секунд/минут
Спасибо, но имел в виду что то встроенное в систему. Типа ставишь брекпойнт, и останавливаешь выполнение кода нафиг, выходя таким образом из бесконечности
Аноним 20/11/17 Пнд 17:36:35 457491168
>>457490
Используй корутину, Люк. Даже если уйдёшь в бесконечность - ничего не сломаешь.
Аноним 20/11/17 Пнд 17:36:39 457492169
>>457490
>Типа ставишь брекпойнт, и останавливаешь выполнение кода нафиг, выходя таким образом из бесконечности
Ну брейкпоинты в дебагерре есть, однако откуда дебагерру знать, что ты в "неправильном" бесконечном цикле
Аноним 20/11/17 Пнд 18:22:55 457500170
>>457492
>Ну брейкпоинты в дебагерре есть, однако откуда дебагерру знать, что ты в "неправильном" бесконечном цикле
Жаль нет в call trace кнопки terminate process nahui

>>457491
>Используй корутину, Люк. Даже если уйдёшь в бесконечность - ничего не сломаешь.
Спасибо
Аноним 20/11/17 Пнд 18:38:42 457506171
>>457480
Ну была же у них причина пилить два отдельных класса...ну выжеумные лучшечемгугл!

Алсо, заказал хозяина купить мне пикрил. Годное чтиво? На компе полистал, вроде все чинно: буквы в ряд, слова в предложения, да и по теме.
Аноним 20/11/17 Пнд 19:08:32 457509172
Все тот же любознательный ньюфаг в треде, и таки с первым вопросом.
Дано 2D поле, на котором по заданными минимальным и максимальным float-координатам пространстве рандомно спавнится заданное количество звезд. Естественно, из-за float существует вероятность что звезды заспавнятся почти друг на друге.
Какие есть простые способы решить это, не вводя клетки в игру? Была идея решить через проверку коллизий, но сначала она не заработала в 2D режиме, а потом при рассуждениях я подумал что идея не выгорит (чтобы проверить коллизию нужно чтобы звезда заспавнилась, а значит ещё нужно будет её удалять если место неудачное, и по идее это будет тупо долго так вот спавнить-удалять пока не найдется подходящее место).
Аноним 20/11/17 Пнд 19:12:35 457510173
>>457509
1. Сгенерируй рандомно точку
2. Для каждой звезды проверяй расстояние от этой точки. Если расстояние меньше размера звезды, то goto 1
Аноним 20/11/17 Пнд 19:29:07 457514174
>>457509
Можешь все звезды, точнее, их координаты в список и затем по циклу проверяй каждый новый сгенеренный результат, если слишком близко, делай оффсет или пропускай.

Это медленно, но если операция нужна лишь однажды при загрузке - пойдет.
Аноним 20/11/17 Пнд 21:17:44 457531175
>>457506
> пикрил. Годное чтиво?
Охуенное.
Аноним 20/11/17 Пнд 22:47:13 457544176
>>457475
У меня для тебя два слова:
С Т Е Н С И Л
Ф У Ф Е Л
Аноним 20/11/17 Пнд 23:14:00 457552177
48505240OTUnity[...].jpg (6Кб, 150x185)
150x185
>>457531
>пикрил
А ну жа, вот он.
В край я уже уебался, походу.
Аноним 20/11/17 Пнд 23:42:16 457553178
>>457472
Нет, всерос не нужно подтверждать результатами ЕГЭ. Даже ДВИ сдавать не нужно, зачисление вне конкурса по диплому и аттестату.

>>457474
Вся суть олимпиад школьников в том, что теория не выходит за рамки школьной программы. Но всякие основы алгебры, аналитической геометрии, теории чисел и, в особенности, теории игр, дискретки и логики будут очень полезными. Причем оттуда необходимы не сами формулы и понятия, а именно методология рассуждений и поиска доказательств. Готовился просто, без задней мысли.
Аноним 21/11/17 Втр 03:02:37 457561179
>>457409
Ты пиши свою подпись под основным текстом, а не над, а то я на секунду подумал, что по твоей ссылке опровержение моих слов.
Аноним 21/11/17 Втр 06:49:39 457572180
Кармаки, макмини самый дешёвый подойдёт для билдов под иос?
Аноним 21/11/17 Втр 09:45:32 457589181
Много раз слышал такое мнение, что программирвоание на С# и Unity не особо улучшает тебя, как программиста. Мне это кажется довольно странным, потому что в играх логика гораздо сложнее, чем, например, в каком-нибудь веб-приложении, да и применять ООП в игорях, по-моему, надо постоянно. Поясните за этот момент, геймдев-бояре.
Аноним 21/11/17 Втр 10:13:26 457590182
a966f4d587ac378[...].pjp (39Кб, 560x432)
560x432
>>457589
>в играх логика гораздо сложнее


Аноним 21/11/17 Втр 10:15:52 457591183
>>457590
>гринтекст
Пруфни. Только не сравнивай сапер с автокадом.
Аноним 21/11/17 Втр 10:26:38 457593184
>>457589
> что программирвоание на С# и Unity не особо улучшает тебя, как программиста
Конкретно это, в контексте Юнити и c# - правильно.

А вот это:
>потому что в играх логика гораздо сложнее
тупая генерализация, потому как игры могут быть написаны на любом другом языке и движке, в том числе и своем. Как пример: UE4 и С++ это вообще другая весовая категория.
Аноним 21/11/17 Втр 12:07:37 457601185
Как сделать чтобы в 2д герой не соскальзывал с платформы? Попробовал метод от сюда:
https://null-code.ru/solution/41-vzaimodeystvie-s-dvizhuscheysya-platformoy-liftom.html
Типа всё, что контактирует с платформой, становится дочерним объектом, но код нихуя не работает,хз, я нуб, помогите
Аноним 21/11/17 Втр 12:11:36 457603186
>>457601
Бля отбой, перезагрузил студию и всё заработало. Заебало это кстати, что часто код не работает, потому что что-то юнити не улавливаетс первых разов
Аноним 21/11/17 Втр 12:34:41 457612187
>>457603
Всмысле?
Ctrl+S не помогает? Студия просто не автосейвит.
Аноним 21/11/17 Втр 12:37:21 457613188
>>457589
В Юнити слишком легко набраться плохих привычек, что может быть плохо если ты до Юнити ничего не знал. В противном случае ты будешь кодировать и плакать, плакать и кодировать, настолько Юнити в этом аспекте ужасно.
ООП в играх имеет принципиальные проблемы: http://cowboyprogramming.com/2007/01/05/evolve-your-heirachy/ Data oriented design работает лучше.
Аноним 21/11/17 Втр 12:51:56 457616189
>>457612
Да не всегда, хз что за фигня
Аноним 21/11/17 Втр 13:59:05 457628190
>>457613
интересно узнать о каких привычках речь
21/11/17 Втр 14:29:22 457631191
>>457628
Синглетоны на каждый чих, сильное связывание, связывание через редактор, говнокод вообще, Invoke, SendMessage. Это краткий список. Юнити не предлагает тебе никакой архитектуры или структуры, тебе дают API, редактор, сборку и MonoBehaviour - ебись с этим всем сам конём. Получается совершенно лютые формы народного творчества в реальных играх.
Анрыл хотя бы предлагает более-менее чёткую структуру.
Аноним 21/11/17 Втр 14:42:24 457634192
Как сделать объект радиус, при попадании в который этот объект за мной начинал бегать? Я это все сделал, но сделал через OnTriggerEnter и колижн бокс, всё круто, но только есть баг, колижнбокс хоть и триггер, но всё равно часто нажимая влево-вправо и подпрыгивая, я умудряюсь отталкиваться от него, хотя при триггер такого не должно быть, чяднт?
Аноним 21/11/17 Втр 14:44:21 457635193
>>457634
> радиус, при попадании в который этот объект за мной начинал бегать?
Тебе именно радиус вокруг объекта? Типа "если подошёл на метр, то хуё-моё", или, скажем так, "угол зрения"?
Аноним 21/11/17 Втр 14:47:20 457637194
>>457631
> Синглетоны на каждый чих
Но что в этом плохого, если смысл синглотона оправдан? Инвентарь у игрока почти всегда один, если не пилить тактикул, например.
21/11/17 Втр 14:55:49 457638195
>>457637
Это ровно то что я и имею ввиду под "плохими привычками".
1. Ты привязываешься к конкретной реализации инвентаря. Слишком легко добавить ещё одну функцию которая вроде бы не совсем инвентарь но всё же связана. Инвентарь превращается в монстра делающего всё, включая кофе.
2. Через N месяцев код будет настолько запутанным и напичкан взаимными связями что каждое изменение где угодно будет что нибудь ломать в другом месте
Связи должны быть явными, хорошо видимыми, через прописанные интерфейсы и разрешаться через DI по возможности.
Аноним 21/11/17 Втр 14:56:15 457639196
>>457634
Извиняюсь за проёбанные окончания в словах.
>>457635
Мне надо, что бы когда я подошёл к этому объекту, он подлетел ко мне и дальше за мной летал, никак не взаимодействуя своим телом с другими объектами, пролетал сквозь всё подряд, но мог бы в будущем стрелять. Мы говорим о 2д.
>Типа "если подошёл на метр, то хуё-моё", или, скажем так, "угол зрения"?
Да можно и то и то. Я просто пока догадался только сделать колайдер с радиусом, и через онтриггеринтер оттдавать комнаду на привязку к герою, типа зашел в область коллайдера, начал действовать метод. Мне нужен способ без использования колайдера, если есть такой, ну или че с этим колайдером сделать, что бы он не баговал так. Мне пригодится потом в программировании врагов
Аноним 21/11/17 Втр 14:58:44 457640197
>>457639
> Да можно и то и то
Если чисто радиус, то бери расстояние от игрока до моба, нахер тебе онтриггерэнтер лишний раз дрочить?
А если угол зрения, то помимо радиуса проверяй угол между "зрением" моба и позицией игрока. Если угол меньше заданного (например, 45 градусов) и расстояние попадает в условие, то начинай за ним бегать под Бенни Хилла.
Аноним 21/11/17 Втр 15:01:04 457641198
>>457640
Можешь пример с кодом кинуть, как угол этот прописать, как это "зрение" представить?
Аноним 21/11/17 Втр 15:05:26 457643199
>>457641
Ну, например

Transform player;
float angleV = 45f;
float playerDist = 2f;

void Start () {
player = GameObject.Find ("Player").transform;
}

void Update () {
if (player) {
float dist = Vector3.Distance (transform.position, player.position);
Quaternion look = Quaternion.LookRotation (player.transform.position - transform.position);
float angle = Quaternion.Angle (transform.rotation, look);
if (angle <= angleV && dist <= playerDist) {
//тут уже пиши что тебе надо, побегушки за игроком, посвистывание и попёрдывание
}
}
}
Аноним 21/11/17 Втр 15:18:14 457646200
20f040eb0e56405[...].jpg (76Кб, 700x463)
700x463
Добрый день, господа.

В начале осени решил получить работу в GameDev. Читал учебники, срал в тредспасибо за ответы, экспериментировал с 2D. Хотел к новому году запилить небольшой но свой проект, написать немного документации и с этим добром обивать пороги студий дабы получить работу. Стремлюсь к должности Game Designer И вовсе не потому что я ничего не умею но хочу делать игры. Это взвешенное, осознанное решение основанное на самоанализе.

Две недели назад узнал об одном мероприятии, на котором, теоретически, меня могут схантить. В связи с этим, было принято решение запилить хоть что-то играбельное из экспериментальной каши.

Вопрос только один - с этим можно на что-то рассчитывать?

Скачать бесплатно, без регистрации и смс:
drive.google.com/file/d/1ypTcc28LPZOWTM0rB_8gN4JH4FbfTngK/view

Арт и звук из открытых источников. Ассеты не использовал (кроме частиц)
Аноним 21/11/17 Втр 15:18:33 457647201
>>457631
ты какую-то дикую хуйню написал. все это - инструменты. погромист не становится плохим от того что ими пользуется.

>>457638
по моему ты сам являешься плохим погромистом если ты в здравом уме думаешь что люди которые пишут код в юнити не рефакторят его.
Аноним 21/11/17 Втр 15:29:26 457648202
>>457646
> Стремлюсь к должности Game Designer
чтобы стать гейдизайнером ты должен сперва сделать парочку годных игр в соло. таких кирюх с АХУИТЕЛЬНЫМИ ТОП ЕДЕЯМИ ЛУДШЕЙ ЕГРЫ различной степени всратости жопой жуй, спрева докажи что чего-то стоишь
Аноним 21/11/17 Втр 15:40:33 457649203
>>457648
>АХУИТЕЛЬНЫМИ ТОП ЕДЕЯМИ ЛУДШЕЙ ЕГРЫ
Это не идея охуительной игры. Это что-то полностью сделанное мною. Просто демонстрация того, что я что-то могу.

>ты должен сперва сделать парочку годных игр в соло
Довольно высокий порог, тебе не кажется?
Аноним 21/11/17 Втр 15:42:23 457650204
>>457649
важная должность - высокий порог. геймдизайнеры никому нахуй ненужны, если не понимают как делаются игры.
Аноним 21/11/17 Втр 15:46:08 457652205
>>457650
Я понимаю. И стремлюсь понимать ещё больше. По крайней мере, я твердо уверен в этом
Аноним 21/11/17 Втр 15:49:26 457653206
>>457652
ты не понимать стремись, ты игры стремись делать. твое понимание бесполезно, в отличии от умения делать игры.
Аноним 21/11/17 Втр 15:56:03 457654207
>>457638
Ты сейчас описал не то, почему синглтон будет плохо использовать для инвентаря, ты описал ситуацию, в которой синглтон просто будет лежать в куче лапши. Плохому танцору и кривой пол мешать будет.
>>457646
> Скачать бесплатно, без регистрации и смс:
Больше смахивает на прототип, и дело даже не в графоне. Графон ничего так, вернул меня во время фанатских карт на SC:BW. Но геймплей слишком вялый.

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

Я бы сделал больший упор на разнообразие оружия, чтобы игрок мог выбрать подходящий ему способ убийства мобов и добавил второстепенные оружия, которые бы замедляли, травили, поджигали мобов.
Плавное торможение стоит либо убрать, либо подкрепить большим количеством этих зеленых лазеров (я так понимаю, они наносят урон игроку), чтобы можно было в них легко въебаться по неосторожности.
Мобы впитывают слишком много урона, стоит сделать их опаснее. Либо превратить их в пушечное мясо, с которым ходят более-менее опасные противники. Соответственно, впускать игрока на арену со всякими бочками, укрытиями и т.п.
Аноним 21/11/17 Втр 16:03:07 457655208
>>457654
Это и есть прототип. То, что смог с нуля сделать за 2 месяца. И я никогда не собирался это резилить ни в каком виде. Только показать работодателю.

Спасибо за фидбек. До 2 уровня дошел?

>>457653
Я тебя понял. Хуячу дальше.
Аноним 21/11/17 Втр 16:23:37 457656209
>>457643
Не взлетает чёт. Если проверку на угол убераю, то реагирует, но не так как мне надо, я не пойму как сделать...если я отхожу от объекта, расстояние теряется и объект перестает за мной бегать, а мне надо, что бы он один раз активировался и постоянно действовал. Я пиздец чёт тупой, мозг не привык в таком ключе мыслить...
Аноним 21/11/17 Втр 16:34:33 457657210
как блять сохранить проект в юнити, чтобы потом можно было открыть его. и продолжить работать. а то я сохраняю, запускаю, все ок, работает, закрываю, открываю заново и у меня ващи нихуя нет, ни камеры, ни объектов ни хуя. все в папках. а на главном окне рабочем пусто
Аноним 21/11/17 Втр 16:37:01 457658211
>>457655
> Только показать работодателю.
Тогда отполируй это и сложи в портфолио.
Аноним 21/11/17 Втр 16:37:08 457659212
>>457656
Используй булевую переменную, например followON.
Аноним 21/11/17 Втр 16:42:24 457661213
>>457657
Сцену открой, идиот.
Аноним 21/11/17 Втр 16:45:13 457663214
>>457631
>Юнити не предлагает тебе никакой архитектуры или структуры

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

>>457638
>разрешаться через DI по возможности
Что за DI?

Аноним 21/11/17 Втр 16:49:14 457664215
>>457663
>Что за DI?
Data Interface

У Unity есть похожий аддон под названием ECS - Entity System, он - data-driven
Аноним 21/11/17 Втр 17:23:25 457666216
>>457646
Знаешь, чем занимается гейм-дизайнер? И кто на самом деле придумывает игры?
Аноним 21/11/17 Втр 17:25:08 457669217
>>457631
> Invoke, SendMessage
Не использовал это ни разу.
> Синглетоны на каждый чих
Не делаю их.
> Юнити не предлагает тебе никакой архитектуры или структуры
Я сам ее делаю.
Вообще, я почти все свожу к дефолтномуотносительно ооп.

Я нормален?
Аноним 21/11/17 Втр 17:27:40 457670218
Аноним 21/11/17 Втр 17:28:59 457672219
>>457643
>>457641
>>457640
хех мда, а могли бы по-нормальному через свое скалярное произведение запилить, а не через какие-то там кватернионы.
Аноним 21/11/17 Втр 17:33:19 457673220
>>457670
Ну типа того. А если в мобильный ф2п проект, то нужно учиться тервер и как задизайнить микротранзакции в матч3
Аноним 21/11/17 Втр 17:37:36 457674221
>>457669
>Не использовал это ни разу.
а зря. иногда полезно. но обычно нет.

>Не делаю их.
интересно как же ты тогда гуи делаешь, например. че, даже менеджеров не делаешь? человек ли ты?

>Я нормален?
учитывая что ты не пользуешься какими-то инструментами по мутным причинам то не очень. дальше что? goto не использовать?
21/11/17 Втр 17:39:26 457675222
>>457647
Я являюсь тимлидом с 4 юнити-погромистами в подчинении - они творят такую хуйю что волосы на жопе шевелятся. Всё что написал - не более чем краткий обзор типичного народного творчества.
>>457654
Типично где есть синглетоны там есть и лапша.
>>457663
>Что за DI?
Dependency Injection. Ты не пишешь "вот ты, да ты, дай мне инвентарь", ты пишешь "мне нужен инвентарь для работы" и система снаружи тебе его даёт и тебя не ебёт откуда он приехал.
Аноним 21/11/17 Втр 17:41:38 457676223
>>457643
>>457672
Это будет более expensive d Update.

Представь у тебя 100 врагов на каждом левеле.

OnTrigger лучше.
Касательно:
>Я это все сделал, но сделал через OnTriggerEnter и колижн бокс, всё круто, но только есть баг, колижнбокс хоть и триггер, но всё равно часто нажимая влево-вправо и подпрыгивая, я умудряюсь отталкиваться от него
>я умудряюсь отталкиваться от него
Дрочи Physical Layers и ignore mask
Аноним 21/11/17 Втр 17:42:25 457677224
>>457675
>Ты не пишешь "вот ты, да ты, дай мне инвентарь", ты пишешь "мне нужен инвентарь для работы" и система снаружи тебе его даёт и тебя не ебёт откуда он приехал.
То есть SendMessage/broadcastMessage аналог
лолка
Аноним 21/11/17 Втр 17:45:53 457678225
>>457675
>Я являюсь тимлидом с 4 юнити-погромистами в подчинении
да как бы грош цена твоим заявлениям после написанного.

>Ты не пишешь "вот ты, да ты, дай мне инвентарь", ты пишешь "мне нужен инвентарь для работы" и система снаружи тебе его даёт и тебя не ебёт откуда он приехал.
про синглтон рассказал во дела
Аноним 21/11/17 Втр 17:48:08 457680226
>>457676
>OnTrigger лучше.
Поясни точнее, чем лучше, пожалуйста?
Аноним 21/11/17 Втр 17:52:25 457683227
>>457680
Это просто такие базовые вещи, надо с ними раз и навсегда разобраться, помогите аноны
21/11/17 Втр 17:57:14 457684228
>>457678
>про синглтон рассказал во дела
Ровно нет. DI и синглетоны это две противоположные вещи, pull vs push.
Аноним 21/11/17 Втр 17:58:41 457686229
>>457666
Знаю. И хочу как можно быстрее получать реальный боевой опыт, уйти в глубь специализации, а не дрочить индюшатину где ты на все руки мастер.

У меня есть все необходимые для этого качества. Мне просто нужно получить свою первую работу в GD.
21/11/17 Втр 18:00:42 457687230
>>457686
Дрочи эксель, главный инструмент геймдизайнера.
Аноним 21/11/17 Втр 18:03:18 457688231
>>457687
Язык и эмпатия. Вот два главных инструмента геймдизайнера. Остальное посредственно.
Аноним 21/11/17 Втр 18:57:32 457698232
>>457675
>система снаружи
Шта?
21/11/17 Втр 19:05:53 457699233
21/11/17 Втр 19:07:42 457701234
>>457688
Эмпатия не позволит тебе объективно проанализировать что именно делают игроки в игре.
Аноним 21/11/17 Втр 19:16:36 457704235
>>457699
Я серьезно.
В моем юнити нет никакой "системы снаружи", зато можно сделать GameManager, который будет выдавать ссылку на инвентарь, небо и аллаха.
21/11/17 Втр 19:25:46 457707236
>>457704
Снаружи - снаружи конкретного объекта. Ты не делаешь MyAss.Instance.Poo(), у тебя есть некий IAss ass значение которому подставляет внешняя по отношению к объекту система. Потом ты пишешь ass.Poo() и тебе нет дела до того чья эта жопа, ни как устроена.
Азубка софтварного проектирования же, ну!
Аноним 21/11/17 Втр 19:28:03 457709237
Screenshot1.png (19Кб, 763x408)
763x408
Меня не покидает ощущение того, что я долбоеб. Можно ли это как-то переписать? Массив нужен для конструктора юнита/NPC, чтобы определить, какие статы основные и накинуть к ним 10-15 поинтов.
Аноним 21/11/17 Втр 19:35:37 457711238
>>457709

public Characteristics[] CharArray{
get{
return new Characteristics[]{ Strength, Agility... };
}
}

Если нужно часто обращаться к массиву, то можешь закешировать массив и изменять его при изменении одной из стат.
Аноним 21/11/17 Втр 19:40:44 457712239
>>457701
Ты хочешь о чем-то поспорить? С одной стороны, именно благодаря эмпатии я могу ставить себя на место разных типов игроков и анализировать что они делают. С другой стороны никто не отменял аналитику и психологию.

Аноним 21/11/17 Втр 19:42:51 457713240
>>457711
> Characteristics
*Characteristic
21/11/17 Втр 19:43:19 457714241
>>457709
[Serializable], Characteristic - в struct
Аноним 21/11/17 Втр 19:44:47 457715242
>>457714
Нахуя ему в Struct? Что бы потом ебать голову с ref?
21/11/17 Втр 19:45:16 457716243
Аноним 21/11/17 Втр 19:52:49 457719244
e130524d4ee408a[...].jpg (62Кб, 503x514)
503x514
>>457707
А, это. Извечная проблема, понять людей, любящих говорить сложно об очевидный вещах.
Еще и с сажей пишет, тимлид мамкин.
Аноним 21/11/17 Втр 19:57:07 457720245
>>457711
> часто обращаться к массиву
Не, массив нужен чисто при генерации юнита, в остальных случаях нужны отдельные характеристики. Поэтому и возникла нужда в такой конструкции.
Аноним 21/11/17 Втр 20:49:42 457723246
>>457714
> [Serializable]
Это имеет какой-то дополнительный смысл кроме того, что я смогу править значения в редакторе?
> Characteristic - в struct
В чем соль? Типа референсы могут проебаться?
Не бейте, я нюфаг.
Аноним 21/11/17 Втр 21:03:23 457725247
>>457676
>Physical Layers и ignore mask
Повелосипедил посидел, так и не понял, как их использовать. Что мне нужно в объекте изменить, что бы он перестал контактировать с остальным говном?
Как из кода можно отключить box collider?
Аноним 21/11/17 Втр 21:06:37 457726248
>>457723
>Это имеет какой-то дополнительный смысл кроме того, что я смогу править значения в редакторе?
Гугли Unity data serializing/deserializing

>>457723
>В чем соль? Типа референсы могут проебаться?
Struct - value type.

>>457725
Зачем отключать? Выведи свои триггеры на отдельный phys layer и убери коллизию с layer игрока. ЕМНИП, в этом случае, OnTrigger все равно пашет.
но надо проверить
Аноним 21/11/17 Втр 21:15:49 457727249
>>457726
>убери коллизию с layer игрока
А как это делается?
Аноним 21/11/17 Втр 21:17:33 457728250
Аноним 21/11/17 Втр 21:25:23 457729251
>>457726
> Unity data serializing
Ага, насколько я понял, это нужно, для переноса данных между сценами, сессиями и т.п. Сделаю, как ты сказал, потом почитаю.
> Struct - value type.
Это-то я понимаю. Нагуглил вот эту статью: http://www.albahari.com/valuevsreftypes.aspx — встал вопрос:
Раз в игровую неделю будет обновляться список персонажей, которых можно нанять. Если использовать value type, это не будет раздувать используемую память? Или, если у меня NPC реализован через класс, то и его характеристики будут исчезать из памяти вместе с ним?
Я понимаю, что сейчас об этом нет особого смысла думать, пили прототип и не выебывайся, но мне уже просто любопытно, хочется же все ПО УМУ.
Аноним 21/11/17 Втр 21:27:05 457730252
>>457729
>Это-то я понимаю. Нагуглил вот эту статью: http://www.albahari.com/valuevsreftypes.aspx — встал вопрос:
>Раз в игровую неделю будет обновляться список персонажей, которых можно нанять. Если использовать value type, это не будет раздувать используемую память? Или, если у меня NPC реализован через класс, то и его характеристики будут исчезать из памяти вместе с ним?
>Я понимаю, что сейчас об этом нет особого смысла думать, пили прототип и не выебывайся, но мне уже просто любопытно, хочется же все ПО УМУ.

Тут нужно читать хендбуки по C# дабы понять какой, в твоем конкретном случае, вариант лучше.
Аноним 21/11/17 Втр 21:47:23 457733253
>>457730
Ладно. Я рад, что хотя бы конструкция с массивом на том скриншоте — это не вырвиглазный пиздец.
Аноним 21/11/17 Втр 22:06:21 457737254
>>457728
Да я смотрел это, тыкал эти галки, код всякий пробовал, нихуя не получается
Аноним 21/11/17 Втр 22:23:30 457739255
Screen Shot 201[...].png (4185Кб, 2054x1148)
2054x1148
Юзаю OverlapSphere для определения, пересекается ли гекс с объектами. Но если сфера находится полностью внутри коллайдера, то этот коллайдер не считается оверлапнутым.

Collider[] hitColliders = Physics.OverlapSphere(hit.point,trigger.CellSize*2);
if(hitColliders.ToList().Where(c=>Contains(obstacleLayer, c.gameObject.layer)).Count()==0)
{return true;}
else{ return false;}

Как можно получить эти самые объекты?
Аноним 21/11/17 Втр 22:34:01 457744256
>>457739
>if(hitColliders.ToList().Where(c=>Contains(obstacleLayer, c.gameObject.layer)).Count()==0)
Хз по вопросу, но я более чем уверен, что простой for for массиву с кондишенами будет быстрее и будет генерировать меньше отходов, нежели залупистый linq
Аноним 21/11/17 Втр 22:34:09 457745257
Аноним 21/11/17 Втр 22:41:03 457748258
>>457745
Хм, и правда. Только это какое-то кастыльное решение. И мне кажется капсюли будут больше жрать. Но попробую пока так.
>>457744
Оптимизатор, плиз. Есть сотни всякого говна, которое влияет на производительность больше, чем такие мелочи. У меня в колайдерах будет от силы объектов 5, я тут не бигдату ковыряю, чтобы писать лишние буквы ради пары наносекунд.
Аноним 21/11/17 Втр 22:45:00 457749259
Screen Shot 201[...].png (3518Кб, 1848x1142)
1848x1142
>>457745
Спасибо, работает.
Аноним 21/11/17 Втр 22:45:50 457750260
>>457748
> кажется капсюли будут больше жрать
Твоими же словами:
> Есть сотни всякого говна, которое влияет на производительность больше, чем такие мелочи.
Аноним 21/11/17 Втр 23:04:33 457755261
>>457750
Ну да, это то самое.
Короче это бессмысленный спор.
По запросу linq performance:
>The best practice depends on what you need:
>Development speed and maintainability: LINQ
>Performance (according to profiling tools): manual code
Аноним 21/11/17 Втр 23:06:49 457756262
>>457755
Не зная что конкретные linq-функции творят за кадром можно так нехило какать в heap.
А если это чудо еще и в Update и аналогах - это будет пиздец.
Аноним 22/11/17 Срд 00:15:47 457764263
>>457739
Чем гексы рисуешь? Просто префаб с прозрачным материалом?
Аноним 22/11/17 Срд 00:50:58 457765264
>>457756
Это эдитор гуи, а вообще прожекторами.
Аноним 22/11/17 Срд 00:58:21 457766265
HexFieldEditoro[...].webm (8736Кб, 754x480, 00:00:55)
754x480
Во
Аноним 22/11/17 Срд 13:31:51 457808266
Как лучше организовать генерацию уровня? На данный момент она у меня происходит прямо в Start(), а хотелось бы показывать игроку в этот момент какой-то loading screen. Запихнуть генерацию в корутину и из нее сигнализировать о прогрессе?
Аноним 22/11/17 Срд 15:08:50 457817267
Аноним 22/11/17 Срд 15:50:17 457829268
Безымянный.png (198Кб, 1895x1011)
1895x1011
Что за херня?
Аноним 22/11/17 Срд 15:51:47 457830269
>>457829
Юнити-девелопинг, всё нормально.
Аноним 22/11/17 Срд 15:53:00 457831270
>>457830
Это пофиксить можно?
Аноним 22/11/17 Срд 17:59:11 457850271
Аноним 22/11/17 Срд 18:26:35 457853272
>>457850
Точки же на стыке появляются.
Аноним 22/11/17 Срд 18:28:14 457854273
Аноним 23/11/17 Чтв 00:45:45 457915274
Сап
Впервые работаю с анимацией. Сделал быстренько модельку с анимацией в блендере, гружу в юнити. Все хорошо кроме правой руки. Рука и предплечье почему-то статичны, хотя в блендере анимация корректная. Причем правая ладонь двигается как надо, а рука и предплечье стоят на месте. Пробовал грузить и .blend файл, и экспортировать в .fbx. Наверняка кто-то сталкивался с таким. Как решить проблему?
Аноним 23/11/17 Чтв 00:47:03 457916275
2.JPG (43Кб, 361x457)
361x457
1.JPG (76Кб, 923x739)
923x739
>>457915
Забыл картиночки
1: хуйня в юнити
2: нормально в блендере
Аноним 23/11/17 Чтв 02:04:16 457926276
Screenshot2.png (6Кб, 333x247)
333x247
Screenshot3.png (8Кб, 554x276)
554x276
Аноны, кто-нибудь делал систему трейтов, например для RPG? У меня есть перечень трейтов, которые рандомно выдаются наемным персонажам. Что-то типа системы в Darkest Dungeon, где у персонажей могла развиться клептомания, они не могли использовать определенные здания/комнаты.
Проблема в том, что их нельзя систематизировать: какие-то трейты повышают стат или два, какие-то влияют на последствия взаимодействия с другим персонажем, какие-то повышают качество той или иной работы.
Можно ли сократить количество говна, которое придется писать ручками? Потому что пока что я могу только взять базовый класс на пик1 и от него делать детей как на пик2. В голову приходит только прикручивание ScriptableObject, чтобы дублировать классы для уровней трейтов и прописывать в редакторе переменные, ну и сделать контейнер, из которого трейты можно будет доставать при генерации персонажа.
Аноним 23/11/17 Чтв 03:03:58 457931277
>>457926
Scriptable обджекты выбирай, правда как вот это сделать - вопрос
>какие-то влияют на последствия взаимодействия с другим персонажем
Я вот собираюсь на скриптбл обджектах скоро систему скилов пилить, чуствую наебусь с логикой немало
Аноним 23/11/17 Чтв 03:08:10 457932278
Киньте плиз годный ассет с тряской камеры в 2d, или как это самому лучше всего сделать?
Аноним 23/11/17 Чтв 03:46:47 457935279
>>456736 (OP)
>The Unity Awards 2017 Winners:
>[YouTube] The Unity Awards 2017 Winners[РАСКРЫТЬ]
эту красоту делают одиночки или студии в 20+ рыл с суммарным оытом 100+ лет?
Аноним 23/11/17 Чтв 03:48:26 457936280
>>456736 (OP)
>Made With Unity 2D Games Showreel 2017: [YouTube] Made With Unity 2D Games Showreel 2017[РАСКРЫТЬ]
эту красоту делают одиночки или студии в 20+ рыл с суммарным оытом 100+ лет?

а есть пример того, что делают 1-3 чела, анпример?
Аноним 23/11/17 Чтв 06:27:45 457944281
>>457932
Подскажите код как сделать, через Random.insideUnitCircle хуита получается, она трясётся в одну какую-то сторону слишком
Аноним 23/11/17 Чтв 09:19:56 457966282
>>457944
Сам навелосипедил короче:
public float elapsedTime = 0F;
public float perlinNoiseY = 0F;
public float perlinNoiseX = 0F;
public float multiplier = 4F;

private float shakeTimer;
private float shakeAmount;
private bool isShaking;

private Vector3 startPosition;

private void Start()
{
startPosition = transform.position;
isShaking = false;
}
private void Update()
{
ShakeDiractionRnd();
if (Input.GetButtonDown("Fire1")) ShakeCamera(0.2F, 1);
//Move();
}
public void ShakeCamera(float shakePwr, float shakeDur)
{
isShaking = true;
shakeAmount = shakePwr;
shakeTimer = shakeDur;
}
private void ShakeDiractionRnd()
{
if (shakeTimer >= 0)
{
Vector3 rnd = Random.insideUnitCircle 2;
elapsedTime = Time.time;
perlinNoiseX = Mathf.PerlinNoise(elapsedTime, 0);
perlinNoiseY = Mathf.PerlinNoise(elapsedTime, 0);

transform.position = startPosition + new Vector3(perlinNoiseX
rnd.x shakeAmount, perlinNoiseY rnd.y * shakeAmount, transform.position.z);
shakeTimer -= Time.deltaTime;
}
else if (isShaking)
{
if (transform.position != startPosition) transform.position = Vector3.Lerp(transform.position, startPosition, 1.5F);
isShaking = false;
}
}

Только не получается камеру на startPosition плавно вернуть, не рабоатает Vector3.LerpюLerp, когда ставлю Time.deltaTime (сейчас там пока 1.5F, но не суть можно просто transform.position = startPosition написать):
f (transform.position != startPosition) transform.position = Vector3.Lerp(transform.position, startPosition, Time.deltaTime);
Аноним 23/11/17 Чтв 09:22:00 457967283
>>457966
Чёт знаки проебались
>transform.position = startPosition + new Vector3(perlinNoiseX rnd.x shakeAmount, perlinNoiseY rnd.y shakeAmount, transform.position.z);
Аноним 23/11/17 Чтв 09:22:46 457968284
>>457967
Хуйня какая-то, двач съедат знаки умножения
Аноним 23/11/17 Чтв 11:42:13 457982285
>>457968
> Хуйня какая-то, двач съедат знаки умножения
Ты откуда к нам такой? Про разметку не знаешь?
Аноним 23/11/17 Чтв 12:44:47 457990286
>>457982
Лол, я просто ебанулся походу от недосыпа
Скажите, эта тряска так и делается с Random.insideUnitCircle и Mathf.PerlinNoise, или можно только из нойза рандом замутить?
Аноним 23/11/17 Чтв 12:58:31 457992287
>>457966
Внутри лерпа твое 1.5F обрезается до 1,
а уже lerp(a, b, 1) = b, поэтому плавного перехода не будет. Поставь 0.5 к примеру
Аноним 23/11/17 Чтв 13:25:50 457997288
>>457990
> Скажите, эта тряска так и делается с Random.insideUnitCircle и Mathf.PerlinNoise, или можно только из нойза рандом замутить?
В вики вот такой пример лежит. Посмотри, может чего увидишь, что можно в свой велосипед засунуть.
http://wiki.unity3d.com/index.php/Camera_Shake
Аноним 23/11/17 Чтв 13:33:44 457998289
>>457997
>В вики вот такой пример лежит.
Ты же в курсе, что в Вики старье аж с 2011 года
Аноним 23/11/17 Чтв 13:34:36 457999290
>>457998
Ага. Только вот глянуть как делали диды — лишним не будет.
Аноним 23/11/17 Чтв 13:36:38 458001291
>>457999
Там большая часть все - уже неактуальна.
Аноним 23/11/17 Чтв 13:52:57 458005292
>>457992
Спасибо!
>>457997
Да я так и делал как тут написано сначала, потом вычитал про PerlinNoise, с ним эффект лучше выглядит. Да ладно, сейчас работает как нужно и ок, просто я думал может попроще можно наговнокодить. Получается в моём примере если делать без Random.insideUnitCircle, то получается это нойз в определенный вектор делает движение, если указать x и y, то камера просто по диагонали качается и все, я не долго думая добавил рэндом и сам не понял, что сейчас происходит. Получается каждая ось получает рэндомную точку в радиусе и от этой точке летит по perlinNoise куда-нибудь.
Вся соль в том, что если, как из той вики, использовать только Random.insideUnitCircle, то камера трясётся не плавно и в одну сторону её уносит, а если добавить perlinNoise, тогда тресётся плавно и никуда её не уносит
Аноним 23/11/17 Чтв 14:52:40 458018293
14912523782381.jpg (353Кб, 1920x1080)
1920x1080
Дратути
Что скажете на счет визуального скриптинга, ктонибудь юзает?
Хотелось бы обмазаться ассетами или дополнениями там всякими и чисто мышкой элементарные вещи делать.

Мне например для UFPS надо сделать плавание, наверное это невидимый триггер где можно медленно летать с мыльным эффектом.
Как вы плавание делаете например?
Аноним 23/11/17 Чтв 15:11:16 458022294
>>457931
> правда как вот это сделать
Проверять списки этих персонажей на наличие нужных трейтов, потом вызывать функцию из трейта.
Мне больше хотелось понять, как удобно складывать все трейты для конструкторов персонажей, но я проснулся и понял, что скорее всего мне нужно будет ручками сделать как минимум общую помойку всех трейтов. Максимум статичные списки для каждой категории и функцию, которая будет принимать на входе данные от магазина персонажей и выдавать персонажам нужные качества.
Аноним 23/11/17 Чтв 15:18:22 458023295
>>457992
Чё-то всё-равно не работает. Хотя хз, всё вроде понятно же должно быть, откуда, куда и с какой скоростью, че ему надо
Аноним 23/11/17 Чтв 15:21:37 458024296
>>458023
> else if (isShaking)
> {
> if (transform.position != startPosition) transform.position = Vector3.Lerp(transform.position, startPosition, t);
> else isShaking = false;
> }

Попробуй так
Аноним 23/11/17 Чтв 17:22:52 458038297
А можно вычисления фоном проводить в юнити? Не в куратинах, где точка выхода указывается в определенных местах программы, а чтобы выходило и входило по времени?
Аноним 23/11/17 Чтв 17:26:51 458041298
Аноним 23/11/17 Чтв 17:28:00 458042299
>>458038
По какому времени? Через n секунд/минут после начала игры? У тебя для этого есть Time.time и Time.realtimeSinceStartup
Аноним 23/11/17 Чтв 17:28:19 458043300
>>458024
Заработало. Спасибо, бро.
Я второй месяц программирую, мозг не привык в таком ключе мыслить, туплю что-то совсем.
Аноним 23/11/17 Чтв 17:29:20 458044301
>>458043
это_норма.жпг
Со временем всё по полочкам расставится.
Аноним 23/11/17 Чтв 17:35:35 458046302
>>458042
Нет, не через n секунд, а скорее, выполнять программу n секунд, заниматься всем остальным, сново выполнять программу n секунд. Как куратины, только куратины выполняют программу n шагов за любое время, а нужно, чтобы выполнялось любое количество шагов за время n.
Аноним 23/11/17 Чтв 17:36:58 458047303
>>458046
yield return new WaitForSeconds чем тебе не угодило?
Аноним 23/11/17 Чтв 17:39:37 458049304
>>458047
Она ждет определенное время перед тем, как начачать выполняться, а нужно, чтобы она выполнялась определенное время
Аноним 23/11/17 Чтв 17:40:47 458050305
>>458043
Да тут большая часть треда таких.
Я каждый раз берусь за какое-то новое говно, дропаю его. Начинаю новый проект — охуеваю от того, что задачи, которые ебали мне мозги в предыдущем проекте, теперь кажутся довольно простыми. Но у меня в основном проблема в том, что я, вместо того, чтобы написать хоть какое-то решение, хожу вокруг компухтера и думаю, как охуенно написать одну-две строчки кода.
Аноним 23/11/17 Чтв 17:41:55 458051306
>>458049
Ёпта, в одной корутине запускай вэйтфорсекондс, после чего меняй флажок. В другой корутине делай проверку по флажку и ебошь свои вычисления.
Аноним 23/11/17 Чтв 17:44:32 458053307
>>458049
Т.е. тебе нужно типа:

void DoStuff(float t)
{
float startTime = Time.time;
float endTime = startTime + t;
if (Time.time != endTime)
{
//происходит йоба
}
}
Аноним 23/11/17 Чтв 17:47:01 458056308
>>458053
> Time.time != endTime
Лучше так сделать: Time.time < endTime
Иначе будет бесконечная йоба.
Аноним 23/11/17 Чтв 17:47:07 458057309
Аноним 23/11/17 Чтв 17:52:07 458060310
>>458051
Так не получится - фложок то будет проверяться после того, как вторая куратина свой цикл отработает. Это ничего не даст.

>>458053
В целом типа того, только оно не так работает. Вот куратина, например, делает конкретный кусочек ебы, потом в следующем кадре конкретный кусочек ебы. А мне нужно, что прогроамма делала конкретное время кусочек ебы (сколько успеет), потом в следующем кадре делает такой кусочек, какой успеет.

>>458057
Да это мне никак не поможет. Мне не оно нужно.
Аноним 23/11/17 Чтв 17:52:13 458061311
>>458056
Да и float'ы вытащить из функции, чтобы просто в Update() это прокручивать.
Аноним 23/11/17 Чтв 17:53:49 458062312
>>458060
Нихуя не понял. Можешь привести конкретный пример того, где это применимо. Я разве что могу это прилепить к постройке зданий в RTS.
Аноним 23/11/17 Чтв 17:56:35 458064313
>>458062
В майнинге биткоинов непосредственно в основном игровом потоке.
Аноним 23/11/17 Чтв 17:57:30 458065314
>>458064
Нихуя ты бизнесмен.
Аноним 23/11/17 Чтв 17:58:27 458066315
>>458065
Это пример просто.
Аноним 23/11/17 Чтв 17:59:43 458067316
>>458060
Привет. Ты чё, охуел? Ты можешь нормально расписать задачу? А то вся твоя постановка вопроса пока звучит как "ну надо шоп кароч заебись было, но ваши советы - не советы".
Аноним 23/11/17 Чтв 18:01:54 458068317
>>458066
Бля, ну у тебя же есть какая-то единица выполненной работы? Просто сохраняй состояние процесса и выполняй более простую операцию внутри функции выше, эта будет просто таймером.
Аноним 23/11/17 Чтв 18:05:16 458069318
>>458067
Так я уже объяснил. Программа, которая будет выполняться кусками по n секунд. Не кусками по n строк, как куратина, а кусками по n секунд.

>>458068
Вот сейчас я тебя не понял. Функция не сможет быть таймером т.к. переменные time не меняются, пока не закончится блок вычислений.
Аноним 23/11/17 Чтв 18:10:14 458070319
>>458069
> Программа, которая будет выполняться кусками по n секунд
Записываешь в переменную oldTime значение Time.time, тут же запускаешь программу на n секунд в цикле while (Time.time <= oldTime + n)
Аноним 23/11/17 Чтв 18:29:15 458071320
>>458069
Блядь. Ну допустим у тебя есть класс Yoba с количеством выполненной работы
public class Yobas
{
int yobaCount;
float yobaReadiness;
}

В каком-нибудь MonoBehaviour:

public Yobas yobas = new Yobas();
float yobaEndTime;
void Update()
{
if (Input.GetKeyDown.YobaKey)
{
yobaEndTime = Time.time + 10;
}
if (Time.time < yobaEndTime)
{
AssembleYoba(yobas);
}
}

Yoba AssembleYoba(Yobas yobas)
{
yobas.yobaReadiness += 1;
if (yobas.yobaReadiness > 100)
{
yobas.yobaCount += 1;
yobas.yobaReadiness = 0;
}
}

Хули тут непонятного-то?

Аноним 23/11/17 Чтв 18:48:45 458072321
>>458070
Вот только проблема в том, что (Time.time <= oldTime + n) отанется правдой.
Аноним 23/11/17 Чтв 18:54:13 458073322
>>458072
С какого хуя?
Допустим, с запуска прошло 10 секунд. На момент запуска программы имеем следующие значения:
Time.time = 10
OldTime = 10
Например, запускаем программу на 5 секунд.
Условие (Time.time <= oldTime + n) принимает вид (10 <= 15) и это самое "10" будет расти, пока через 5 секунд не достигнет значения "15" и условие перестанет выполняться.
Ты жопой-то не читай.
Аноним 23/11/17 Чтв 19:30:51 458075323
bandicam 2017-1[...].webm (1817Кб, 1912x700, 00:00:21)
1912x700
23/11/17 Чтв 20:05:17 458084324
>>458060
S y s t e m . T h r e a d i n g
y
s
t
e
m
.
T
h
r
e
a
d
i
n
g
Аноним 23/11/17 Чтв 21:09:33 458101325
>>458073
>С какого хуя?
Документацию изучи.

>>458075
И? У тебя программа выполняет шаг, отрисовывает кадр, снова выполняет шаг. А мне нужно, чтобы она не шаг отрабатывала, а заданное время (столько шагов, сколько успеет).

>>458084
В основном потоке нужно.
Аноним 23/11/17 Чтв 21:25:48 458104326
>>458101
В main thread только если так программу структурировать.
То, как ты хочешь, проще по корутине сделать, дать ей заданный промежуток времени и обрубать, если время вышло.
Можешь даже пожировать, и сделать две корутины - одна дело выполняет, другая время чекает, стартуют одновременно, чекер гасит раба
Аноним 23/11/17 Чтв 22:02:20 458131327
15049490498850.png (527Кб, 487x525)
487x525
>>458101
Тогда хуй соси, даун. В основном ему потоке блядь. Ты сам то понимаешь что ты хочешь, дебил ебаный?
Аноним 23/11/17 Чтв 22:11:25 458140328
>>458101
> столько шагов, сколько успеет
Оно у меня это и делает. Есть заданное время и нужный алгоритм. Сколько раз успел этот алгоритм повертеться за заданное время — столько и повертелся.
Это траллинг тупостью такой что ли? Тебе уже 10 раз всё объяснили.
Аноним 23/11/17 Чтв 22:12:50 458141329
>>458101
> Документацию изучи.
Лол блджад, точно траллинг тупостью.
Но этом >>458075 видео я именно это
> (Time.time <= oldTime + n)
И использовал, и почему-то в вечный цикл не уходил.
Ты бы сам документацию почитал.
Аноним 23/11/17 Чтв 22:17:18 458145330
Блять, опять этот долбоёб из предыдущих тредов вылез со своими почемучками.
И не лень же ему.
Аноним 24/11/17 Птн 04:38:13 458200331
1395428813428.jpg (80Кб, 604x453)
604x453
Какая лучшая практика для того чтобы портировать информацию из одной сцены в другую? Мне нужно сделать так, чтобы в зависимости от двери в которую вошел игрок, в новой сцене он спаунился по определенным координатам.
Я примерно знаю как делать сохранения во внешний файл, но ведь тут получается нужно сначала сохранить, а потом загрузить, а это слишком заморочено, у меня ведь игра не выключается.
Из того что знаю - Синглтон в виде гейм-менеджера. Это лучшее решение, или можно как-нибудь иначе это сделать, да так, чтобы скейлилось и на 100+ дверей?
Аноним 24/11/17 Птн 08:59:34 458217332
Посоны, можно как-то сменить бесплатную светлую тему на тёмную (пропатчить может чем-нибудь)? У меня закончилась лицензия, юнити откатился на светлую тему и у меня чуть глаза не вытекли.
Аноним 24/11/17 Птн 09:01:34 458218333
>>458200
Я в своей игре использую две сцены. Одна сцена Game, которая хранит различные объекты, интерфейс и тому подобное, другая сцена представляет уровень. Уровни постоянно сменяются, а Game остаётся.
Аноним 24/11/17 Птн 12:11:14 458242334
Ребята, как сделать так чтобы при атаке и контакте с другим 2д коллайдером появлялся Particle Systems, именно в точке контакта с другим 2д коллайдером? Што?
Аноним 24/11/17 Птн 13:08:11 458249335
>>458217
Открыть UnityEditor.exe hex редактором и поправить парочку значений. В интернете найдешь.
Аноним 24/11/17 Птн 14:16:48 458266336
>>458200
Можно аддитивно подгружать и активировать сцену, тогда будет склейка из двух. Как только дверь за игроком схлопывается - выгружать старый левел
Аноним 24/11/17 Птн 14:19:21 458267337
>>458242
Ну, по OnTrigger2D получаешь глобальные координаты центров коллайдеров, получаешь их bounds и extends, транслируешь в world coordinates и вычисляешь точку столкновения
Аноним 24/11/17 Птн 21:40:17 458332338
Мне нужно переместить окно в определенную позицию
Делаю
void Start()
{

GetComponent<RectTransform>().localPosition = new Vector2(2f, -52f);

}
И его кидает хуй пойми куда. Я понимаю, что это как то связано с якорями и пивотами, но как? Как мне установить окно в определенное место? Допустим, якорь в верхнем левом углу и пивот (0,1)
Аноним 24/11/17 Птн 21:42:06 458333339
>>458332
Если нужно изменить позицию относительно якоря, то попробуй anchoredPosition
Аноним 24/11/17 Птн 21:45:30 458334340
>>458333
Точняк. А то я давал глобальные коорды, их перехуячивало относительно якорей и получался какой то рандом.
Аноним 25/11/17 Суб 09:43:28 458367341
Сап. Как сделать прыжок в 2d, что бы его высота зависела от продолжительности нажатия клавиши, но если клавиша нажата больше определенного времени, прыжок заканчивался? Т.е. держим клавишу не долго, то низкий прыжок, держим дольше высокий, но если передержали, начинаем падать, ну и сделать минимальную высоту прыжка, ниже которой нельзя прыгнуть.
Я не могу сообразить, я тупой, не понимаю куда и на что там время надо умножить, или как его замерить, я знаю про функции GetKeyDown и GetKeyUp или просто GetKey, прыжок знаю, как двумя способами сделать:
GetComponent<Rigidbody2D>().velocity = new Vector2(0, jumpForce);
или
GetComponent<Rigidbody2D>().AddForce(transform.up, ForceMode2D.Impulse)
Аноним 25/11/17 Суб 10:15:52 458368342
>>458242
коллижен.поинт или хуй там блядь знает короче иди нахуй апи читай
25/11/17 Суб 10:36:10 458370343
>>458367
Не делай аркадное управление физикой.
Аноним 25/11/17 Суб 10:50:03 458373344
>>458370
Мне не нужна реалистичная физика, мне нужно ретро
Аноним 25/11/17 Суб 11:04:56 458376345
>>458370
Хотя нет, наверное нужна реалистичная, сейчас подумал, что хотел сделать, чтобы прыгнув в сторону, в воздухе нельзя было легко повернуться в другую сторону, ну всмысле повернуться можно, но импульс должен остаться в приложенном векторе изначально.
Аноним 25/11/17 Суб 12:07:31 458382346
>>458376
>прыгнув в сторону, импульс должен остаться в приложенном векторе
>нельзя было легко начать двигаться в воздхуе в другую сторону
Кстати как это сделать?
Сейчас прикрутил в Uodate гравитацию Physics2d.gravity поменял её по игрику и прыжок стал реалистичнее, если с ней поиграться, получается сейчас игрок быстро подпрыгивает, типа с импульсом, а падет медленне, получается реалистичнее. Но я до сих пор не пойму, как сделать зависимость высоты прыжка от продолжительности нажатия клавиши. Помоги добрый анон
Аноним 25/11/17 Суб 12:40:27 458390347
У меня к объекту добавлен компонент Slider. Я его меню на другой компонент который потомок Slider. Нельзя ли как то скопировать настройки старого компонента? Они жи совместимы. Paste чего то там не работает.
Аноним 25/11/17 Суб 12:51:33 458392348
15017004714990.png (714Кб, 640x633)
640x633
>>458382
>Physics2d.gravity в апдейте
Аноним 25/11/17 Суб 13:01:14 458393349
>>458392
Я в туториале глянул, вот тут:
https://www.youtube.com/watch?v=aYE-1cAjdew
Ну а как? Не смейтесь, я нуб, лучше посоветуйте, как сделать реалистичный прыжок самым достойным способом, и чтобы высота он t нажатия зависила
Аноним 25/11/17 Суб 13:08:30 458394350
>>458393
FixedUpdate() есть. А то в Update() у тебя физон от фреймрейта будет зависить, зашкварно.
И вообще странно это как-то: через гравитацию делать прыжки. Есть же rigidbody2D.
Аноним 25/11/17 Суб 13:09:48 458395351
>>458394
>И вообще странно это как-то: через гравитацию делать прыжки.
Да там вообще пиздец.
Аноним 25/11/17 Суб 13:26:52 458398352
2.png (385Кб, 1218x436)
1218x436
Ребят, ребят, а как лучше реализовать управление машинкой для мобилок при камере сверху под углом? Думаю, лучше как-то одним пальцем управлять. А как? Поставить снизу экрана один джойстик?
Аноним 25/11/17 Суб 13:27:36 458399353
>>458394
>FixedUpdate()
Да точно, не успел об этом подумать.
Я не по тутору делал, я от туда только изменение гравитации взял, а так он у меня с rigidbody прыгает:
GetComponent<Rigidbody2D>().AddForce(transform.up, ForceMode2D.Impulse). Но если делать только так, то он как-то не очень естесственно прыгает...или хз. Че просто массу ему поменять? Сейчас попробовал без измененной гравитации, вроде почти так же прыгает, упоролся я что ли. В любом случае, подскажите как сделать зависимость высоты прыжка от времени нажатия клавиши
Аноним 25/11/17 Суб 13:33:43 458400354
>>458394
Но погодите, с ridgidbody предметы падают без ускорения же
Аноним 25/11/17 Суб 13:49:31 458401355
>>458399
public float ExtraJumpMultiplier = 0.5f; //доп. множитель прыжка, при макс. множителе игрок будет прыгать в 1.5 раза выше
public float ExtraJumpDelay = 0.5f; //время, за которое достигается макс множитель

private float jumpMultiplier;

//Player.FixedUpdate/Player.Update/шонибудь
if (Input.GetButtonUp("Jump")) Player.Jump(1 + jumpMultiplier); //если игрок отпустил кнопку, то прыгаем
if (Input.GetButton("Jump") && Player.IsGrounded) //увеличиваем множитель только если игрок на земле и кнопка прыжка удерживается
{
if (jumpMultiplier < ExtraJumpMultiplier) //если мы не достигли максимума
jumpMultiplier += ExtraJumpMultiplier Time.deltaTime / ExtraJumpDelay; //то увеличиваем множ.
else jumpMultiplier = ExtraJumpMultiplier;
}else jumpMultiplier = 0; // если игрок не на земле/не держит кнопку

//Player.Jump
float vel = Mathf.Sqrt(2
Physics2d.gravity.magnitude PlayerBaseHeight multiplier); //скорость для прыжка
//PlayerBaseHeight - начальная высота прыжка
// multiplier = 1 + jumpMultiplier

//(mv^2)/2 = mgh
// v^2/2 = gh
// v^2 = 2gh
// v = sqrt(2gh)


GetComponent<Rigidbody2D>().AddForce(transform.up * vel, ForceMode.VelocityChange);



Аноним 25/11/17 Суб 13:51:12 458402356
>>458401
> ExtraJumpMultiplier Time.deltaTime / ExtraJumpDelay; //то увеличиваем множ.
ExtraJumpMultiplier УМНОЖИТЬ Time.deltaTime / ExtraJumpDelay; //то увеличиваем множ.

> float vel = Mathf.Sqrt(2 Physics2d.gravity.magnitude PlayerBaseHeight multiplier); //скорость для прыжка
float vel = Mathf.Sqrt(2 УМНОЖИТЬ Physics2d.gravity.magnitude УМНОЖИТЬ PlayerBaseHeight multiplier); //скорость для прыжка
Аноним 25/11/17 Суб 13:59:12 458403357
>>458402
>>458401
Ему нужно что бы акселерация была, если держит кнопку со стационарного положения.

То есть, быстро нажал - микропрыж.
Держит - высокопрыж.
Аноним 25/11/17 Суб 14:02:36 458404358
>458403
> if (Input.GetButtonUp("Jump")) Player.Jump(1 + jumpMultiplier); //если игрок отпустил кнопку, то прыгаем
> if (Input.GetButton("Jump") && Player.IsGrounded) //увеличиваем множитель только если игрок на земле и кнопка прыжка удерживается
> {
> if (jumpMultiplier < ExtraJumpMultiplier) //если мы не достигли максимума
> jumpMultiplier += ExtraJumpMultiplier Time.deltaTime / ExtraJumpDelay; //то увеличиваем множ.
> else jumpMultiplier = ExtraJumpMultiplier;
> }else jumpMultiplier = 0; // если игрок не на земле/не держит кнопку

Ну вот же, если игрок нажимает и сразу отпускает, то небольшой прыжок
А если нажмет, задержит на ExtraJumpDelay (0.5) секунд, то прыжок будет в 1 + ExtraJumpMultiplier (1.5) раз выше
Аноним 25/11/17 Суб 14:03:53 458405359
Аноним 25/11/17 Суб 14:05:01 458406360
Аноним 25/11/17 Суб 14:17:46 458407361
>>458401
Чё-то в этом коде хуй ногу сломит, не мог просто в 2D заставить кубик прыгать и его скрипт сюда залить? сам то пробовал, что получилось?
Аноним 25/11/17 Суб 14:22:03 458408362
>>458407
Работает еще как, но я его юзаю для 3д проекта, для 2д тоже должен работать
Аноним 25/11/17 Суб 14:29:59 458409363
>>458408
Можешь для 2D сделать с нуля и скрипт показать? Я не дорублюсь, у меня не взлетает чё-то
Аноним 25/11/17 Суб 14:34:07 458410364
>>458409
Сделаю, только через час-два. Я сейчас немного занят
Аноним 25/11/17 Суб 14:43:07 458412365
>>458400
Че ты еще спизданешь блядь? Как что-то вообще может менять скорость без ускорения?
Аноним 25/11/17 Суб 14:46:17 458414366
>>458412
Без ускорения свободного падения, прикинь, можно просто плавно двигаться, у меня так и падало всё, но я в коде накосячил. Алсо, как менять глобальную гравитацию?
Аноним 25/11/17 Суб 15:44:04 458418367
screenshot3.png (23Кб, 1121x200)
1121x200
screenshot2.png (542Кб, 1103x520)
1103x520
screenshot1.png (933Кб, 1139x624)
1139x624
Анон, помоги. Не могу разобраться с navmesh.
Я запек сетку, и она покрывает дорогу, как на первом пике. Но как только игра стартует, в консоль сыпятся ошибки со второго и третьего пика.
Ошибка с SetDestination вызывается на такой строке в коде:
navAgent.SetDestination(targetPoint);
Сталкивался ли кто с таким? Спавню ботов максимально близко к сетке, разница в 1 по оси OY. Не помогает.
Аноним 25/11/17 Суб 15:44:55 458419368
>>458418

Пикчи в обратном порядке залились.
Аноним 25/11/17 Суб 15:50:43 458420369
>>458410
Было бы круто, спасибо
Аноним 25/11/17 Суб 16:28:23 458421370
Аноним 25/11/17 Суб 16:50:39 458423371
>>458418
Нахуй в данной ситуации навмеш вообще? Проще ботам по точкам езжать.
Аноним 25/11/17 Суб 17:09:12 458425372
Какая самая лучшая игра сделанная на юнити?
Аноним 25/11/17 Суб 17:18:43 458427373
>>458421
Спасибо! Но ты похоже не так меня понял, мне то надо было чтобы игрок прыгал сразу по нажатию клавиши. я нажал и он прыгнул незамедлительно. Если я нажал быстро - прыгнул низко, нажал и подержал дольше - прыгнул выше
Аноним 25/11/17 Суб 17:35:05 458428374
>>458427
Можешь описать, чем мой код отличается от того, что тебе нужно? Я что-то туплю, так и не могу понять. Может, если ты напишешь различия, то я буду лучше понимать, что тебе нужно.
Аноним 25/11/17 Суб 17:39:46 458430375
>>458425
Shadow Tactics: Blades of the Shogun
Аноним 25/11/17 Суб 17:40:32 458432376
>>458428
По твоему скрипту, пока я держу клавишу нажатой, игрок стоит на месте. Отпускаю - прыгает. Держу не слишком долго, прыгает не высоко. Так?
По моему надо, что бы как только я нажал клавишу он сразу прыгал. И если я держал её не долго, то прыжок был бы низкий. Держал бы долго, прыжок достигал бы максимума и заканчивался.
Аноним 25/11/17 Суб 17:40:46 458433377
>>458425
>Какая самая лучшая игра сделанная на юнити?
>
Симулятор геймдева
Аноним 25/11/17 Суб 17:42:03 458434378
>>458423

Я так и сделал, но заказчику не понравилось, сказал: хуле машинки выезжают за пределы трассы, сделай навмеш мне.
Но я с этим уже разобрался, а вот с чем не разобрался, так это с тем, что машинки надо выталкивать с трассы, а навмеш строит невидимые стены вокруг себя. Ну и как такое сделать?
Аноним 25/11/17 Суб 17:42:11 458435379
>>458432
>По моему надо, что бы как только я нажал клавишу он сразу прыгал. И если я держал её не долго, то прыжок был бы низкий. Держал бы долго, прыжок достигал бы максимума и заканчивался.

Это блядь не прыжок уже управляемый полет

У тебя приыжок начинается сразу, а контроль длительности прыжка происходит потом

миммо
Аноним 25/11/17 Суб 17:44:47 458436380
Алсо, как добавить свой элемент гуи в юнити идитор? Там список стандартных элементов, типа Кнопка, а я хочу свое туда добавить
Аноним 25/11/17 Суб 17:44:58 458437381
>>458435
Это прыжок, просто его высота может регулироваться длительностью нажатия клавиши, но у него есть свой предел конечно. Блять в тысячи игр такой прыжок.
Аноним 25/11/17 Суб 17:46:38 458438382
>>458437
Кароч, прыгаешь сразу как нажал, потом, в полете, проверяешь если кнопка еще вжата то придаешь дополнительное ускорение прыжку, проверяя макс. предел
Аноним 25/11/17 Суб 17:48:56 458439383
>>458434
Бля. Чёт не представляю, как автомобили на навмеше делать. Физона же не будет. Или уже появился? Давно не глядел.
Аноним 25/11/17 Суб 17:49:41 458440384
>>458438
>то придаешь дополнительное ускорение прыжку, проверяя макс. предел
Спасибо кэп, я знаю как это работает, я не знаю, как это сделать, потому что я нуб.
Аноним 25/11/17 Суб 17:51:05 458442385
>>458439

Физон сам написал.
По сути все, что мне сейчас добавляет к сцене navmesh - это невидимые стены. А ИИ ботов работает из отдельного скрипта.
Аноним 25/11/17 Суб 17:59:45 458444386
>>458442
Хуя ты велосипедист. Проще было пофиксить езду по точкам. Ну тип едешь меж точками регулируя нажатие на педаль газа в зависимости от угла меж автомобилем и направлением к следующей точке.
А кто заказывает заниженные тонированные приоры? Ну так, любопытно.
Аноним 25/11/17 Суб 18:18:56 458445387
>>458444

Да это я для прототипа где-то стащил модельку.
Аноним 25/11/17 Суб 19:16:25 458462388
>>456736 (OP)
Хороши ли туторы на сайте Unity для изучения всего этого дела с нуля? Программировать на С# немного умею.
Аноним 25/11/17 Суб 19:37:27 458465389
>>458462
Unity in Action полистай параллельно с этими туторами. А так можешь просто начать делать свой проект и попутно нагугливать нужные тебе уроки. Потом Live сессии зацени.
Аноним 25/11/17 Суб 19:40:10 458466390
>>458462
Хз какой сайт ты имеешь в виду, но да, хороши

>>458440
>Спасибо кэп, я знаю как это работает, я не знаю, как это сделать, потому что я нуб.
Ну хуй знает, в этом вся суть. Найди нужные события на кнопки, захуячь, добавь ускорения, хуле ты.
Аноним 25/11/17 Суб 20:53:50 458473391
>>458462
>Программировать на С# немного умею
Unity - это конструктор lego autism edition
Даже примитивные троглодиты могут сваять свою игру в Unity. Именно по этому 99% всех игр на данном движке - унылое гавно.
Потому как если ты честно серьезно начнешь делать "правильную" игру, ты поймешь что Юнити для таких усилиезатрат - дохлый выбор.
Аноним 25/11/17 Суб 21:02:47 458475392
14372209064130.jpg (72Кб, 770x512)
770x512
Аноним 25/11/17 Суб 21:06:17 458477393
>>458475
>t. talentless indie-chink with his shitty "le retropixelshit"
Аноним 25/11/17 Суб 21:11:32 458478394
>>458477
Мемесы с форчана — это круто, конечно, но нормальные люди не сидят в тредах по теме, которая им ненавистна.
> правильные игры
Ну это вообще пушка.
Аноним 25/11/17 Суб 21:32:50 458481395
>>458478
Нормальная такая пушка, когда твоя игра выдает 60fps и не заикается каждые пять секунд, как 101% unity-дерьма

>но нормальные люди не сидят в тредах по теме, которая им ненавистна.
Проецировали-проецировали да не выпроецировали.
Я не ненавижу Unity и мое личное отношение тут не причем, strawman'а не тягай. Я просто называю вещи своими вещами.

UNITYFAG'у НЕПРИЯТНО
Аноним 25/11/17 Суб 21:50:27 458483396
>>458481
Хуя you по english шпаришь)))
Аноним 25/11/17 Суб 22:21:55 458484397
fuck your bad v[...].png (52Кб, 184x184)
184x184
>>458481
> когда твоя игра выдает 60fps и не заикается каждые пять секунд, как 101% unity-дерьма
Чего-то у Tyranny таких проблем не было. У Getting Over It, в который сейчас все играют, тоже. Может быть не стоит винить инструмент в том, что у людей кривые руки?
Аноним 26/11/17 Вск 00:15:05 458495398
>>458484
>Tyranny
Не особо интересовался ей

>Getting Over It
Жалобы видал и в стримах и на форуме.

У Cuphead, вон, assembly декомпильни - по всем правилам C# OOP написано, там вообще без пары фур бутылок не разберешься. А в результате - те же Unity-баги, что и от косого Васи с 125 синлетонами и "ГЕЙММЕНЕДЖЕРАМИ" блдж
Аноним 26/11/17 Вск 00:36:32 458504399
>>458495
Хуле там не разберёшь, придурок?
Там всё просто как три копейки. Зашёл и хоть перепедаливай половину кода. Ты 100% будешь знать, что навряд ли что-то сломаешь.

У меня сейчас на проекте сидят сишники упоротые, для которых копипатить код и хуярить всё пабликами -- норма. Из-за чего весь проект нестабилен и ломается даже от того, что ты логи выпилил.
Аноним 26/11/17 Вск 02:11:12 458516400
>>458473
>Потому как если ты честно серьезно начнешь делать "правильную" игру, ты поймешь что Юнити для таких усилиезатрат - дохлый выбор.
Свой движок то написал уже? А то юнити хуйня, тормозит и текстуры не яркие.
Аноним 26/11/17 Вск 02:32:14 458518401
Без названия.jpg (8Кб, 225x225)
225x225
>>458481
>Я не ненавижу Unity
Так что ты в треде забыл то?
Аноним 26/11/17 Вск 03:43:10 458526402
23432432.png (716Кб, 729x739)
729x739
>>458421
Перепилил код под свою задачу, но работает не так как надо, пока кнопка зажата, он постоянно прыгает, и работает это как-то криво, может на разную высоту подпрыгивать. Блджат, заебало, и в сети не могу найти, как сделать. Надо, чтобы было так:
1. зажал кнопку и держу - игрок прыгает до максимума, приземляется и стоит. Для того чтобы прыгнуть второй раз, надо отпустить клавишу и нажать ещё раз.
2. нажал кнопку быстро, например 0.5 сек, то игрок прыгнул не до максимума, приземлился и стоит ждёт, когда я отожму и еще раз нажму.
3. по сути нужна высота минимального и высота максимального прыжка, и возможность получаться высоту между этими значениями в зависимости от продолжительности нажатия на клавишу.
Ну и увеличение множителя прыжка должно быть конечно через Time.deltaTime, что бы на всех машинах прыгал одинаково при одинаковом времени нажатия клавиши.
Я говнокодил, говнокодил, и не наговнокодил. Unity боги, где вы? Я думал это тривиальная задача с которой уже все давно разобрались. С меня нефти
Аноним 26/11/17 Вск 07:17:58 458531403
>>458495
Непонятно только зачем ты приполз в наш уютный тред со своим беспруфным кукареканием?
Аноним 26/11/17 Вск 09:48:01 458539404
>>458531
Это опять тот поехавший, не обращай внимание.
Аноним 26/11/17 Вск 10:06:18 458541405
14887130427360.jpg (61Кб, 317x372)
317x372
Аноним 26/11/17 Вск 11:49:00 458549406
Аноним 26/11/17 Вск 11:57:11 458552