Добро пожаловать в тред Unity - лучшего 3D и 2D игрового движка современности! Прошлый тред: https://2ch.hk/gd/res/387294.htmlОфициальный сайт: 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-storeUnityWiki: http://wiki.unity3d.com/index.php/Main_PageНа 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 - это начать делать игру и по мере разработки гуглить непонятные моменты. Шапка: http://www.writeurl.com/publish/zukmrogwv45ptyuseyol
>>394374 (OP)http://unitylist.com/ поисковик юнити-проектов по гитхабу
>Какие у Unity слабые стороны?Жирный сцуко. Для ведроидов вообще жесть. 20мб АПК без контента, 30% обычной лопатной батареи за час игры.
>>394384Безальтернативно же
Как закреплять элементы UI на экране ?
>>394394нубу от нуба
>>394394и это
>>394394
>>394400в тюторилах говорят кликнуть мышкой раз, а потом shift и еще разв чем тут шифка с шифтом?
>>394401учимся быть внимательным?Shift: Also set pivotAlt: Also set position
>>394401Слепой?
>>394406обиженый?
>>394407На кого? На тех, кто в шары долбится? Много чести.
>>394408заебали
>>394408какой же ты мерзкий
>>394397>>394399>>394400Спасибо
я правильно понимаю, что не особо важно, где скрипт, обрабатывающий GUI весит. Хоть на самом UI, хоть на камере, хоть на пустом объекте.Или тут есть свои тонкости?
>>394500Ты правильно понимаешь.
>>394500gameObject меняется, но если ты его не используешь, то без разницы.Т.е. скрипт, который по нажатию кнопки что-то делает, и меняет цвет кнопки, лучше вешать на саму кнопку, чтобы иметь доступ к её свойствам через gameObject.GetComponent().
>>394500И еще лучше избегать супер-йоба скриптов, которые делают сразу кучу всего, типа GUI, GameLogic и так далее.Лучшей практикой считается использование небольших скриптов, которые делают что-то одно.Т.е. из предыдущего примера с кнопкой, тебе нужно повесить на кнопку два скрипта, один дергает анус игровой логики, второй меняет цвет объекта, к которому прикреплен.Это не всегда возможно, конечно, но пытаться надо.
>>394507Не знаю, зачем я это написал, вопрос был вроде о другом.
>>394502>>394506>>394507>>394508спасибо! Всё пригодится
>>394401объясняет и показывает на второй минутеhttps://www.youtube.com/watch?v=09WwK-56ThM
Ткните пожалуйста носом в маленький скрипт, который проигрывает звук при нажатии кнопки. Размещать кучу звуков на сцене и после их привязывать через onClick() напрямую неудобно, т.к захламляется сцена.
>>394524Ебошишь на объект AudioSource, в него пихаешь нужный клип, снимаешь галочку с Play On Awake и пидоришь скриптpublic class TheSoundOfYoba : MonoBehaviour {AudioSource audioYoba;void Start () {audioYoba = GetComponent<AudioSource> ();} void OnMouseDown () {audioYoba.Play ();}}И теперь при клике мышкой по объекту будет проигрываться тот клип, что ты в него засунул.
>>394530> \tЭто уже макаба добавила, это в скрипт писать не надо.Вот, короче.
>>394532Спасибо
Посоветуйте годных материалов по программированию камеры, конкретнее от 3-лица. Все которые нашел очень примитивны, хочется с детектером коллизий, опозданием, огибанием геометрии. Пжлст без готовых ассетов.
>>394569Раз - https://www.youtube.com/watch?v=DoDZuFNh4twДва - https://www.youtube.com/watch?v=keIANWPiUWEОсновы описаны очень доходчиво, если разберёшься — переделаешь под себя более тонко как тебе нужно.
>>394569>>материалов по программированию камерыСинусы, косинусы, математика векторов, лерпы
>>394579> Синусы, косинусы, математика векторовЛол, помню вопли в школе НАХУЙ МНЕ ЭТИ ВАШИ СИНУСЫ-ХУИНУСЫ И ВЕКТОРА-ХУЕРА? НИНУЖНА!!1
>>394589Тащемта, в школе они и не нужны были. И хоть бы кто тогда сказал: "Вот если интересна %хуйнянейм%, учи вектора, пидор". А сейчас они освежаются (или учатся) довольно легко. Это же не ебаные матрицы с логарифмами и прочей хуйней.
>>394598> И хоть бы кто тогда сказал: "Вот если интересна %хуйнянейм%, учи вектора, пидор"Нам так и говорили, что, мол, каждую хуету вам говорят не просто так, потому как экстрасенсов не завезли и никто не ебёт кем вы потом станете. Так что жрите всего по чуть-чуть, а потом после выпуска сами разберётесь на что у вас стоит.
>>394598> Это же не ебаные матрицы с логарифмамиЛол, как будто матрицы с логарифмами это что-то сложное.
>>394601Лол, как будто математика сложная наука.
>>394608Смотря как далеко в неё влезать.Но логарифмы и матрицы — это ж школьная программа.
>>394601Когда ты распиздяй, не понимаешь, зачем ты вообще сюда пошёл, половина предметов резко становятся довольно сложной.Потребуется вот это вот все — буду ковырять. Хотя зачем, ведь где-то уже выложили дюжину велосипедов.
>>394613Не нужны там матрицы и тригонометрия. Лепишь на камеру что-то вроде пикрелейтеда, добавляешь sphereCollider и rigidBody, и вуаля, ваша камера готова. Ну разве что position и rotation через rigidBody надо будет менять, чтобы плавно было.
>>394622Я вообще не тот кун, которому камера от третьего лица нужна. Я даже не разбирался в тригонометрии (которую я прогулял и продрочил на нулчане) для поворота персонажа за камерой, просто спиздил велосипед и приравнял позицию камеры к позиции игрока, чтобы было заебись.
>>394622Риджидбади на камеру? Ну чёт как-то хуй знает.
>>394627она будет проходить через стены.
>>394627Нормально. Без гравитации и с полным контролем положения в пространстве самое то, будет стукаться об остальные коллайдеры вместо того, чтобы клипаться.
>>394633Надо потестить.Я рейкастами всё это велосипедил.
>>394635Ну так-то можно и через рейкасты ебашить, но нахуя, если велосипед уже встроен в rigidbody.Я, вот, сначала персонажа двигал через transform, а потом я понял, что мне надо через стены, все таки, не проходить аки бог.
>>394635принцип достаточного основания \ принцип ножа оккамы. юзай этот кал что бы не тратить часы на убогиие велосипеды, жиза проще станет атвичаю
Приветствую, юнитигоспода. Какое лучшее решение для серверной части игры на юнити? Photon server? На чём он написан?
>>394649если ты нуб, то ты просто тратишь время впустую такими вопросами.если про:unity3d.ru forum
Посоветуйте, кто шарит, как грамотно запилить растягивание фона меню под размер экрана? Пилю 2д рогалик, приоритет, конечно же, мобильная платформа, но не исключаю сборки под линукс, хохмы ради. И, надо бы, чтобы фон отображался как надо. Пытался поставить изображение больше, чем размер камеры - это прокатывает на огромном числа мобилок где мелкий экран, но при большом разрешении(на пк, например) видны края. Что-то подсказывает, что копать надо в сторону Canvas>panel, но нужен совет знающего человека, который подтвердит мои догадки или направит на путь истинный.
>>394652this >>394516начиная с 3-й минуты
Есть два стула которые я нашел чтобы понять что анимация закончилась, anim.GetCurrentAnimatorStateInfo(0).normalizedTime и ивент в самой анимации вызываютщий функцию. Какой стул лучше, и есть ли другие?
Добрый вечер. Я пишу небольшой шутер. Каждое оружие у меня представляет из себя GameObject. Соответственно, мне надо сохранить, какое оружие у меня сейчас есть, вместе с его состоянием. Т.е. сохранить куда-ту GameObject и потом загрущить его. Подскажите, есть ли нормальный способ в рантайме сохранить/сериализовать GameObject?
>>394655можно всавить свой эвент.
>>394657причем в любой точке анимации
>>394656по мойму у тебя недопонимание иерархии. Вот твое:GameObject > Ak-47 Вот как правдоподобнее.AK-47 > GameObjectт.к. обьект на сцене это всеголишь переменная от слова менять. Как например в скрипте AK-47 переменная ReloadTime.И что значит сохранить? Имеешь ввиду при выходе из игры, или в момент игры?
>>394657>ивент в самой анимации вызываютщий функциюЭто я знаю. А что лучше/эффективнее/проще?
>>394656нубу от нубав скрипте, что управляет игроком, сделай массив из GameObjectв редакторе в инспекторе заполни его префабами йхе;бзвыбирай по GameObject bullet = (GameObject)Instantiate(bulletPrefab, new Vector3(0, 0, 0), new Quaternion(0, 0, 0, 1));
>>394662>bulletPrefabweaponPrefabсохраняешь i
>>394659Да, я инстантинирую из префаба объект, согласен. Но что, я теперь не могу сериализовать этот объект? Почему в обычном программировании я могу сериализовать объект класса, а тут не могу?Сохранения происходят при переходе с уровня на уровень. Ну, то есть, да, при выходе и входе у меня должно сохраниться текущее оружие.
>>394662У меня куча мобов на сцене бегает тоже с оружием. Предлагаешь у каждого хранить весь набор?
>>394665по моему разумению таскать индекс на префаб легче, чем сам объект. Возможно я не вполне понимаю твою проблему
>>394660ты че тролишь или как. я понимаю мы бы обсуждали что то пиздецки сложное за гранью реальности. но тут от силы потратишь 5 мин на все три одновременно
>>394660если постоянно бояться что ты делаешь что то не так, то нихуя и не сделаешь никогда
>>394664от нуба. сделай class weapon{ str name, go model, float reload} и его сериализуй? или заменить GameObject model на String и юзать какой нить resources.load
>>394670ну типа на загрузке получаешь весь класс weapon с данными из прошлого левела а модель пулеметки грузиш resources.load(ak47.modelPath);
>>394671ну бля типа gameobject modelka = instantiate( resources.load(ak47.modelPath))
>>394672сорян если хуйню написал, в душе не ебу что такое сериализация. Слышал что это для сохранения и т.п. Для меня это когда за день посмотрел 16 серий любимого сериала.
>>394659Я уже второй раз вижу описание такой логики, но нихуя не понимаю. Пожалуйста, объясните идиоту на пальцах и скриншотах, как это должно выглядеть.
>>394669Так я не боюсь. Я уже сделал то что надо и всё работает. Просто интересно что из них работает лучше.
>>394654Блядь говнодел какой-то.
>>394675скрипт AK-47:GameObject modelfloat reloadTimeint maxbulletsспрашивай конкретнее что не ясно.так же скрипт ak-47 тобишь класс, может не иметь своих переменных, а получать\наследовать от балванки класса вроде WeaponBlueprint
>>394679WeaponBlueprint = ak-47, USP, Glock, Bazookaгугли ООП. Гугли что такое компонент в юнити, в кратце пустой геймобьект это всего лишь точко в пространстве, "не пустой" это MeshRenderer с моделькой(mesh)
>>394680я сам нуб, вообще то так что не слушай меня особо. ООП применять новичку вообще не имеет смысла по мойму, только если в игре есть много разных вещей с одинаковыми параметрами. типа негр и белый
>>394677Добро пожаловать в увлекательный мир видосов о юнити, чо. Они даже на офф. сайте такие, чтобы делать "как надо" надо самому иметь опыт в ООП и всем прочем говне.
>>394686>иметь опыт в ООПBorland Delphi 1.0до твоего рождения, да?
>>394698После, но мне не совсем понятен смысл твоего комментария. Говнякать на делфи/mfc/winforms != иметь опыт с ООП.
>>394679Ага, теперь понял. Но сам скрипт куда вешать-то?
>>394711>макаке дали делфи 20 лет назад>макака не оценила
>>394712на игрока очевидно
>>394713Кто-нибудь может сказать, что несет этот поехавший?
>>394715говнокодер не может в ООП
>>394679А, блядь, так вся суть была в том, что в классе хранится префаб с графоном и физоном. >>394714На игроке-то он зачем? Игроку можно через Dictionary<WeaponSlot, Weapon> указать, какие оружия у него есть, дальше просто спавнить имеющуюся нужную модель в руки и давать из нее стрелять.
смотрю видосики по Networking и каждый пилит свой велосипедОдни через Network Manager, Network Manager HUD, Network Identity и т.д.Другие через Network View
Аноны, такой вопрос. Чувак сделал в блендере модель, сделал UV развертку, натянул текстуры, сделал материалы и так далее. Ну, к примеру, сделал материал стекла с, цитирую: "Бликами, IOR искажениями и отражением". Импортирует все это в .fbx и присылает мне все это вместе с текстурками.Вот и столкнулись с проблемой, что юнити, на сколько я понимаю, не очень хочет дружить со сложными материалами из блендера. Как поступать в данной ситуации? Неужели вся его работа с материалами насмарку и тот же материал со стеклом нужно будет настраивать самостоятельно в самом юнити?
>>394735> юнити, на сколько я понимаю, не очень хочет дружить со сложными материалами из блендераИ в чём это выражается?
>>394735Photoshop QUIXEL последний раз было бесплатно, и до охуения просто, готовые пресеты, а можно и свои ебашить
>>394735дать юнети пожевать сам файл блендела?
>>394654Таки походу я криво выразился. Тут суть дела такова: Есть фон, есть кнопки меню, но на разных соотношениях крана слетает расположение(Например, когда в редакторе настраиваю всё для соотношения 4:3, а потом запущу сие творение на экране 16:10, то слетает расположение кнопок относительно картинки) Короче объясняю я хуёво, но надеюсь кто-нибудь разберёт мой бред и поймёт суть) Был вариант запилить canvas с ui под каждое из возможных соотношений сторон и, чтобы в настройках, юзверь сам выбирал то, что отображается наиболее адекватно для его девайса. Или есть способ наименьшего использования вазелина? Чтобы велосипед не изобретать. Если надо, смогу присобачить пикчи.
>>394797фиксируй кнопки углами относительно углов экранасерединой относительно серединыну тыпонел
>>394797Это странно. Если ты задаешь отступы от края внутри элемента, они же должны вместе с элементом перешакаливаться как надо.Скинь структуру своей штуки, что ли.
>>394803уже зафиксировал, и выставил, чтобы они растягивались\сжимались в зависимости от экрана. С этим проблем нет. Туплю с фоном, т.к на 16:9 соотношении он нормально отображается, а на меньших\больших его штормит. Думаю, мб вектор спасёт? >>394810Прикрепил настройки canvas и по-сути сам трабл.
Ща будет очень длинный постИнвентарь в unityСуть-Есть базовые ячейки (Порядка 20 в сумме(привязаны к разным частям тела\конечностей)-Есть предметы которые влазят лишь в определённые слоты.Скажем рюкзак при всём желании к колену не прикрепишь-В некоторые предметы можно вкладывать любые\определённые вещи в патронаш лишь патроны, в рюкзак всё что угодно-Каждый предмет имеет лимит на вместимость к примеру в сумку на 3х3 клетки при всём желании не всунешь вещь размером 2х4-Планируется мультиплеер, поэтому интересно как реализовать(адаптировать скрипт) под мп без лишнего гемора.Просьба кинуть толковых гайдов по UI или помочь советом если можете, с меня няшки
>>394826> Инвентарь в unityнехуй делать> -Есть базовые ячейки (Порядка 20 в сумме(привязаны к разным частям тела\конечностей)делаешь контейнер в GUI Canvas, в него добавляешь 20 UI Image с картинками пустых ячееки ровно над ними ещё 20 обжектов с пустыми картинками, которые будут меняться в зависимости от предметадальше их скрипту кормишь, лучше как массив. но можно и не как массив.скрипт прилагаю. но туда ещё допиливать и допиливать.> -В некоторые предметы можно вкладывать любые\определённые вещи в патронаш лишь патроны, в рюкзак всё что угодноу предметов поставь int itemtype который будешь проверять потом> -Каждый предмет имеет лимит на вместимость к примеру в сумку на 3х3 клетки при всём желании не всунешь вещь размером 2х4с таким инвентарём а-ля Might And Magic уже труднее. пиши функцию значит, которая будет парсить клеточки одну за другой, и если клетка свободна, чекать клеточки справа и снизу от неё на "пустость". форму предмета советую задавать в двумерном массиве ноликами и единичками.> -Планируется мультиплеер, поэтому интересно как реализовать(адаптировать скрипт) под мп без лишнего гемора.чекать ячейки инвентаря на клиенте. "и_так_сойдёт.jpg" если кто догадается зачитерить и впихнуть невпихуемое — ну нихуя себе вот ето проблема, впихнёт в сумку на 4 предмета больше. невелика потеря. всё равно твою НАКОЛЕНКЕ-игру им лень ломать будет а для инвенторя [SerializeField] и синхронизируем массивом при подборе-использовании-выбросе предмета.
>>394826а че погуглить или в ютюбе вбить некактит unity3d inventory?
>>394826всегда веселит когда нубы говорят про то что их игру кто то будет читерить. Проблема в том тчо твоей игры нет и не будет никогда, понимаешь?
>>394924> всегда веселит когда нубы говорят про то что их игру кто то будет читеритьДовольно частая ошибка новичка. Они сначала покупают седло, а уже потом лошадь.Чаще всего у таких игра дальше архитектуры и тестовой сцены не уходит.
>>394843Спасибо за очень грамотный и адекватный ответ.Держи няшу.>>394923Там делается примитивный инвентарь, меня же интересовал сам механизм создания инвентаря как в пункте 3 и 4>>394925Мне очень важно твоё мнение
>>394926> Мне очень важно твоё мнениеНу я просто сказал то, что очень часто наблюдаю. Я ж не говорю что ты обосрёшься со своей игрой или что ты кодить не умеешь или ещё чего. Я просто говорю что очень часто народ со своими разработками забегает дальше, чем нужно. Всему своё время.
>>394926видно ты с похуизмом отнесся, потому что я смотрел 2 версии инветаря и обе включали вообще все что ты описал, кроме заморочек про читерство.
это провал, анончик. у меня нет слов.короче, послал не бох давеча таблетку с андрюхой, Irulu Expro X7, ну и значит как любой нормальный пидарас я сразу решил забилдить на неё что-то. и вроде всё работает и даже еграть можно, но тут я напоролся на пиздец под названием ТЕРРАЙН.так вот, сей ненормальный пиздец делает пикрел при любом раскладе связанном с мелким тайлингом (начинается примерно с 32х тайлов на террайн). ессесно я принял бой и сражался как истинный паладин, но всё же обосрался и обосранным прибежал на гд просить подмоги.что я перепробовал:• обычный террайн со сплатмапом и террайн шейдером• террайн, запеченный в меш со снятыми с него картами нормалей и сплатов• Standard Shader с Detail Map• Mobile Normal Shader• Самописный шейдер с деталь-мапой, в котором вместа fixed2 в анрапе стоит float2 (должно было избавить от ошибок округления, а хуй там)• Самописный мейдер в котором вместо UV меша для UV деталь-мапы используется _worldPos.xz перемноженный на переменную кол-ва тайлов• перебор различных форматов компрессии текстуры под мабилу• отключение Mip-Mapping• отключение Anisotropic Filtering• парсинг решения на ЮнитиАнсверз до последней страницы гугла это дерьмо не у меня одного, но ответы там от кирюх• рейджкьюит из юнити• ПЕРЕЗАГРУЗКА OS MICROSOFT WINDOWSбилд под андрона прилагаю. я ебал. это дерьмо невероятно.http://rgho.st/6RVSrNfss
>>394819предлагаю следующий велосипед.сделай все отдельными спрайтамикрепи также относительно сторон
>>394819Я может немного не об этом, но в спрайтэдиторе можно сделать разметку, внутри которой всё будет тайлиться, а за границами разметки всё будет статично.
>>394935Ты шейдеры какие выставил? Ведроид не все держит.
>>394935>>394943А, пардон, в глаза ебусь.
>>394935>http://rgho.st/6RVSrNfssположи в другое место, пожалуйста
>>394935Так это ж не баг, а фича!Может ГГ по сюжету под кислотой.
>>394945http://dropmefiles.com/vjj0Zесть подозрения что всё это может быть связано с древностью самой таблетки и её максимальным нищеебством>>394944там на всех шейдерах одинаковый результат. пока что самая умная мысль что была на юнети-форумах заключается в том что анрапу не хватает пресижена: https://forum.unity3d.com/threads/mobile-terrain-texture-pixelization.231680/
>>394945Ну хуй знает, братишка. Говно, конечно, но не такое как у тебя.Asus Nexus 7, если что.
Это >>394949 сюда >>394935
>>394947не, тогда было бы всё с точностью до наоборот, детали акцентуировались бы. а ВОЛШЕБНО ПУТЕШЕСТВОВАТЬ егрока в манямирок майнкафта чет не хочется
>>394949OH WOW, уже кое-какая информация. таки да, в мануалах по юнети указано что у разных девайсов float'ы шейдеров говнякаются по-разному, то в 24 бита, то в 16. но всё равно спасибо большое, я удостоверился в понимании сути проблемы.
>>394949Да нет же, вполне симпотично. В стиле даггерфола или первых квейков.
>>394952Galaxy Note 1
>>394959>Galaxy Note 1мде. благодарю. пойду дальше чистить говно.
>>394935Бомжетруба Samsung SM-G350E
>>394963и тебе спасибо.короче, раз оно не зависит от девайса, остаётся всего два решениялибо разбивать меш на части и/или вообще делать модульный террайнлибо хуйзнабить, убрать детальмапу, пусть земля будет размытая как ёбь
>>394965> раз оно не зависит от девайсаСудя по этому >>394949 таки зависит.
>>394971в том смысле что от девайса зависит степень зашакаленности карты деталей, а не сам факт зашакаленности.
>>394935>это провал, анончик. >у меня нет слов.тебе следует загрузить ещё больше ассетов!
>>394974Galaxy Note 2
>>394941 изначально все элементы были спрайтами, потом в пикчу слепил для удобства. Изначально небо\трава\столбы были тупо вынесены на сцену и настроены под определённое разрешение. Соответственно, ничего не закреплял на canvas`e, т.к они вообще лежали отдельно. Потом пытался вынести столбы в canvas и закрепить относительно сторон, но юнити их внаглую отказывался видеть(Не исключаю фактор моей рукожопости) Вроде выставлял приоритет отображения, играл со слоями и результат был = 0. Но т.к делать больше нечего, то попробую ещё раз и потом отпишу.>>394942Поподробнее можно? ну или где копать хоть?)
>>394935galaxy note 10.1 2014
>>394986We have a WINRAR!
>>394985> Поподробнее можно? ну или где копать хоть?)Ну просто жмёшь на кнопку и размечаешь поля. Всё что снаружи — не деформируется. Всё что внутри — тайлится.
>>394989Спасибо потыкаюсь. Позже отпишу, если будут вопросы.
Братишка помоги, я совсем отчаялся. Вообщем суть такова, решил запились изометрический A* и обосрался на подлете, не смог придумать как перевести координаты из позиции мышки в индекс массива.Читал интернеты но все что там нашел не подошло, нашел один хороший алгоритм но и тот работает только на половину первого ряда, помоги мне, а? на втором пике CurPosition это переведенная из экранного в Ворлд координаты позиции мышиПараметры тайлов такие:TileWidht = 4; // unity unitsTileHeight = 2; // unity unitsTileOffset_X = TileWidht/2;TileOffset_Y = TileHeight/2;
>>395009Индексирую тайлы слева-направо, снизу-вверх.
>>395009блять, да зделай жи ты нормальночтобы тайлы были гейобжектами, чтобы ты их рейкастил без базара, чтобы можно было камеру нормально двигать и без привязки к положению курсора (а у тебя хуй ты подвигаешь её, нужно велик писать), чтобы тайлы нармально обрезались по фруструму камерычтобы всё как у людей было короче
>>395009Рейкастом не вариант стрелять в нужную клетку?
>>395009А ты парень серьёзный, я смотрю.
>>395021а он навелосипедил отрисовку. взял юнети и велосипедит в нём.
>>3950101. Объясните нубу что значит "A*".2. В чем проблема за 5 мин сделать яйчеки раздельными как написано выше?
>>3950263. у тебя на стыках ячеек, ребра двойной толщины.
>>395026> 1. Объясните нубу что значит "A*".Матрица, то бишь двухмерный массив.
>>395029чоастар это максимум дефолтный алгоритм поиска пути, ну там для рогуликов, для говна двадешного
>>395032лол, успел как круто, уже хотел переспрашивать
>>395024Интересно, нахуя, ведь один из первых геймдев туторов на сайте поясняет за игру с клетками и пошаговостью.
>>395021Нет, дешевле просто посчитать из позиции.
>>395028Это правильно так как размер тайла 30х16 если делать без стыков то будет 32x18 в уме 32x32 так как двиг будет комповать на ^2 размеры при верных пропорциях.
>>395039ты за какую дешевизну борешься? там нет нихуя стоимости этого сраного рейкаста, да в шутанах в которых предметы можно подбирать эти рейкасты каждый апдейт летят, а ещё и враги есть которые рейкастом каждый апдейт игрока ищут глазамино нет, НЕТ, ХОЧУ ВЕЛОСИПЕДИТЬ А НЕ ИГРУ ДЕЛАТЬ
>>395039всмысле дешевле, игра для старой nokia? хуй знает я слышал процессор делает триллионы операций в секунду, не верю что рейкаст займет хоть 1\100000000000000 часть
>>395039Твой велосипед уже выглядит намного "дороже" одного сраного рейкаста.
>>395043Ну давай я объясню, В моем способе я просто трансформирую курсор в мировое пространство и чистой математикой высчитываю индекс в массиве, так делается во всех нормальных играх пруфов не будет, но есть статьи ро фаллаут и дьябло, так-же есть движки типа FIFE это быстро работает, можно считать хоть каждый кадр, а не клик считать. Если пускать рейкаст из камеры в геймобжекты то во-первых так как игра не тайловаяу меня отрендреные беки, большие куски то мне придеться просто генерить поле коллайдеров, во вторых мне нужно будет для каждого коллайдера вешать класс наследуемый от мономехавиер, даже если в нем просто будет храниться индекс массива или можно давать именна в честь индекса и переводить из стринга в инт что тоже глупо. думую дальше обьяснять не нужно. А мой алгоритм работает на половину, мне просто нужно помощь разумиста-математика, что-бы додумал, я то дурак с задней парты.
>>395046>>395049
>>395049Аллгоритм отлично считать строго по границам половину первого ряда, мне нужно понять как его дороботать и в чем сейчас ошибка, можете посчитать таймером, мой алгоритм даже в такой реализации, против кучи колайдеров 4096х4096 ,рейкастов и класса от монобехавиер.
>>3950534096х4096 это массив с нодами, если без дискретных клеток.
>>395054если ты знаешь что ошибка в расчетах, почему не дебагнуть через Debug.drawline(от камеры до точки) и проверяй на сколько, где и куда отклоняеться линия. Ну и меняй циферки в коде как надо.
>>395055Я смогу найти ошибку, но буду делать это еще с неделю т.к. не полный рабочий день занимаюсь этим проектом, но задача тривиальноя и Анон знает решение, так как он очень умен, сейчас он придет и поможетнет, подожду и пойду дальше считать это гавно.
>>395049> так делается во всех нормальных играх пруфов не будет, но есть статьи ро фаллаут и дьяблокакой год, напомни?> это быстро работает, можно считать хоть каждый кадррейкастов за кадр можно хоть 100500 посчитать> придеться просто генерить поле коллайдеровfor (int y=0; y< 128; y++) {for (int x=0; x< 128; x++) {не благодари> во вторых мне нужно будет для каждого коллайдера вешать класс наследуемый от мономехавиерну и ну.а ещё в этом классе можно хранить дохуя полезной инфы, например.короче, зря-зря.
>>395049> Если пускать рейкаст из камеры в геймобжекты Чего блядь? Тебе говорят про один луч из курсора. > игра не тайловаяА хули?> мне придеться просто генерить поле коллайдеров>>395059 вот этот меня обогнал.Экономия на экономии. Хуй знает, с какой микроволновки ты хочешь запускать свое поделие.
>>395062>>395059Хоспаде, надеюсь это один анон семенит, и предлогает вместо простого сложения, использовать 4096х4096 коллайдеров с классом и пускать лучи в коллайдеры, либо просто тут сидят аноны которые ждут ответов на свои проблемы из-за не прочитанной документации и советуют...
>>395058ну удачи, только есть мнение что тут ты нихуя не получишь. По этому попробуй на unity3d.ru
>>395067та так и есть конечно, просто я поспешил, еще не ночной и все что-то понимающие аноны спят.
>>395065> предлогает вместо простого сложенияу тебя велосипед головного мозга> использовать 4096х4096 коллайдеровя буду хохотать когда ты в игру будешь запихивать свою текстурку 122880x65536 в игруну и да, ВКЛЮЧАЙ КОЛЛАЙДЕРЫ @ ОТКЛЮЧАЙ КОЛЛАЙДЕРЫ если уж так поехал по оптимизации> еще не ночной и все что-то понимающие аноны спятМААМ ОНИ ВСЕ ТУПЫЕ НЕ ОЦЕНИЛИ МОЙ ПОГРОМИЗДСКИЙ ГЕНИЙ
>>395065Да нахуй тебе вообще курсор, стрелочками переключайся между тайлами.
>>395071>велосипед Не хочется отвечать на флейм, но что-ты имеешь ввиду под велосипедом, ведь как раз этот термин больше подходит под те кастыли которые ты мне предлагаешь с коллайдерами. А насчет сложение обьяснять не буду, сам найдешь, но есть только 1 и 0 и только сложение, умножение это тоже сложение, вычитание это сложение с отрицательным значением, учи мат часть, и твой велосипед с коллайдерами против mouse_grid_x = floor((mouse_y / tile_height) + (mouse_x / tile_width));mouse_grid_y = floor((-mouse_x / tile_width) + (mouse_y / tile_height));Только полный дурак может посоветовать то что ты советуешь, прости конечно, но я бы тебя нахуй послал, но не Б.
>>395076слушай, делай как хочешь, обвиняй всех в том что они тупые и не делают как ты делаешь, да мне насрать, вот честное слово
>>395076как ты в 4056х4051 будешь опредлять в какую точку можно встать а какую нет
>>395071Помогу этому анону представь что у тебя не изометрия а диметрия и каждый тайл это квадрат 1х1, если позиция мышки в (13,14)? то значит индекс узла в массиве [13,14], и так далее, а ты предлагаешь ему лепить велосипед из коллайдеров и рейкастов, вместо простой трансформации векторов.
>>395079Какая разница между 4056x4051 или любого другого?Это не имеет значение, перебераются соседние клетки, накидываются веса и проверяется на проходимость. Ты вообще знаешь что как работает А*?
>>395080превет я не понял проблему но напишу свой высер что если округлять не до 1 2 3 а до 0.5 \ 1 \ 1.5 и т.п. а что бы было проще есть при импорте строчка pixels per unit, тобишь если твоя картинка 512 пикселя, ставешь 512 и вуаля твоя картинка стала 1 юнит в длину
>>395085пиздец я тупо написал, начиная со слов "а что бы" это уже идет второй вариант для раздумий а не первый
>>395071Испанский стыд.
>>395009>>395049>>395065>>395071>>395080http://clintbellanger.net/articles/isometric_math/ Тут вроде про то.
Есть ли способ рисовать линии в unity ui ?Нужна возможность рисовать линии на подобии пикрил (ссорян за кривой пик, рисую мышкой)Т.е наподобии линий в paint.net c задаваемыми "головками" и и изгибом (опционально)
>>395141всмысле UI? может проще через line renderer сделат?
>>395143Он кривой пиздец
>>395143всмисли
>>394985Итог: рукожоп. Я прикреплял якорями не к тем же сторонам, что и кнопки. В итоге был анал-карнавал на экране. Прикрепил в те же места, и всё встало на свои места. Тонны нефти всем, кто помог)
>>395141Рисую с помощью Vectrosity, мне норм. В 2d и на GUI там тоже можно рисовать, стоит 30$.
Привет анон. Как сделать что бы камера меняла позицию только когда спрайт будет на определенном расстоянии от цетра стороны куба, на которой он находиться сейчас?Например камера стоит ровно, но когда спрайт достиг 2 клетку от края, камера тогда "подгоняется" Как по вертикали так и по горизонтали отдельно. А сейчас камера движется каждый шаг как на гифке.
>>395193сейчас камера работает так (куб - спрайт).normalize * distance
>>394935У меня все заебись.
Есть какие-нибудь бест практисы реализации статов - с бафами/капом/итд, желательно на ентитьках? Держать финальное значение в тупом поле и обновлять хуками или высчитывать в геттере? Создавать ентитьку только на релейшн баф-перс, или объектизировать каждый стат и создавать релейшны между конкретным статом и влияющим на него эффектом?
>>395211Моладой чоловик, изъясняйтесь на русском
>>395241Настоящие посоны знают инглиш, поэтому выясняют вопросы по движку на русскоязычной борде.Все так делают, и ты делай.
>>395211i used to overuse rudimentary terminology lik youand then ive got a SAGE in the knee
>>395242Ну знаю я английский, и что? Твой дефективный жаргон от этого понятнее не становится
>>395246Ты промазал, я вообще не он, я тебе попытался донести мотив таких вот жаргонистов.
>>395246Я хз где ты там жаргон нашел, такие термины русского официального перевода не имеют, поэтому транслитерируются испокон веков, причем на испанский/китайский/итд точно так же.
>>395252>транслитерируютсяЗначение этого слова знаешь?
>>395252>ентитька>релейшен>бест практис>не имеют переводаГлотай мочу
Нужно чтобы после удара от противника в направлении удара отлетали кусочки в виде частиц. Получается нужно чтобы в момент удара particle system сначала поворачивалась в нужном направлении, затем выпускала частицы, так ведь? Вот с частью с поворотом у меня ничего не вышло. Попробовал вращать трансформ самой системе, пробовал делать её ребенком пустого родителя и вращать его, но не выходит. Дальше копать по поводу вращения, или я вообще не то делаю?
>>395287А, всё. Разобрался. Я подсознательно боялся кватернионов, видимо.
>>395287А тупо новый вектор создать нельзя? Ну типа:Vector3 direction2 = new Vector3;direction2.x = -(direction.x);direction2.y = -(direction.y);...Но я в общем-то сам за советом пришел, а не советовать.Аноны, хочу запилить тир с девочкой-волшебницей. Если вкратце, то девочка бегает по небольшому уровню, прячется за препятствиями и стреляет по игроку. Игрок стреляет в ответку с фиксированной позиции, попадая по всяким интересным коллаидерам на теле волшебницы и проигрывается красочная анимация с исчезанием одежды на ней.Проблема только в том, что я не программер, а больше 3д-моделлер и аниматор. Поэтому думаю по максимуму использовать популярные плагины к Юнити. Итого, есть два стула:1) Использовать RAIN в связке с Mecanim. Продумывать сложное поведение девочки на карте, работать с многослойной анимацией с красивыми переходами.2) Легаси вместо Маканима. Всю анимацию пилить во внешнем софте. Самому пердолиться с АИ, рассчитывать линию видимости, карту пути и прочее говно, которым должен заниматься программист.На какой сесть? Какой путь даст больший шанс, что я смогу рабочий прототип в разумный срок выкатить?
>>395302>>Я моделер, значит делать упор на графику или код, имея готовое программное решение? Ответ яснее солнца.Дополню тем что ты немного ошибся тредом. Советую тебе поглядеть порно игор тред по соседству в gd.
>>395311>порно игор Не, порнушку пилить не собираюсь. Девочкам-волшебницам обычно меньше 18. И потом, для создания качественной анимации непотребств в Юнити на самом деле нужна высокополигональная модель с охуенно сложным ригом и морфами + симуляция физики волос и одежды. Порнотред полон пидорами, которые собирают вместе рендеры из Позера и называют это игрой. Алсо, думаю взять компромиссное решение: Rain + legacy animation system. Меканим что-то кажется очень комплексной и затратной по времени штукой.
Поясните за рейкасты, а то нихуя не взлетает. На Йобе тег соответствующий, и RigidBody2D и коллайдер висят можно покрутить, в консоль нихуя не пишется. Или мне надо пользоваться 2D рейкастами и фильтровать землю-небо-аллаха?
>>395316UPD: Он вообще нихуя не детектит. Попробую через DrawRay.
>>3953201. вызываешь ли ты где то detectYoba, а то всякое бывает.2. юзать Physics2D
>>395320drawRay это для отладки и ниче не детектит а только рисует на экране полоски
>>395322> вызываешь ли ты где то detectYobaВ Update(), ежжи.>>395323Просто у меня уже возникает вопрос, находится ли луч там, где я предпологаю, или он хуй пойми где хуй пойми куда стреляет.transform.right, оказывается, указывает на стрелку оси в глобальных координатах в точке 0, 0, 0. Зачем — непонятно. Пока что я пилил взаимодействие с предметами под носом у игрока, и, тащемта, вернусь к системе с узеньким коллайдером, но, блядь, обидно, что лазеры из рук не попускать.
>>395326> transform.right, оказывается, указывает на стрелку оси в глобальных координатах в точке 0, 0, 0Или нет. Как работает это говно!?
>>395332таки да. а почему нет? transform.up частенько пригождается в мелочах, вот они и transform.right пихнули. чисто для удобства. чтобы складывать с ним, или брать проекцию на ось
>>395326в чем проблема, в рейкасте тебе нужно направление, tf.right таковым является
>>395332у тебя ограничена длина луче в 0.2, а судя по пикче спрайт размером около 1.2 тоесть луч даже не выходит за пределы спрайта
>>395332у любого Transform есть родитель, если его нет, то им является world space.
Насколько сложно написать и поднять веб сервер для юнити проекта?
>>395340сложна
>>395340есть же готовые решения. от самого юнити или от Photon. уверен что нужно велосипедить?
>>395336>>395337Нет, я, конечно, тупее команды разработчиков буду в (количество_персонала * 2) раз минимум, но эта штука очень странно работает. То у меня луч шел почти к центру мира, то он идет из персонажа в нужную сторону. >>395338Объект, на который я это креплю вообще 0.16 в ширине.>>395339Родителя нет, все нормально. Опять же, хуй знает. Эта штука заработала как надо, отложу ее до изобретения внутриигровых бландербасов. Сама функция теперь в FixedUpdate().
>>395343Смысл в чем. Есть проект на юнити. Готовый. Но к нему нужно написать веб-сервер и поднять. Если поднять я смогу, то с написанием я полный 0. Вот и интересуюсь на правах профана.
>>3953451.>>То у меня луч шел почти к центру мира, то он идет из персонажа в нужную сторону. это именно потому что>>Нет, я, конечно, тупее команды разработчиков буду2. что значит бландербас
>>395347ну вот я и говорю — бери готовые решения. серьёзно, ты хочешь с этими протоколами связи совокупляться? хотя погоди, а в чем соль этого сервера? если вдруг ты там хайскоры собрался хранить то просто Apache поставь и SQL-запросами отправляй/забирай. нужен сервачок чтобы с друзявками побегать-пострелять? вам Photon Cloud, забирайте, до 20 рыл единовременно — бесплатно и без постоянно работающего сервера ПИЗДЕЦ ХАЛЯВА СТАВЬ БАЗАРЮ ЕЩЁ ЗАХОЧЕШЬ
>>395348А я и не спорю, лол. Был бы умнее, давно бы закончил прототип, пилил бы стартовую локацию.Бландербас — это огнестрел.
Аноны, делаю что-то типа экшн платформера. Вид сбоку как в обычных платформерах, но сами уровни не прямолинейные. Игрок двигается во всех направлениях. Стоит вопрос о том, как правильно реализовать камеру. Нужно, чтобы она постоянно была направлена так, чтобы уровень был виден сбоку. Нарисовал даже картиночку (вид сверху для наглядности). Как лучше решить этот вопрос? Расставлять по всей длине уровня кривую линию и вращать камеру перпендикулярно этой линии или можно как-то по другому?
>>395384Вращай камеру на такой же угол, на который вращается персонаж по оси Z.
>>3953841 можна не делать изгибы2. вращать камеру можно проверив угол между направление движения игрока и ммировой forward(ну или той, при которой когда персонаж бежит ровно влево или вправо, это ось ему паралельна)
>>395410или можно прилепить камеру тупо к бочине игрока, а когда он захочет(если так можно будет) повернуться слишком много то просто остановить камеру в нужный момент
>>395411тоже по углам проверять всяким
Пилится тяжко-валко. Управление полностью по физике, но при этом достаточно указывать мышкой цель. Система управления корабля сама думает, какими движками и когда и куда нужен управляющий и тормозящий импульсы, поэтому вполне аркадно.
>>395450 не понел прекол, зачем какие то вычисления физики?
Помогите советом, ребяты.Я полный нуб в программировании. Скачал фреймворк для пошаговой стратегии, потихоньку копирую части кода, разбираю их и переиначиваю для своих целей, но этого явно недостаточно, чтобы разобраться, что делать с этой хуйнёй. Поясните, пожалуйста, один момент: по какому принципу делать abstract, virtual и override так, чтобы во-первых не возникало ошибок из-за конструкции вида Class class = new Class();, во-вторых можно было из любого места вызывать этот оверрайд, а игра принимала этот оверрайд вместо основной функции, и в-третьих присобачить к этому делу ивенты. Я кое-как сообразил до использования текстовиков и подбираюсь к словарям, но сдаётся мне, есть куда более простые способы это всё организовать. Если есть какой-нибудь материал хороший по теме, то буду очень признателен. Но я полный нуб в программировании, я банально не понимаю, что имеется в виду в тексте как на MSDN и подобных сайтах, мне бы чего попроще.
>>395467Забыл написатьМне именно совет по конструкции нужен, как это организовать всё. Во фреймворке том хаос, по крайней мере я не могу какой-то последовательности вычленить, все переменные и функции туда-сюда прыгают.
>>395467в ютюбе ройся примерно по таким тэгамunity3d OOP, unity3d inheritance, c# ООП наследование. там с примерами и человечиским языком полно видео
>>395467тобы во-первых не возникало ошибок из-за конструкции вида Class class = new Class() че за бред ты пишешь конкретне пожалуйста, причем по всем пунктам. Хотя нет не надо, просто гугли не то что не понятно msnd а даже на офф сайте юнити есть уроки по OOP простые
>>395460Ну по условиям, в космосе трения нет. У кораблика 4 маневровых движка. При этом, если включить какой-нибудь из них, а потом выключить, то по закону сохранения момента инерции, корабль будет вращаться так бесконечно, пока ты в противоположном направлении не создашь такой же импульс. А хомосапиенсы слишком плохо контролируют работу н-количества двигателей и плохо вычисляют кватеринионы в уме, поэтому автопилот берет эту сложную работу на себя. Игрок задает мышкой направление или цель, на которую надо сориентироваться, а автопилот включает нужные движки в нужном направлении на нужное время, а потом осуществляет тормозной импульс, чтобы сориенироваться точно как надо.
>>395467> по какому принципу делать abstract, virtual и override так, чтобы во-первых не возникало ошибок из-за конструкции вида Class class = new Class()abstract используй, если тебе нужен просто общий родитель для остальных классов, и ты не собираешься этого родителя вызывать в школу. virtual можно вызывать, можно и перезаписывать.override есть перезапись для абстрактных и виртуальных классов.> во-вторых можно было из любого места вызывать этот оверрайдВ смысле? Сделай класс публичным, вот и все.> присобачить к этому делу ивентыUpdate() > какой-нибудь материал хороший по темеC# Player's Guide, CLR via C#. В /pr/ пояснят.
>>395473Например, если цель находится как-то по диагонали, а корабль вращается вдоль продольной оси, то вручную каждым движком сложно управлять. А Слишком аркадно делать я не хотел, по типу "Куда указываешь, туда просто перемещается транслейтом, без учета предыдущего импульса и инерции". Короче, пытаюсь на два стула сесть.
>>395467Нахер тебе вообще отвлекаться на юнити, если ты еще не умеешь кодить? По-хорошему бы тебе через пару-тройку языков сначала пройти, но если влом - то хотя бы на голом шарпе сначала туториалы поделай.
>>395475ваще не врублюсь по мойму проще через lerp и slerp всё делать и по ним же вкл\выкл частици на движках
>>395475хуй знает графон четкий а какие там движки физические мне кажеться всем похуй будет
>>395480Ну как сказать, допустим в момент интерполяции того же вращения кораблю прилетает снаряд, а он как терминатор, даже не реагирует и продолжает интерполироваться? Или другая ситуация: попали в двигатель и вывели его из строя, соответственно, как тут интерполировать с учетом вышедшего из строя движка?
>>395524>> как тут интерполировать с учетом вышедшего из строя движка?а как без него? gameover же.>>кораблю прилетает снаряд, а он как терминатор, даже не реагирует и продолжает интерполироватьсявиден недостаток опыта
Как ничего не делая получить невырвиглазный грофон?Пробовал делать топдаун, выходит страшновато. Изометрия ещё хуже - в четыре раза больше объём работы. Пилить 3д, дёргая анимации? Завести раба-дизайнера?
>>395527Добавь фиолетово-зеленый градиент на фоне и сюжет про холодную войну.
>>395527зачем он тебе можно узнать сначала? просто есть мнение что ьеюе это нахуй не всралось
>>395528БОЛЬШЕ БЛУМА ТУДА БООООЛЬШЕ
>>395527слишком контрастная стилизация текстур. То есть какого хуя у тебя пиксель арты поверх качественной плитки, и полностью черные перегородки
>>395533обдумать интерфейс, может карту как в кс
>>395533рисовка должна быть одинаковой короче. А иначе ебашь сразу пиксель арты с фоном как gta5
>>395526>а как без него? gameover же.Без одного или двух (если в разных плоскостях) ещё вполне можно маневрировать, но это накладывает свои ограничения. Зато сколько интересных ситуаций.>виден недостаток опытаМожно пояснить?
>>395529>зачем он тебе можно узнать сначала? просто есть мнение что ьеюе это нахуй не всралось Сам не знаю. Изначально это задумывалось как рогалик на заброшенном космическом корабле/станции. Но пока ничего из механики кроме стрельбы на физдвижке нет.Поэтому я думал может вообще не заморачиваться с рисованием, сделать один неанимированный тайл на персонажа и сосредоточиться на другом?>>395533Я террейн пока не делал вообще, эти тайлы дёрнул откуда то. Cлепил только персонажа, несколько пушек и ботов. Интерфейс не попал в кадр, чтобы не разсирать видео. Пока что там хп бар слева вверху и иконка шуты слева внизу.>рисовка должна быть одинаковой корочеХорошо, был соблазн понадёргать на окружение текстур, чтобы не заёбываться самому.Но есть что-нибудь относительно самого персонажа? Какие-нибудь детали, которые режут глаз, что то чего явно не хватает?
>>395554> Поэтому я думал может вообще не заморачиваться с рисованием, сделать один неанимированный тайл на персонажа и сосредоточиться на другом?Это твоя первая игра, да?Прототипирование тебя спасёт, мой друг, излишний перфекционизм в геймдеве вреден. Пусть у тебя вместо героя будет кубик, а вместо врагов — шарик, потом доделаешь как надо. Ебошь механику.
>>395555>Это твоя первая игра, да?Несколько лет работал в окологеймдеве, но в основном я добавлял какие то фичи в старый самописный движок ещё на 9 директиксе, рисованием занимались специально обученные люди.>излишний перфекционизм в геймдеве вреденСогласен, но...>Ебошь механику. ...механика хтх, например, чётко привязана к анимациям. И в ебошеньи механики прийдётся местами оставлять место для будущей визуалкидо которой всё равно дойдёт, если я раньше не найду работуМожет отдалить камеру вдаль, чтобы почти нихуя не было видно?
Сап! Имел ли ли кто опыт интеграции рекламы для windows phone? Подскажите какими средствами это можно сделать? Видел в интернете adrotator - но по нему последние обновления были в 2014 году хз, работает он или нет. Второй AdDuplex - но там денег не заработать.
>>395471>>395472>>395474>>395476Спасибо всем, более-менее прояснилось всё.Нашёл (кажется) то, что нужно - finite state machine. Ща на свитчах да с оверрайдами всё заебошу!
>>395564Поясни за свою идею хотя бы, зачем тебе оверрайды?
Поясните за орм в юнити. В сторе и на гитхабе какое-то самописное говно с хуй да нихуя функционала. Хибернейт или энтити как-то вообще интегрируются готовым решением? Или подразумевается, что я свою модель делаю отдельно, а потом каждый раз руками в юнити правлю юзающие ее классы?
>>395564гугли лучше coroutine FSM
>>395593а зачем
>>395595ну мне какбэ проще изменить 1 строчу в схеме, чтобы оно само обновило базу и код в 30ти местах, чем делать это руками
>>395599что за магия
Перестали работать старые клипы анимации, но новые работают. Кто-нибудь знает причину?
>>395605там же варнинг висит сверху невидишь там где треугольник желтый
>>395302Аноны, похоже RAIN AI нихуя не работает в 5.6 версии. Из-за какой-то странной баги нельзя ни легаси клипы анимации загрузить, ни Mecanim Animator включить. Да и вообще, похоже что разработчики забросили плагин и разрабатывают специализированную хуйню под виртуальную реальность.Качаю старый 5.3 редактор от безысходности.Кто-нибудь посоветуют альтернативный плагин для АИ, который еще живой?
>>395609а что конкретно тебе нужно от ai?
>>395609Настолько привык сам все ковырять, что удивляюсь, когда кто-то упоминает плагины. Сам только начал пилить ИИ для экшн-рпг, уже предвкушаю многочасовую еблю, ммм.
>>395581Потому что так в фреймворке сделано. Подражаю стилю настолько, насколько могу, но там в самом фреймворке мешанина. Но вообще, как я понял, чтобы иметь разные вариации одних и тех же функций. Можно и как-то словари к этому прикрутить, но это мне кажется слишком сложным. Вот, например, во фреймворке есть пасфайндинг какой-то странный. Когда выбираешь юнита, создаётся несколько словарей, куда закидывается дохрена гексов во все стороны, чем дальше разрешено искать путь, тем сильнее лаг. Я, конечно, не знаю, но подозреваю, что дело именно в создании тонны словарей. По сравнению с этим мои свитчи и ифы на 100 строк никак на производительность не влияют.>>395594Для чего это надо?
Как заставить частицы уважать sorting layers? Как в настройках не ставь, им похуй.
>>395615Сажа приклеилась.
>>395615О, опять ты. Как успехи?
>>395614fsm - finite state machineна корутинах фсм самый топовый гугли сам
>>395621Почему топовый-то? Он что, между кейсами свитча паузы принудительно ставит?
>>395622гуглить умеешь? FSM coroutine там нету блять никаких свичей
>>395626https://forum.unity3d.com/threads/state-machine-coroutine-vs-update.103110/Первая ссылка. Сразу свитчи идут.
>>395618Пилю понемногу. Упростил анимацию, а то чем дальше заходил, тем больше проблем было. Сейчас собираюсь сделать смену оружия на пистолет и обратно, но всё никак не соберусь.
>>395627мм а я то всю жизнь думал что надо брать минимум первых 5 ссылок https://blog.playmedusa.com/simple-fsm-like-structure-with-coroutines-in-c-unity3d/
>>395611Мне надо чтобы АИ правдоподобно прятался за укрытиями от игрока, ну и стрелял в ответ, выбирал разные варианты перемещения по карте. И само собой, без анальных ограничений, чтобы можно было кодить свои действия для АИ при необходимости.Алсо, RAIN все же заработал у меня, после целого дня мучений. Надо было всего лишь allow depreceted functions галочку в настройках поставить, анимации через такую жопу вполне себе подгружаются.
>>395607Варнинг появился когда клипы перестали работать, при исправелении варнинг не исчезает, указывает на то же, теперь не существующее место, и клипы все равно не работают. Так что варнинг последствие какой-то другой ошибки.
>>395629Это дно и так делать не надо. Потом пожалеешь.Вообще FSM это самый худший вариант для ИИ.В самом просто случае можно сделать что-то вроде спискаinterface IAction {bool IsValid(GameObject go);void OnStart(GameObject go);void OnFinish(GameObject go);}void Update(GameObject go);и потом foreach (var action in actions) if (action.IsValid()) Update().....поведение любого агента задается просто списком действийдля большинства простых игр этого хватит
>>395085>>395075>>395071>>395062>>395059>>395049>>395046>>395043>>395042>>395021>>395009Если кому интересно, то вот решение для такого типа сеток, а сетка как я понял не тривиальная, писаю в рот тем кто предлагал пускать рейкасты и генерить 16.777.216 4096x4096 геймобжектов с коллайдерами, учите аллгебру что-бы не проебать выходные как я.
>>395665а теперь скажи, ты получил удовольствие? будто потрахался, да? смачно задоминировал шарп своим нехилым интеллектом? стал на чуточку умнее, научился чему-то новому, развился над собой?серьёзно, чувак, рукоплещу тебе. это определённо того стоило. теперь игру хоть можно доводить до конца, а то прям аж застрял с этими ромбиками, эх. браво, короче
Подниму вопрос про серверную архитектуру. Кто нибудь онлайн игры тут делает вообще? Есть ли те кто используют что-либо кроме Фотон Клоуд?Кстати, если используете встроенный мультиплеер юнити, насколько он удобен и хорош, сколько коннектов держит?
>>395665> 4096x4096Нахуя тебе такая большая сетка?>>395674За это время мог бы и загуглить. Тут тебе зададут (и уже задали) только один вопрос: "А оно тебе надо?"
>>3956741. Тебе бесплатно никто сервер не даст2. По твоему сообщению ясно что ты нуб(не можешь сам гуглить, не шаришь в азах), и поверь фотон это твой единственный выход
>>395677Я гуглил. Нашёл только 1 хрень более-менее дешёвую и с хорошими отзывами. Ищу альтернативы.Да, оно мне надо. Либо какой то мануал по написанию сервака для юнити. >>395678Не хочу я фотон. Он платный и говно. Ну, который облако. А для Фотон Сервер у меня денег нету.Кто нибудь Ulink использовал?
>>395680че бля с каких то пор фотон платный нахой. темболее клауд который еще дает 20 слотов бесплатно
>>395680https://www.assetstore.unity3d.com/en/#!/content/1786 где он платный
>>395680и как ты не зная вообще как устроен простейший сервер, определил что клауд говно? я уверен что у тебя нету даже прототипа игры, и самой игры не будет никогда с таким ахуительным подходом
>>395685Ты понимаешь что в фри версии ограничение по числу подключений? >>395684Ммм, 20 слотов! Как многа!>>395686В клауде за 1000 слотов нужно пиздец сколько много платить разработчикам этого самого клауда. А я им ни копейки не хочу давать, ибо клауд ломается через ЧИТ ЭНЖИН, блядь.
>>395688А нахуя тебе больше? Ты не можешь сам запилить сервер, это склоняет меня к мысли, что и бесплатного фотона тебе будет дохуя.Если ты такой гений и смог соло собрать ММО дрочильню, которая не заебет за 15 минут, тебе будет не сложно разобраться в собирании сервера.
>>395691Я уже в ассет сторе нашёл нужную мне вещь, без помощи анонов.В итоге лучше бы я вообще не спрашивал, ибо мне во всех темах без исключения как додики твердили "ФОТОН ФОТОН". Я хотел реальных советов от людей использующих адекватную готовую серверную архитектуру, чтобы понять что лучше, а в итоге фотонодебилы с их ограничением по коннекту.
>>395692ага не забудь скинуть потом игру свою все вместе будем играть
такая трабла: при переключении на другую программу -> юнити на вкладке сцены артефакты с отрисовкой происходят, и чем больше раз переключаться между программами, тем хуже становится. Помогает вкл/выкл освещение, но до следующего переключения между программами и юнити. В чем может быть проблема?
>>395716Некропека.
>>395719да не, железо норм
>>3957161. попробуй погуглить2. это только на сцене или в окне Game тоже3. понажимай на всякие кнопки например сверху слева 2D 3. поковыряй настройки вроде они в Edit>project settings но это не точно сам ищи4. а в играх и других прогах все ок? если нет значит драйвер чекни
>>3957221. пытался гуглить, но ничего не нашел, наверное тупой и не могу правильно сформулировать проблему.2. только на сцене, в окне game все нормально.3. не помогает, просто переходит камера в 3д и там такая же проблема.4. в других играх и прогах все ок, дрова недавно обновлял.
>>395723попробуй создать новою сцену \ проект зановоперезагрузить пк
>>395724такая проблема даже в пустом проекте, т.е. артефакты при отрисовке даже самой сетки или иконки камеры.
>>395725видно 5.6 на некоторых сломан. на вин 7 все ок
>>395726до этого стояла версия 5.5.0f3, те же проблемы были, решил поставить новую версию и не помогло.
Котятки проверьте у себя, помоему разрабы легаси гуй поломали Unity 5.6.3f GUI.SelectionGrid не робит текст, не ассоциируется. public string[] selStrings = new string[] {"Grid 1", "Grid 2", "Grid 3", "Grid 4"}; попробуйте поменять, текст selStrings на любой другой.https://docs.unity3d.com/ScriptReference/GUI.SelectionGrid.html
>>395614Начал потихоньку перепиливать фреймворк и обнаружил там забавную конструкцию. Суть в том, что есть 3 разных класса - игровая доска, юнит и состояния доски. Автор сделал карусель какую-то - в юните задаётся ивент и аргументы, затем в доске этот ивент отлавливается, вызывается функция в классе состояний доски, которая уже впоследствии и используется вместо настоящего ивента. Моя же идея того, как это переписать, заключена в следующем: в юнит засунуть переменную, содержащую в себе ссылку на игровую доску, превратить состояния доски в enum в классе игровой доски, а ивенты, происходящие с юнитом, определить в новом классе EventManager. Когда же будет происходить какой-либо ивент, то он будет вызываться из самого юнита, где ифами и свитчами будет указываться состояние доски. Вопрос чисто теоретический, не ругайтесь, пожалуйста: что из этого лучше по производительности? Моё говно мне точно будет понятнее хотя бы потому, что не будет трёх функций в трёх разных классах с почти одинаковыми именами, но это же не главное
>>395789>Автор сделал карусель какую-то - в юните задаётся ивент и аргументы, затем в доске этот ивент отлавливается, вызывается функция в классе состояний доски, которая уже впоследствии и используется вместо настоящего ивента. Забыл Когда же какое-то действие происходит с юнитом, вызывается вся эта карусель, а затем в конце вызывается какая-то функция в юните
>>395789Интерфейсы выкладывай блеать, или описывай точнее
>>395723Из того, что я нагуглил: если две видюхи, попробуй запустить юнити через интегрированный граф. процессор; зафорсить директ икс постарше; покрути в прогобеспечении своей видюхи визуальные параметры (например, качество/перформанс 3Д); переустанови Юнити.
Сап, гдэч.Начал крутить-вертеть этот ваш новый навмеш, и уперся в проблему:NavMeshBuilder.UpdateNavMeshDataAsyncработает только с некоей новой NavMeshData. Фактически, я вынужден делать navData = new NavMeshData();Что на хую вертит мой текущий навмеш и новый создает поверх него, либо, вместо него.Как мне "вернуть" ссылку на свой имеющийся NavMeshData?Геймдевч помогач?
Что лучше, называть версии по годам или как было раньше?
>>395884Лучше релизнуть играбельную версию.
Собрал яйца в кулак и решил начать делать игру своей мечты, поставил юнити, открыл гайды, и буквально сразу уткнулся в проблему, решить которую не могу уже день. Вот я хочу добавить фон для 2д шутера. Гайды говорят: ну импортируй пикчу, делай спрайт и добавляй в сцену. Казалось бы, просто, но нихуя. Закинуть-то я пикчу закинул, но добавить никуда не могу. Понимаю, что вопрос, скорее всего, очень тупой, но объясните мне пожалуйста, ЧЯДНТ?
>>395904https://unity3d.com/ru/learn/tutorialsСделай эти обучающие проекты, попутно узнаешь основы.
>>395904Ссылка от 2014-го года, но может быть поможет: http://answers.unity3d.com/questions/655081/images-cannot-be-imported-and-assigned-to-sprites.htmlНе поможет — забей хуй, пили игромех. Обмазать картиночками еще успеешь.
>>395662Начал гуглить, как лучше сделать, и этот анон оказался прав. http://alumni.media.mit.edu/~jorkin/gdc2006_orkin_jeff_fear.pdf — разрабы FEAR довольно неплохо поясняют за структуру своего ИИ.
>>395924Да, помогло. Спасибо за подсказку. Ебать это было неочевидно.>>395910Обязательно сделаю.
>>395789>>395790Сломал нахуй этот фреймворк Подскажите, пожалуйста, какие есть конвенции в игрострое. Вот в этом фреймворке была доска, от которой шли остальные элементы. Допустим, я хочу добавить интерфейс, хелсбары там и всё такое. Как это обычно делается? GUIController, а от него при старте создаются все окошки и менюшки? А доска как? Тоже от GUIController'а?>>395824Ты спросил так, будто я знаю, что такое интерфейс.
>>395967Я в твоих постах уже запутываться начал, лол.> в этом фреймворке была доска, от которой шли остальные элементы.Не совсем понимаю, что ты имеешь ввиду. В коде доски хранились все инстанции юнитов? Или какого-то хуя юниты наследовали класс доски?> Допустим, я хочу добавить интерфейс, хелсбары там и всё такое.Добавляешь Canvas, в него уже скриптами вызываешь UI префабы когда тебе надо, убираешь когда не надо (для катсцены, например).> А доска как?Вон там выше кадр ебался с реализацией доски. У него это просто спрайт на фоне плюс сетка координат.> будто я знаю, что такое интерфейс.Так узнай.
>>395971>В коде доски хранились все инстанции юнитов?Не-не-не. В комментариях к доске написано было, что доска ответственна за выполнение всех действий, связанных с юнитами и клетками и игроками. Выглядит это примерно так: есть в сцене 3 объекта, в которые вложены юниты, клетки и игроки. Игровая доска один из этих объектов и содержит клетки, а в переменные её занесены юниты и игроки. Когда какая-либо функция запускается, обычно она так или иначе пропускается через игровую доску. Я это изменил и ивенты вывел в другой класс (чтобы код упорядоченнее выглядел главным образом). Теперь вот думаю, нужно ли оставить доске запуск всех функций - например, какой-то метод будет подписан на ивент и будет исполняться из класса доски. >Добавляешь Canvas, в него уже скриптами вызываешь UI префабы когда тебе надо, убираешь когда не надо (для катсцены, например).А-а-а, спасибо. Несколько смущает то, как сцены в юнити устроены. Можно же динамически "из кода" создавать объекты (как эти new Class())? >Вон там выше кадр ебался с реализацией доскиС реализацией доски проблем нет. Во фреймворке есть генератор доски по высоте-ширине и разные методы, которые позволяют искать расстояния, соседей и т.п. Мне интересно, как это в нормальном коде выглядит - в нормальном коде тоже все ивенты и функции из доски вызываются, или же она подчинена какому-нибудь Controller'у?>Так узнай.Легко сказать. Я так понял, это альтернатива absract'у, virtual'у и override'у?
>>395973> в сцене 3 объекта, в которые вложены юниты, клетки и игроки.Ну хуй знает. Можно и в одном все держать.> Можно же динамически "из кода" создавать объекты (как эти new Class())? https://docs.unity3d.com/ScriptReference/Object.Instantiate.html Прописываешь несколько пустых переменных GameObject для разных окошек, панелек, хуе-мое. В Start() или когда тебе нужно будет инстанциируешь. Скармливаешь инстанции нужные данные через переменную, она отображает как ты захотел. Нужно убрать элемент UI — Destroy(yobaUI); Если кто-то будет говорить, что в коде можно отрисовать, гони их ссаными тряпками, не для этого мы в 2к17 живем.> Мне интересно, как это в нормальном коде выглядит - в нормальном коде тоже все ивенты и функции из доски вызываются, или же она подчинена какому-нибудь Controller'у?В пошаговой дрочильне у тебя так или иначе есть контроллер, который следит за тем, кто сейчас ходит. Можешь в доске вызывать следующего персонажа и его скрипты, что не очень удобно, имхо, либо просто вызывать функцию на восстановление очков действия, а там уже скрипт на юните решит, что лучше сделать, плюс сообщит доске, что он закончил. В real-time просто нет контроллера либо он занят чем-то еще, юниты просто одновременно думают.> Я так понял, это альтернатива absract'у, virtual'у и override'у?Типа того. Вот у тебя есть класс Yoba, который который может создавать бугурт, может бугуртить сам. Но если тебе нужно эти функции иметь на классе Human, можно прописать наследование. (пик 1)Вместо того, чтобы Human таскал с собой ненужные ему radius и Roll(), можно раздавать только эти две функции через интерфейс. Таким образом ты просто знаешь, что все элементы, наследующие от IButthurt будут уметь в эти две функции хоть каким-то образом. (пик 2)
>>395996Спасибо, сильно помогает.>Таким образом ты просто знаешь, что все элементы, наследующие от IButthurt будут уметь в эти две функции хоть каким-то образом.Это понятно, непонятно то, как это использовать. Вот допустим абстрактный класс Unit. В нём задан абстрактный метод, который по-разному оверрайдится в наследуемых классах SampleUnit и MyUnit. Если в каком-либо методе я вызову Unit.Method(), то этот Unit.Method() изменится в зависимости от того, является этот Unit SampleUnit или MyUnit. А как мне через интерфейс понять, какую из "оверрайдящих" функций я вызову?
>>396001>вызову Unit.Method()Если я правильно помню, то практически любой язык не позволит вызвать метод у абстрактного класса, надо будет сделать ((SimpleUnit)Unit).Method() или ((MyUnit)Unit).Method().
>>395996IBatthurtable же.
>>396004IButthurtable, в смысле, я немножко довен.
>>396003Без ссылки на объект в любом случае не вызовется. Я имею в виду ситуацию, что мы вызываем ссылку на уже имеющийся юнит (которому уже задано, какого типа он юнит) так, как будто он не специфически MyUnit или SampleUnit, а просто Unit
>>396001Интерфейс считай тоже самое, что и родительский абстрактный класс, просто с более узким набором контента, который ты можешь в него вбросить. Если у тебя есть какие-то универсальные функции, которые должны быть у огромного количества разношерстных объектов, ты просто можешь реализовать их через интерфейс, не заебываясь с хитровыебанным наследованием. Алсо, наследовать можно только с одного класса, так что нельзя иметь конструкцию типа:public class GenericNPC{}public class Humanoid {}public class Elf : Humanoid, GenericNPC {}Но можно иметь конструкцию типа:public interface IGenericNPC{}public class Humanoid{}public class Elf : Humanoid, IGenericNPC{}> как мне через интерфейс понять, какую из "оверрайдящих" функций я вызову?Функции в интерфейсе работают так же, как и в абстрактном классе, и вообще все в интерфейсе является public abstract. Так что ты все равно будешь оверрайдить функцию. Я не говорю, что это обязательно нужно, я говорю, что такая штуковина есть и о ней надо помнить на всякий случай.
>>396009>Функции в интерфейсе работают так же, как и в абстрактном классе, и вообще все в интерфейсе является public abstract.То есть можно воспринимать SampleUnit : Unit, IWhatever как IWhatever, и запускать метод внутри как IWhatever.Method() (при условии, что на юнит сделана ссылка как на IWhatever). Ясно, спасибо.
И снова я со своей хуйнёй.
>>394374 (OP)Где можно скачать "Школа Unity для аутистов"??А то с ТыТуба выпилили нахуй, сцуки.А то я уже заебался с этими разными уроками - то пропадают, то движок новый выходит, то еще какая-то хуйня, или в уроке один пиздеж ниочем, например рассказы о том какой Юнити охуенный или простой.А тут норм было, но уроки выпилили, пидары.
>>396062эт любой в разделе может. ты давай органику показывай
>>396067официальных туториалов по базовому C# и Unity классам хватит даже если ты незнаешь инглиша
>>396062че за игра будет
>>396070Но я же ПРОЖЕКТ уже начал, а ни продолжить, ни закончить не могу..
>>39607210 фейспалмов из 10
>>396067https://unity3d.com/ru/learn/tutorialsСделай обучающие поекты отсюда, более-менее во всем разберешься.
>>395468Это везде так в рамках хуюнити, добро пожаловать в программирование.
>>395476Через пару тройку языков? Лол, нахуя.мимознаюнормальнотолькошарп
>>395674Использую встроенный UNet. Он говно ебаное, полагаю даже более ебаное чем фотон. Как впрочем и все в этом проклятом движке.
>>395593https://github.com/sschmid/Entitas-CSharp>>395314Меканим это глючное говно без задач, сделанное по принципу "оооо ебать давайте запилим дерьмо, которое будет одновременно и дружелюбным и нахуй бесполезным, ньюфаги оценят".
>>395973>>396012Продолжаю со своими нубскими вопросами.Запилил я, значит, полоску инициативы как в 5ых героях. Есть лист "ходов", который содержит все объекты, заслуживающие хода (юниты, эффекты разные, рассасывание баффов и т.п.) в той последовательности, в которой ходы будут случаться в будущем, есть пара методов, которые этот лист формируют. Этот лист в теории будет создаваться заново каждый раз, когда на доске что-то происходит - смерть юнита должна обновлять лист, истечение баффов (особенно, влияющих на инициативу) должно обновлять лист и т.п. То есть юнит бьёт - лист новый создаётся, юнит ходит - новый лист, юнит ход заканчивает - новый лист. Это очень много обновлений, в общем. Если в такой ситуации будет случаться лаг, что нужно делать? Корутины помогут (во время исполнения методов я ставлю состояние доски, в котором не принимаются никакие вводы от игрока)? Откуда вообще лаги берутся? От создания новых переменных? Какая нагрузка за фрейм вообще допустима?
>>396108Если я правильно понимаю, то в листе у тебя лежат ссылки на объекты, а не их копии.Т.е. если у кого-то стало меньше хп, то меньше станет и там, и там. Чекни, на всякий случай.
>>396110Да, не объекты или копии, а ссылки. Я не делаю new или instantiate никаких.
>>396102Какие подводные камни у Меканима? Как минимум две очень важные задачи в нем вижу:1) Плавный переход между анимациями можно делать не в стороннем софте, а в меканиме. Чем меньше анимационных клипов, тем меньше путаницы и рутины.2) Ретаргетинг анимации, базовые плюшки с "мускулами" и IK, которые доступны из коробки, бесплатно. Разумная альтернатива - только работать с Motion Builder, который платный.Мощнейшая же штука, доступная бесплатно.Алсо, я забил на Rain. Посмотрел тутор про Plagable AI System и понял, что базовый АИ проще стандартными средствами Юнити сделать. Благо, NavMesh и NavAgent есть, и работают они не хуже аналогов из плагина.
>>396111Тогда и проблемы нет, собственно.Лист можно обновлять только при спавне и удалении объектов.Если объект умер, то можно скипнуть его с помощью чего-нибудь вроде if (!unit.isDead)
>>396111нихуя не понял нахуя в полоске инициативы эффекты и рассасывание бафов. если так тебе надо то это тщательно погугли 100% есть где то описание подобного кала
>>396113То есть "обращения к памяти" не нагружают комп, только создание новых участков? Но лист же новая переменная (или нет), да и методы каким-то образом исполняются. >>396114Потому что в Final Fantasy Tactics была очень удобная/неудобная штука - позволяла видеть, когда сработает эффект заклинания после чарджа этого заклинания. Я пытаюсь такое расширить, чтобы большинство эффектов было видно в шкале. А баффы хочу в эффекты-пустышки совать, которые будут вместо одного баффа показывать все баффы, которые в этом ходу сработают но это чистая косметика.
>>396115>не нагружают компБудет тормозить, запустишь профайлер и найдешь, где именно оптимизировать, слишком сильно загоняться этим на этапе разработки не стоит, слишком много времени потратишь.
>>396112Первое не работает по сети, сюрприз сюрприз. Подводные камни в том что приходится дублировать функционал, ибо сраный нодовый редактор изолирован от проекта и в целом запредельно убог, из-за чего приходится писать две FSM, она кодом, чтобы отсылать события меканиму, а вторую непосредственно в самом меканиме. Охуительно просто.
>>396133>Первое не работает по сети,Так для того чтобы сделать нормальную сетевую игрушку с анимацией персонажей (мобу какую-нибудь) нужно и так быть программистом 80-го уровня. Такой свой аналог меканима сможет написать, если захочет.>приходится дублировать функционал, ибо сраный нодовый редактор изолирован от проектаБля. Я вот с АИ сейчас разбираюсь. Недеялся, что с Меканим гораздо проще будет. Думал, там типа в нодовом редакторе что угодно собрать можно, а потом просто из FSM моего АИ присваиваю значения параметрам Меканима и у меня анимация проигрывается на каждое состояние персонажа.
Возможно платина, но: поясните, какой сейчас, на данный момент самый православный способ делать большие ландшафты. С помощью массива мешей или террейнов, сцены или еще как.
>>3961631. map magic https://youtu.be/vrs-XA1-ME8пробная бесплатная версияhttp://www.denispahunov.ru/MapMagic/2. world creator
>>396069Ам, ну.. а что это?)>>396071>а игра будетИгра - не будет. Просто небольшой pac зданий для assets store.
>>396137Я не программист 80лвла, но один сетевой проект написал, сейчас пилю второй. Так что у тебя немного неправильные представления об этом. Это не что-то невероятное, лол. Но то что блендинг анимаций не синкается это топич просто.
>>396137Хотя я и меканим свой напишу, если припрет. Хм. Да ты пиздец как льстишь мне.
>>396179Серьезно, сам написал серверный код своего проекта без использования Фотона? Да еще и с полноценной 3д-графикой, анимацией и играбельным геймплеем? Сколько на это времени ушло?>>396180Кодер 80-го уровня это по умолчанию хорошо только если в конторе в ДС работать и 300к в секунду. В инди-геймдеве можно прекрасно кодить, но создавать бестолковые игры без задач. По мне, так главное сейчас в гейдеве - это PR, умение закупать трафик, работа с инфлюенсерами и вирусные видосики. На втором месте композ, дизайн и прочее, завязанное на яркую привлекательную картинку. И только потом - игровая механика и код.
>>395926И тут я такой охуенный начал расписывать классы типа KrutimYobu : Action, как вдруг до меня дошло, что их в список же не запихнешь, блядь! Как поступить, аноны? Хочется удобным образом в каждую категорию NPC из папки Actions накидывать соответствующие действия, не прописывать же инстанции этих классов и не ебаться со статичными, как-то совсем неправильно в голове представляется.
>>396204На юнете по p2p, ибо не было времени изобретать велосипед. Да, с графоном, анимациями и геймплеем, системой сохранения и всем прочим дерьмом. Но надо понимать, что на моих плечах был только код, графоний рисовали художники. По времени... Долго, весьма долго. Полтора года. Но это с учетом того, что когда начинал, был совсем зеленый. То что ты описал про "главное в геймдеве" актуально на мобильном рынке, но никто в здравом уме туда не лезет. Ну а выполнять качественно и быстро свою работу всегда хорошо, безотносительно того инди ты или нет.
Бля, загнул. Не полтора года а год.
>>396211В смысле у тебя не получается запихнуть KrutimYobu ky внутрь List<Actions>?
>>396166Дениска, дай я тебя обниму. Ландшафт для целой планеты можно без тормозов сделать, например с подгрузкой? Пустыни/снег/етц есть?
Господа, очень странная проблема на androidе.Использую PlayerPrefsPlayerPrefs.GetInt("bestscore")и если счет больше PlayerPrefs.SetInt("bestscore", bestScore);На андроиде данные почему-то растут.С каждым SetInt +20кб и может даже в других случаях прибавляет.Что это такое? Поиграл 100 раз. получил 20мб данных.Никих лишних Debug.Log не имею. Код правильный. лишний раз не сохраняет ничего.
>>396235> 20кб> Поиграл 100 раз. получил 20мб данныхТы 20 килобайт умножил на 100 и получил 20 мегабайт?Сомневаюсь что с такой математикой у тебя "код правильный".
>>396236есть такое понятие как утрирование.лучше бы потестил. проблема не только у меня. на 5.5-5.6 версиях актуальна.на unity форумах пару людей писали про это, но им никто ничего не ответил.
>>396235вроде как в developmental build все нормально. в релизе растет.
>>396211Если ты наследуешь KrutimYobu от Action, то ты можешь обращаться к ёбе как к действию.
>>396217> По времени... Долго, весьма долго. Полтора года. > Но надо понимать, что на моих плечах был только код, графоний рисовали художники.Вот здесь и кроется весь леденящий душу пиздец. На один только код столько времени. Количество контента для художников тоже, небось, сопоставимое.Человеко-часы на миллионы рублей. Хорошо, если они окупились.Так что останусь при своем мнении, что мультиплеер:1) Сложно и долго.2) В одиночку и контент и код потянуть нереально.
>>396118Спасибо за совет, но он предполагает, что я знаю какие-то всем очевидные подводные камни. А я их не знаю. Вот, например, я только что сообразил, что моя система хитшанса (т.е. отдельный от юнита класс, который показывает шанс попасть) создаётся каждый раз, когда юнит целится в кого-либо. А мне нужно хитшанс отдельным абстрактным классом выставить, чтобы можно было через наследуемые от него классы работать - потому что у меня есть разные механизмы прицеливаний, а не одна одинаковая для всех формула. То есть заранее нужно знать какие-то узкие места, которые надо иметь в виду, и заранее код "в правильную сторону" строить.Вот я читал про пример с использованием контейнера для пуль вместо создания новой пули каждый раз. Но ведь пули - это одинаковые объекты (только, может, поля разные), а разные типы хитшанса у меня наследуемые классы. Как это организовать вообще? Самый очевидный для меня вариант - сделать все хитшансы в одном классе через различающиеся методы, но это как-то по-нубски выглядит.
>>396241>>396231Не-не-не. Action — это интерфейс/абстрактный класс. В нем есть просто функция для проверки условий и функция для исполнения. Вызывать конструктор для каждого действия в каждом классе будет крайне ебливо, да и не уместно: эти классы вообще можно сделать статчиными, просто скармливая им переменные. Собственно, идея была такой: вот у меня есть список, в который я могу ручками накидать все возможные для NPC действия, скрипт потом просто через foreach (Action action in actions){if (action.IsValid()){action.Execute()}} пробегается по этому списку. FSM не подходит, это придется гуманоидам-мечникам писать свои стейты, магам свои, каким-нибудь волкам еще третьи. Либо брать один огромный FSM с лишними проверками, где я охуею в конец.
>>396268> Самый очевидный для меня вариант - сделать все хитшансы в одном классе через различающиеся методы, но это как-то по-нубски выглядит.Да не, вполне логично, зачем изобретать сложные велосипеды. Берешь статичный класс, передаешь в него объект(ы). Класс пускай сам определяет, что за оружие, что по параметрам у атакующего, у принимающего урон. Потом выдает тебе попадание или промах, потом проигрывается соответствующая анимация.
>>396272а что делать, если одновременно нескольких бьёшь? Статичный класс жи
>>396273Передаешь лист enemiesToHit, дальше передаешь в класс что-то типа ToHit(enemiesToHit, thisCharacter), в классе:if (enemiesToHit.Count == 1) {SingleTarget(enemiesToHit[0];}else if (enemiesToHit.Count > 1) {MultipleTargets(enemiesToHit);}else {return 0; Debug.Log("yoba slomalsa");}Ну и там еще где-то определитель оружия, персонажа, хуё-моё.
>>396275> Передаешь лист enemiesToHit, вызывая что-то типаБыстрофикс.Лист всегда будет один и тот же, просто по окончанию всех операций пишешь enemiesToHit.Clear.
>>396273можно в каждом враге прописать шанс типаevasion = 5;а потом в просто вызываешь в нужном местеCalculateChance(evasion);а в другом месте хранишь функциюCalculateChance(float chance){ if(random.range(0, 100) < chance) return true; return false;}
>>396275>>396276Вроде бы выглядит разумно, но блин, чувствую, что это не то. Да и, допустим, если будет бить по 6 юнитам, то вылезет 6 подсказок с цифрами. Если делать по-твоему, то к одному классу обращаемся 6 раз, храня данные в 6 подсказках. По-моему же было бы логичнее, можно использовать для хранения данных, используемых только хитшансом, использовать 6 разных хитшансов. В общем, спасибо за совет. Посмотрим, что можно сделать.
>>396282> Если делать по-твоему, то к одному классу обращаемся 6 разДа нихуя же. К классу ты обращаешься один раз, отдавая ему список врагов, он тебе возвращает список с уроном для каждого врага, потом где-то держишь конструкцию:for (int i = 0; i < enemiesToHit.Count - 1; i++){enemiesToHit.health -= damage;}
>>396289Опять ошибся. enemiesToHit и damage, конечно же. Хотя просто менять значение хп как-то зашкварно, можно сделать:for (int i = 0; i < enemiesToHit.Count - 1; i++){enemiesToHit.OnHit(damage);}А в OnHit() уже расчитывать урон, который пройдет через броню, уклонения и т.п.
>>396291А, это макаба квадратные скобочки неправильно воспринимает. Рядом с enemiesToHit и damage указатель на ячейку, короче.
>>396289>>396291>>396292У меня хитшанс используется в трёх ситуациях: два раза в подсказках и один раз в ролле на урон. Допустим, значение для ролла на урон можно использовать сразу, но подсказки-то в воздухе висят, в них нужно хранить значение. То есть мы должны создавать подсказку, которая будет хранить данные, использующиеся только один раз. Ну ладно, допустим, сделаем такого типа хитшанс. Дальше у нас есть разные типы способностей, разные эффекты и т.п. Если переносить на них логику хитшанса, то на всё это нужно будет сделать по статичному классу с уймой методов внутри, каждый для своей ситуации, а потом к ним сверху присобачить классы-подсказки, в которых хранятся пропущенные через статичный класс данные. То есть это в любом случае создание множества элементов
>>396271Да-да-да. В этом и суть.Ты наследуешь, переопределяешь методы, но при этом можешь обращаться к дочернему классу по интерфейсу-родителю.Например, у меня есть класс Shootable с методом MakeShot(), от которого наследуют EjectShoota, RayShoota и тдПосле чего я могу стрелять какcurrent_shoota.GetComponent<Shootable>().MakeShot();это для наглядности, лучше кешировать Shootable bla_bla = current_shoota.GetComponent<Shootable>(), а не искать компонент каждый раз
>>394374 (OP)3
>>396261По поводу мультиплеера соглашусь, то что в одиночке пишется за 20 минут, по сетке написать и отладить займет два дня. Но это все в рамках Юнити. Просто не надо его брать под проект среднего/большого объёма, тем более с сеткой. Этот движок вообще не под такие проекты создавался, а под мобилы прежде всего. Ну а то что его сейчас рекламируют как серебряную пулю под любой проект - маркетинг чистой воды. В теории на нем действительно можно создать что угодно, но не нужно, ибо охуеешь в процессе. Алсо, нормальные игры не создаются за пару месяцев.
>>396261P.S. а ты и не делай один, хиккан что-ли дохуя?
>>396299Так, блядь, тогда придется прописывать инстанции класса, а это вообще не имеет смысла: алгоритм-то один и тот же, мне просто нужно вбрасывать в него персонажа с еще кучкой данных, получать выход, реализовывать этот выход уже ресурсами персонажа.Мне нужно удобным образом говорить NPC, какими скриптами он может пользоваться. Чтобы вот он увидел игрока, проверил фракцию, понял, что Игрок будет противником, и начал шерстить возможные варианты поведения. Какой вариант первым выдаст true, в такой и будут закинуты данные. Типа:1. NPC без лука/волыны, но есть меч. Меч с такого расстояния не дотягивается, надо подойти поближе.2. Достаточно близко, есть меч в руках, пизди противника.3. Противник надавал по щщам в ответ, слишком мало хп. Надо отойти, выпить зелье.Вместо boolean можно, конечно, прикрутить более гибкую логику, где каждая возможная команда выдает int, потом они сравниваются, и выполняется алгоритм с наибольшим значением, но не суть.Хуй знает, что там у FEAR'овцев за система, но в лекции показано это таким образом (пик). Т.е. для каждого типа NPC есть папка/раздел/хуйзнаетчто, в которую закинуты возможные действия. Вопрос, собственно, в том, как можно сделать что-то подобное в Юнити. Пока печатал, понял, что можно делать префабы со скриптами и референсить их в списке. С наследованием у скрипта от Action по-идее будет нормально. (пик 2)
>>396309>Алсо, нормальные игры не создаются за пару месяцев. Это понимаю. Хочу попытаться работать в режиме "вечной" разработки, спонсируемой патреоном и другими подобными способами.>>396312Нормального кодера в команду взять - платить кучу денег за каждый час его работы, что я не потяну финансово. Дешевых кодеров не бывает, ибо спрос на код превышает предложение на рынке в отличии от арта, 3д, геймдизайна и сценария.Взять новичка в партнеры работать "за опыт", будет означать что его говнокод не лучше моего и что он 99% съебет после пары недель труда, оставив после себя такой код, который невозможно будет прочитать. Так что увы, приходится одному все. Просто серьезно упрощаю игровую механику, чтобы добиться ее близости к сандартным ассетам. Скорее всего вообще с playmaker работать буду, чтобы только меньше кода писать.
>>396296> два раза в подсказках и один раз в ролле на уронВ одной подсказке у тебя же не висит точный финальный урон, который получит персонаж, там висит примерный дамаг, возможно шанс попадания. Точный урон ты будешь показывать уже во второй, просто бери значение из OnHit().> у нас есть разные типы способностей, разные эффекты и т.п.А нахуя их делать настолько разными? Всю разницу можно реализовать через один enum.
>>396328Если твой скрипт прикреплён к гейобъекту, то экземпляр класса из него будет создан при старте.Но я кажется понял о чём ты.Можешь создать один гейобжект хранящий все правила, отдельным петушкам давать ссылку на это хранилище и список доступных действий обычным массивом айдишников.
>>396352> экземпляр класса из него будет создан при стартеОтлично, главное, чтобы мне не пришлось прописывать в каждом NPC Perekat perekat = new Perekat();actions.Add(perekat);
Add
>>396333Могу взять тебя в свою команду и дотянуть до среднего уровня, если ты готов ебошить по пять часов в день. Но о своем проекте можешь забыть.
>>396379Что по условиям?
>>396381Зависит от твоего уровня. Если ты ничего не умеешь, но быстро учишься - будешь хуярить за фитбек. Если навыки есть - будешь получать деньги. Если все будет ооооочень хорошо - станешь частью команды.
>>396385Как насчёт удалёнки?
>>396386Именно на ней и будет всё
>>396385О. Раз такая тема, можешь рассказать, чем у вас занимаются кодеры, какие инструменты используют в работе? Любопытно, с каким навыком люди зарабатывают хотя бы на еду.
>>396387Оставь контакты тогда.
>>396392durarara11@gmail.com >>396389Кодеры кодят. VS, source tree, tortoise SVN.
как убрать gimbal lock? камера с помощью quaternion.lookrotation смотрит в одну точку и вращается вокруг неё по орбите. Так вот какого хуя когда она приближается в координаты типа vector3.up её начинает косоёбить на 180 градусов
Подскажите как вызвать подсветку нужного обьекта без его выделения. Как когда тыкаешь на обьект в поле он подсвечивается в проекте, или в сцене, но не выделяется.
>>396346В общем, решил "гибридно" сделать. Сохраню свои абстрактный класс и наследуемые классы его, но сделаю при инициализации по 1 инстанции каждого наследуемого класса. По сути тот же статичный класс получится, но разбитый на участки.
День в хату, юнити-господа. Можно ли на вашем движке пилить открытые бесшовные миры, или размер сцен очень ограничен? Заранее благодарен за ответы.
>>396471можно. правда с лодами возможно заебёшься, но стяпляпать своё бесчеловечное небо из перлина и водяной эрозии вполне посильнокак планируешь террайн то генерировать? процедурно или с карты читать?
>>396474> как планируешь террайн то генерировать? процедурно или с карты читать?Руками.
>>396475террайн сразу из башки выкинь, с ним не прокатит
Помогите новичку с движением, скажите где можно почитать\посмотреть.Я нашёл либо взять готовое из стандартных, либо уже с анимацией скелета и физикой.А мне нужно что бы объект просто двигался с кнопок на клавиатуре.
>>396479float movex = Input.GetAxis("Horizontal");float movey = Input.GetAxis("Vertical");GetComponent<RigidBody>().velocity = new Vector3(movex, movey, 0).normalized * movespeed;К объекту обязательно должно быть прикреплено RigidBody
>>396479> где можно почитать\посмотреть.Дуй смотреть уроки на сайте, а то с каждой механикой так ебаться будешь.
>>396484Так на каком сайте?
>>396485Unity3d.com
>>396474Спасибо, анон, думал, это невозможно. А так я вообще диванный и в юнити пока ещё не разбираюсь, просто заинтересовало, стоит ли в него вкатываться, чтобы сделать в итоге игру мечты, или в конечном счёте столкнусь с ограничениями движка.
>>396491>или в конечном счёте столкнусь с ограничениями себя
>>396491До игры мечты ебать как далеко. Я вот начал делать РПГ дрочильню своей мечты с нуля, в итоге обосрамс на каждом компоненте, тысячи запросов в гугл, благо в код немного умел. Думаю заморозить нахуй, сделать платформер, чтобы хоть какое-то подобие законченного проекта было.
>>396500Не жалуйся, а читай материалы. Чье-нибудь чужое творение найди и посмотри, как оно работает.
я делаю змейку которая может двигается по кубу. Нужно что бы куб становился к камере той стороной, на которой змейка. Не врублюсь как это сделать?
>>396518А я и не жалуюсь. Просто масштабы я себе задал пиздецки большие, я скорее заебусь продумывать локации, а игромех ничего так пишется.
Есть объект, у него есть тело, ноги, руки. Как можно покрасивей ему вставить оружие в руки? Добавить еще один дочерний объект - оружие и включать его по мере необходимости? Но это очень неудобно, если оружий много, и их координаты на персонаже разные. Наверняка есть какой-нибудь простой метод.
>>396531как ты хочешь что бы КОД сам определял нужные координаты оружий? ебанулся или че
>>396531Есть метод, задавая в скрипте координаты, инстанеш или трансформируеш в них оружие, всё. Есст-но оружие должно быть дочерним обектом.Второй метод задаёш точки на объекте с помощью маленьких сфер, убираеш у них меш, и так-же скриптом вешаем на места точек оружие по категориям, типо: Пистолет1,питсолет2 на точку у "бедра". Автомат1,автомат2,снайперка1 на точку "спина".Возможно немного не понятно.
>>396533Попробую вторым, вроде годно выходит.
>>396449>>396296Снова выхожу на связь.Решил заняться ходами юнитов, а из-за этого принялся делать способности (команду на движение по доске через способность реализую), из-за чего мне понадобилось переделывать пасфайндинг, из-за чего я познакомился с удивительным миром массивов, листов и словарей. Таким образом я снова ищу совета.Как мне с массивами совладать? Читал, что листы очень прожорливые, и поэтому нужно использовать словари. Глянул на свой прошлый код - шкала инициативы, например - так там всё на листах сделано. Самый простой способ замены - просто сделать словари с ключами-интежерами, которые заменят индексы как у листов.
>>396608В пасфайндинг не умею, но, т.к. скоро будут более-менее бегающие NPC, нагуглил эту статью:http://www.redblobgames.com/pathfinding/a-star/introduction.htmlПоясняет за разные методы анимациями, в конце есть ссылка на гайд для шарпа, но там я уже хуй забил.
>>396615Спасибо, но вопрос не о том. Ещё одна проблема вылезла внезапно. Доска на Start() создаёт через new какой-то другой класс, в котором есть переменная, несущая в себе (в теории) ссылку на доску, создавшую этот класс. Когда же дело доходит до вызова функции из нового класса, в которой используется ссылка на доску, выдаёт нулл референц т.е. переменная после записи оказывается пустая. Её сборщик мусора обнуляет или что?
>>396623Сообразил, в чём дело. Я дурак Дело было в пустом массиве, который я оставил как плейсхолдер
>>396638Обращайся.
>>396328> можно делать префабы со скриптами и референсить их в спискеО, оно заработало. NPC кушает команды через префабы с действиями (господи, как же это костыльно звучит), хотя я пока не тестил ничего, кроме преследования игрока да и здесь я наебался, потому что NPC нихуя не поворачивается в сторону цели.
>>396738А, это я забыл один параметр приписать.
>>396738>NPC кушает команды через префабы с действиямиМожно сделать префаб всего NPC, и кастомизировать его через параметры. Или несколько префобов для каждого класса.
>>396776Ну это-то да, но это к командам не относится. Этот велосипед мне для того, чтобы не писать йоба-FSM для AI. Там выше где-то статья на эту тему, а еще выше совет от анона использовать общий интерфейс и такую схему.Скрипт NPC пока что только для галочки, и из него берется только фракция (на кой-то хуй). Надо бы еще enum на класс добавить (милишник, кастер, т.п.), и через класс + уровень раскидывать автоматически статы. Но для начала надо бы с ними разобраться, лол, потому что я в душе не ебу, сколько характеристик брать и какие.
>>396623>>396638Сообразил способ искать клетки через словарь, но он почему-то не работает. Суть в том, что ключом выступает Vector2 gameObject.transform.position, т.е. только x и y. Я думал искать соседей добавляя к этому Vector2 вектор до соседнего гекса, который заранее определён во время строительства доски из гексов, но словарь упорно заявляет, что нет такого ключа. При этом словарь сам содержит в себе все kvp, которые я задавал, и по векторам клеток исправно эти клетки выдаёт, т.е. дело именно в векторе-расстоянии. Но вектор-то верен, это именно то расстояние, которое задавалось при строительстве доски. Здесь какой-то подводный камень, или я опять где-то в глаза проебался?
>>396800Параметры лучше всего держать в ScriptableObject, иначе заебёшься с обычными префабами. Как правило - неизменяемые (во время жизни объекта) параметры в ScriptableObject, состояние - в MonoBehaviour.
Доброго дня вам, юнити-господа. Таки решился пилить свою 2д игрулю с блэкджеком и шлюхами, но встал вопрос о том где рисовать спрайты. Есть на выбор CorelDraw и Adobe Illustrator Что из этого выбрать?
>>396860Может, дело в округлении? Внутри вектора лежат float'ы, я слышал, их значения могут не совпасть, если их сначала разделить на одно число, а затем помножить обратно. Может из-за этого быть?
>>396878Если ты пишешь в студии, то поставь брекпоинт там, где сравниваются значения, нажми на кнопку attach to unity, запусти проект в юнити и посмотри, какие значения сравниваются.А вообще да, с вероятностью, близкой к 100%, флоаты после сложения будут не совпадать.