Это копия, сохраненная 9 июня 2019 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Прошлый тред: https://2ch.hk/gd/res/498593.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-store
UnityWiki: 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
Попробовал Unity ECS, выглядит весьма охуенно. Помимо очевидных профитов от разделения логики и данных, завезли оптимизон и многопоточность. Пикрелейтед 50к кубов летают туда-сюда, 40 фпс в редакторе на пеке из 11 года.
Не думаю что для моих проектов это даст какой-то буст производительности, у меня в основном всё графика съедает. Это скорее для каких-нибудь ртс лучше всего подойдет
Даже в платформере можно сделать красиво разлетающиеся по физону обломки. Когда разработчики запилят поддержку физики в ecs, конечно.
Воу, можно поподробнее? Какие ты ассеты релизил?
Наборы моделек, оружие, пикапы, один набор для построения данжена, его покупали больше всего кстати.
currentEmission =2.0F.
Color baseColor = baseColorStart;
Color finalColor = baseColor * Mathf.LinearToGammaSpace(currentEmission);
mrenderer.material.SetColor("_EmissionColor", finalColor);
Ну почему, целых 3
покажи, может я с аноном чего подскажу, чтобы поднять продажи.
Помню презентацию на Unite2016 смотрел одного продавца, который за год проебал 15к (ушел в минус), вот я обосрался с него.
Извини пожалуйста
Сейчас проверил - такое происходит только если выбрать shaded мод для отображения, любой другой вид решает проблему, что довольно странно, потому что по логике Shaded Wireframe должен быть еще тяжелее, потому что там и текстурки отображаются и каркас, но в нём тоже всё работает как надо, вроде. Какой-то пиздец.
Да ну
6/10
Да. Она меня еще тискать любит, и иногда на пах руку кладет, когда обнимает, типо невзначай.
СТРАДАЙ, СУКА! Ты должен еще немного потерпеть!
Ну я вообще-то сижу на стандалон сборочке и в хуй не дую, но тут парни попросили веб-версию, ну а почему бы и нет, тем более что юнити якобы поддерживает, и мне все заебись, крмое блядь ебанойсукаврот сети, кто ж знал что там ЛОВУШКА?. Кроме того, это вышло случайно, мне просто захотелось собрать трейды с разных бирж для более удобного отображения, а так как я нихуя не умею, юнити был единственным возможным варинатом для меня в реализации задуманого.
> парни попросили веб-версию, ну а почему бы и нет
За такое "попросили" обычно деньги берут, а не "почему бы и нет". Но то уже сам смотри.
А вообще, судя по твоим видосикам, ты и правда на юнити зря полез, не для этих задач этот движок.
Но если осталось только сточить пару напильников, а всё остальное уже написано, то перелезать уже поздно, да.
Нашел где газ пиздить, найдешь и где ассеты лежат.
624x352, 0:15
>>06983
в итоге не нашел где спиздить. хотел сделать быструю растеризацию капсул на смену текущей хуевой. репу почесал-почесал, заимплементил альтернативную версию с обычной геометрией. вышло хуево. потом репу ещё почесал-почесал, поискал в гугле, нашел чуть получше, но как всегда квадратные корни и деление всё испортили. решил спиздить из анрила - там нет, а те места которые меня интересуют написаны лет 10 тому назад.
сегодня весь день думал над этим, заимплементил теперь уже вариант со скриншотика. авесоме. оптимизону накатить так будет как минимум в 6-7 раз быстрей теущего.
>>06985
да я забыл как тот сайт называется с регистрацией раз дохуилион лет.
>>06971
стоит сказать что ты занят чем-то мистическим и мне интересно что происходит там что ты показываешь
>да я забыл как тот сайт называется с регистрацией раз дохуилион лет.
https://forum.cgpersia.com/
Потому что юнитиговно - говно.
> теперь его же школьники видят
Школьники в /b/ рулеточки крутят да в /v/ консолесрачи устраивают. Здесь-то им чего делать?
ВЫБРАЛ ЮПИТИ
ДОШЕЛ ДО ШЕЙДЕРОВ
ЖИДКО ПЁРДНУВ ОБОСРАЛСЯ
ПЕРЕШЁЛ НА УЕЧ ПОКА НЕ ПОЗДНО
Ну да, там можно нодами в блупринте напихать хоть сотню текстур в один материал с какими захочешь преобразованиями. Никакие декали не нужны. Потом всё, что нужно, объявишь переменными и дёргаешь из игровой логики. Тут кровь по полу, там моча по штанине, на крыше снег или дождь. Некстген, епта.
ну собственно они пилят свой визуальный редактор шейдеров, его даже можно попробовать, но он пока дико глючный и не стабильный
>>07274
там все блюпринтами. потыкал ноды, порисовал переходы, посмотрел что получается на каждом шагу. в юнити же пока приходится таки кодить, а кодить шейдеры можно только если понимаешь как оно работает, что весьма проблематично для человека первый раз столкнувшегося с шейдерами
проебал кортинки
я тоже, но тем не менее нужно потратить время, но зачем если можно тупо таскать ассетсы?
>>07111
>стоит сказать что ты занят чем-то мистическим и мне интересно что происходит там что ты показываешь
Ну короче с сообщения выше должно быть немного понятно что это торговый терминал и просто удобноя визуализация биржевых торгов уровня АНАЛОГОВНЕТ. Я решил поискать золотой грааль в тихом доме, но пока что нашел хуев в рот. Ну нет, конечно, некоторые вещи выглядят совсем по другому и мысли соответствующие мы в матирце и выхода отсюда нет(пик4, пацаны высыпали 10% supply коинов [STRAT/BTC], а цене похуй, она вверх идет, это говорит о том что там были мощные ордера на покупку, аккумуляция короче) и как следствие мощный памп. А стандартные свечки на чарте не учитывают объем на продажу или покупку, они просто отдают свечки с суммарным объемом. На чарте эти столбики выглядят зелеными, ведь цена то идет вверх. Но такое далеко не всегда. В общем мой порыв сугубо исследовательсий.
>>07111
>стоит сказать что ты занят чем-то мистическим и мне интересно что происходит там что ты показываешь
Ну короче с сообщения выше должно быть немного понятно что это торговый терминал и просто удобноя визуализация биржевых торгов уровня АНАЛОГОВНЕТ. Я решил поискать золотой грааль в тихом доме, но пока что нашел хуев в рот. Ну нет, конечно, некоторые вещи выглядят совсем по другому и мысли соответствующие мы в матирце и выхода отсюда нет(пик4, пацаны высыпали 10% supply коинов [STRAT/BTC], а цене похуй, она вверх идет, это говорит о том что там были мощные ордера на покупку, аккумуляция короче) и как следствие мощный памп. А стандартные свечки на чарте не учитывают объем на продажу или покупку, они просто отдают свечки с суммарным объемом. На чарте эти столбики выглядят зелеными, ведь цена то идет вверх. Но такое далеко не всегда. В общем мой порыв сугубо исследовательсий.
Этот вопрос я бы в /пр/ задал.
Ну и что за хуйня. Понял, что делать через плагины эти андроидовские. Ничего сложного, на джаве там хуе-мае, саунд пул и все такое. Но проблема в том что даже пример из документации (https://docs.unity3d.com/ScriptReference/AndroidJavaObject-ctor.html) не создаёт экземпляр чертовой строки. Возвращает Null все время. Что не так я делаю?
Вот это меня насторожило. То есть то, что я имею в уече мне нужно купить здесь, а так конечно если нет видяйки хорошей, юнити вполне пригоден для игр под мобилки самое оно, но мобилки должны быть 10К-15К+, не для дешёвых моделей, где нехватка ОЗУ и места на карте памяти.
Тут всё просто. Хочешь делать игры - выбираешь Юнити. Хочешь дрочить технологии - выбираешь Уеч.
>Юнити - 1,5 годных игры
>УЕ4 - несколько десятков
Найс стори бро.
На самом деле не хейта ради, сам начинал с юнити. Однозначно лучший движок для начинающих разработчиков и простых проектов, но нужно понимать, что однажды тебе в любом случае придется вырасти из него и переходить на УЕ4 или КрайЭнджин.
>УЕ4 - несколько десятков
И сколько из них сделали инди-разработчики? На Юнити дохуя игр от инди.
И какой бюджет у этих десятков? И какой бюджет в /гд/?
Если ты хочешь на успешной галере делать ААА, то надо идти джуном устраиваться, а не часы делать.
>И какой бюджет у этих десятков?
Не больше, чем у тех 1,5 годных игр на Юнити, а то и меньше.
>И какой бюджет в /гд/?
А уровень /гд/ это твой максимум? Печально если так.
>Если ты хочешь на успешной галере делать ААА
В твоём мире есть только инди и ААА? Не сложно жить в мире где всё только черное и белое? Или подростковый инфантилизм еще в жопе играет?
>однажды тебе в любом случае придется вырасти из него и переходить на УЕ4 или КрайЭнджи
Ты так говоришь как будто все инди вырастают в ААА, достают из жопы многомиллионные бюджеты и основывают студии
Как начинаешь на них кодить, сразу писос вырастает на 4 см.
Ты вообще осилил всё целиком?
В чём смысл пердеть в /гд/, если ты нацелен на участие в разработке этих годных игр на уече?
>В твоём мире есть только инди и ААА?
В моём мире есть хобби и профессия.
Есть 2 камеры и 2 панели интерфейса (Canvas)
Если активна Камера1 то Canvas1
Если активна Камера2 то Canvas2 а (Canvas1 выключить)
Или как может лучше по другому переключать эти панели между собой? дискач
Не понял, зачем тебе две камеры, но давай начнём допустим с этого:
bool C1 = Camera1.isActiveAndEnabled;
Canvas1.gameObject.SetActive = C1;
Canvas2.gameObject.SetActive = !C1;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Canvas : MonoBehaviour {
public GameObject FPSCamera;
public GameObject CARCamera;
public GameObject FPSCanvas;
public GameObject CARCanvas;
void Start () {
bool C1 = FPSCamera.isActiveAndEnabled;
FPSCanvas.gameObject.SetActive = C1;
CARCanvas.gameObject.SetActive = !C1;
}
}
}
Переписал чутка, пишет что:
1.error CS1061: Type `UnityEngine.GameObject' does not contain a definition for `isActiveAndEnabled' and no extension method `isActiveAndEnabled' of type `UnityEngine.GameObject' could be found.
2.error CS0131: The left-hand side of an assignment must be a variable, a property or an indexer
Так ну смысл понятен, допилить осталось. Эххх 3й час над таким простым скриптом сидеть, это боль однако..
>Там другие кнопки управления
И чо?
У тебя игра должна хранить инфу о своём режиме работы. И если режим поменялся, нужный интерфейс сам должен это обнаружить и включиться/выключиться.
>3й час над таким простым скриптом сидеть
Пиздец. А между тем, в годоте это делается в две строки.
Для твоего варианта надо так:
bool C1 = FPSCamera.getComponent <Camera> ().isActiveAndEnabled;
FPSCanvas.SetActive = C1;
CARCanvas.SetActive = !C1;
Даа!
Пиздец говнокод. А что будет, когда ему понадобится третий canvas? Почему нельзя сразу правильный код советовать? Или это такое тонкое устранение потенциальных конкурентов?
Не слушай его советов. Заведи себе перечисление
enum huipizda {Peshkom, VMashine, VSamoliote, VPizde, VAdu}
затем переменную huipizda GdePlayer;
затем в Start() установи значение GdePlayer либо по умолчанию для новой игры, либо загрузи из сохранения.
Затем сделай массив канвасов и опрашивай их в цикле одной строчкой:
Canvas(i).gameObject.SetActive = (i == GdePlayer);
Хуизация. Не вижу в твоем говне никакой оптимизации. Просто ты ебанул не думая говнину, а теперь её пытаешься умными словами оправдывать.
Можно, но если заработаешь много денег с тебя через суд все равно стрясут баблишка.
А теперь ты представляешь себе локацию опенворлда, где сотня разных объектов в одно время обращается к разным полям для получения данных и теряешь сознание вместе с оперативкой и диском.
>купить 1 месяц подписки plus
Размечтался. Минимум 1 год покупаешь. Просто ты можешь выбрать, выплатить всю сумму сразу, либо платить ежемесячно.
Наебать их вполне можно. Но, блять, если ты зарабатываешь больше 100к-200к в год на игре, неужели тебе тяжело купить лицензию? Тем более ты наверняка подключишь Юнити Адс.
Обратите внимание: использование Unity Personal ограничено.
Если годовой оборот вашей компании составляет больше 100 000 $ или же если вам удалось привлечь на разработку более 100 000 $, вы не имеете права использовать Unity Personal, будь то для прототипирования или в иных целях — см. наше Соглашение с конечным пользователем.. Вы можете воспользоваться версией Unity Plus для компаний с годовым оборотом до 200 000 $ или Unity Pro без ограничения дохода или привлечения финансирования.
[CODE]public Sprite [] spriteStates;
private void OnMouseDown()
{
gameObject.GetComponent<SpriteRenderer>().sprite = spriteStates[1];
}
private void OnMouseUp()
{
gameObject.GetComponent<SpriteRenderer>().sprite = spriteStates[0];
}[/CODE]
>Помогите нубу
Срочно сваливай, на уеч, либгдх, godot, куда угодно. Это единственная адекватная помощь, которая тебе реально поможет.
> работает не с первого клика
Или перекосоёбило часть коллайдеров или (что более вероятно) между ними и мушкой есть ещё какой-то коллайдер.
Да, так и было, спасибо, забыл что навесил коллайдеры и на префабы без скрипта
Вообще OnMouse использовать плохая идея, он будет срабатывать даже сквозь UI, который накрывает объект, лучше сразу всё делать через:
using UnityEngine.EventSystems;
public class ClassName: MonoBehaviour, IPointerClickHandler {
public void OnPointerClick (PointerEventData event) {
//if (event.button == PointerEventData.InputButton.Left) {}
}
}
Тогда даже коллайдеры вешать не придётся, только на камеру надо будет навесить Physics Raycaster
> он будет срабатывать даже сквозь UI, который накрывает объект
Проверка в одну строчку и никаких проблем
void OnMouseDown
> {
> if (!EventSystem.current.IsPointerOverGameObject ())
> {
> ...
> }
> }
Уверен, это не единственная проблема onMouseDown.
Два джоба в пайплайн этому оптимизатору.
Сижу на гибриде пока, жду, пока пюре не напишут и не заинтегрируют в редактор.
Ты можешь сколько угодно витать в своём школоманямирке, но ECS - это подмножество ООП, просто у него вместо наследования СУБД с таблицами-полями-запросами.
Ща боевые картиночки полетят от тупорезов. 3... 2... 1...
НЕТ ТЫ
Только вот в ECS физически не может быть "сотни разных объектов".
Там есть системы, по одной на каждый тип поведения (подвинуть персонажа, отрендерить персонажа и т.д.), которые итерируют через лежащие линейно в памяти сущности.
Я сразу начал на хардкоре, уже две недели перетаскиваю проект в Pure. Вроде Entity Debugger хватает, чтобы понять, что происходит. Для всего остального есть студия.
У кого-нибудь остались видосы УровняГД? Буду признателен, если поделитесь.
Я тоже начал с пюре, но потом понял, что у них из готовых компонентов только позиция и рендерер, а мне и анимации нужны, и коллизии, и куча всего.
Кстати, а как совместить гибрид и пюре?
https://pastebin.com/DC9NUv97
Гибрид выдирает компоненты через GetEntities<State>(); где State это класс с компонентами. В пюре надо [Inject], но оно нихуя не работает с классами-потомками MonoBehaviour (типа того же Animator) и кушает только структуры от IComponentData.
Я плохо представляю, как это работает под капотом, нагуглить способа совместить обе системы как-то не получилось.
Я особо не разбирался, как гибрид работает. Вроде там ecs компоненты обернуты во wrapper, который уже наследуется от monobehaviour.
>только позиция и рендерер
А мне пока больше и не надо, потом буду в день релиза новых фич их прикручивать. Все равно лучше, чем перекатывать проект после, потому что после надо будет больше работы по переписыванию кода сделать.
Да, так гораздо понятнее, что ты понятия не имеешь о чем говоришь. Но ведь главное уверенность в своей правоте, правда же?
О чём? О том, что система итерирует через все энтити, а не объекты обращаются к системе?
При большом количестве объектов так даже хуже.
>При большом количестве объектов так даже хуже.
Продолжай, мне даже интересен ход твоих мыслей.
Тогда попробуй поискать книгу "погромирование для начинающих". Может быть там будет написано про обсервер и композицию.
Ну вот, обиделся.
Погромирование для начинающих я читал, но мне все еще интересно, почему ты считаешь, что итерировать по данным, лежащим в неуправляемой памяти друг за другом, хуже, чем по объектам, разбросанным как придется в куче.
У тебя какой-то другой процессор с каким-то другим кэшем?
Использование ecs это не вопрос оптимизации, это вопрос архитектуры.
Прост человек не знает, что такое ecs. Это нормально, мы все такими были.
Сендмесседж на базе дата-дривен ECS
Потому что не всем объектам всегда требуется обращаться ко всем системам?
Как думаешь есть разница между тысячей мульёнов стационарных объектов, которые через ивенты обращаются к системе движения, когда захотят подвигаться, и системой, которая постоянно опрашивает энтити не собрались ли они идтинахуй?
>что итерировать по данным, лежащим в неуправляемой памяти друг за другом, хуже, чем по объектам, разбросанным как придется в куче
Что то уровня кеширования transform. При том, что объекты можно держать в пуле. При том, что работа с памятью - одна из сильных сторон шарпапо сравнению с плюсами например
Впрочем как верно написали выше это вопрос не оптимизации, а архитектуры, а насколько удобна эта архитектура видно из того, что неофициальная реализация ecs существует уже давно, а игры на ней сделано полторы, считая переделанный туториал.
>опрашивает энтити
У тебя настолько отсутствует понимание, что вообще такое entity, что даже как-то не очень с тобой спорить.
Но тем не менее. А что будет, если твои сто мульенов объектов захотят подвигаться одновременно? Правильно, будет фреймдроп секунд на 10. А ECS будет похуй, она просто как обычно поставит объекты на позиции.
>объекты можно держать в пуле
Они все равно останутся лежать в куче, и для того, чтобы изменить их трансформ, нужно будет прочитать память столько раз, сколько у тебя объектов. При линейной аллокации память читается один раз.
>Впрочем как верно написали выше
Этим альбертинштейном был я. Мне удобно. Причина непопулярности больше в том, что все туториалы по юнити начинаются с "создайте геймобджект, добавьте скрипт" и в том, что реализация неофициальная.
Еще раз запостишь боевую картинку - будешь общаться сам с собой.
>У тебя настолько отсутствует понимание
Ну так просвети то наконец, а то боевую картинку запощу.
Очень хуево, если так.
Годовой оборот 100к$ - это 6.2 млн рублей. Если ты работаешь один и получаешь такие деньги с инди - это дохуя. Уберем половину на налоги-хуйоги, процент стима и еще какую-нибудь поеботу - останется ~ 3 ляма. Годовая подписка на unity plus стоит 20к рублей/год, на unity pro - 95к рублей/год. Не думаю, что это такие уж большие деньги, если у тебя минимум 6.2 ляма рублей в год крутится.
Если у тебя фирма, создающая игоры, и ваш годовой доход меньше 6 лямов при ~ 4-6 оплачиваемых сотрудниках и офисе, то это очень хуево, если только ты не создал фирму меньше года назад.
Да вы что здесь все специально оборот и доход путаете? У тебя оборот может быть 6 миллионов, а доход 10 блядь рублей!!!
>Да вы что здесь все специально оборот и доход путаете?
А ты специально приводишь идиотские примеры? Да, я выпустил инди, оборот у меня 100к баксов, но получил я только 10 рублей и теперь юнитеки посадят меня на бутылку, потому что нет денег на лицензию. Иди нахуй, дурачок.
Нет ты иди нахуй. Судя по твоим постам, ты там завсегдатай.
>Правильно, будет фреймдроп секунд на 10. А ECS будет похуй, она просто как обычно поставит объекты на позиции.
Следите за руками:
В ООП фреймдроп будет в момент, когда игра захочет подвигать множество объектов.
А ECS не будет похуй, в ECS фреймдроп будет (9,8 секунд по сравнению с ООП), когда первый из объектов захочет подвигаться и всё поле БД загрузится в память со всеми трансформами.
Унижайте ECS-блядей, гоните, надсмехайтесь.
Меня только слово new смущает. Попахивает созданием мусорных объектов каждый апдейт.
Может с другими параметрами что-то не то?
void Update()
{
....
transform.localEulerAngles = new Vector3(a,b,c)
}
деструктора для Vector3 там нет. Вопрос: куда деваются потом все эти вектора? transform.localEulerAngles их жрет что-ли?
Я просто плохо помню C# поэтому сильно не ругайте, только сегодня засел вспоминать что и как. Я так понял что transform.localEulerAngles просто получает ссылку на новый вектор, и так раз-за разом?
На новый вектор ссылку присвоил. на старый вектор ссылка исчезла, старый вектор GarbageCollector пожрал.
Что у тебя за вопросы?
Когда ты делаешь int a = 1; куда у тебя деваются все эти единицы? Переменная их жрёт что-ли? Конструкция new Vector3(a,b,c) в данном вопросе равноценна единице, это не что-то особенное.
>new Vector3(a,b,c)
Создать новый вектор и положить его в стек.
>transform.localEulerAngles =
Скопировать значение вектора из стека в поле localEulerAngles, которое располагается в куче, потому что трансоформ это класс, экземпляры классов вместе с полями лежат там.
Когда функция вернет свой воид, стек чистится от её данных, и vector3 отправляется к аллаху.
Короч не надо тут ничего оптимизировать, все норм.
>>08669
>получает ссылку
Вектор3 примитивный тип данных, передается по значению.
Откуда пошла такая тупость что new - значит сразу кучу срача в памяти? Вы вообще доки читали? Если ты там стотыщь страктов создаешь - похуй вообще.
ну ок тогда, я просто предположил, вроде ж логично. В доках про это не видел, или ты имеешь ввиду, что там в каждом примере в update ебашат new? Я думал, это просто ради примера же, чтобы когда поменьше в доках писать
когда=кода
Р
А
Т
А
Н
>Там же за секунду создадутся тыща новых объектов
update раз за фрейм вызывается вроде, так что раз 30-60 вызовется за секунду, не так уж это и много
Тогда не стоит конечно, любые тяжелые функции в апдейт не нужно совать, любо вызывать не раз в фрейм а раз в секунду например
> Без него нельзя вектор объявить
А полем класса его сделать никак?
Объявить без него никак, пиздец просто. Ты вообще знаешь что такое конструктор, куча, память? Не?
Братан, ебать ты суров, братан! Уважуха, братан!
Конструктор - это специальным образом спроектированная процедура, выделяющая память для объекта.
Куча - это специальным образом размеченный сегмент памяти, так размеченный, чтобы системе было удобнее вытаскивать из этой кучи твоё говно, которое ты туда кладёшь.
Память - это специальным образом организованная микроэлектроника, которая в виде модулей вставляется в твою пеку.
>Когда функция вернет свой воид, стек чистится от её данных, и vector3 отправляется к аллаху.
>Вектор3 примитивный тип данных, передается по значению.
Спасиб
a=GetComponent<CharacterContoller>();
Хуй знает, как по мне все эти интерфейсы выглядят одинаково, что в юньке, что в годоте, что в уече, просто серые/белые/чёрные безликие панельки с кнопками и цифрами, по сути весь интерфейс во всех редакторах спизжен из фотошопа, а в нём ещё откуда-нибудь.
А можешь на пальцах объяснить как работает эта функция? Что она выдает понятно. Меня интересует механихм
А что тут непонятного? Ищет компонент по геймобжекту, возвращает первый который подойдет. Сорцы не смотрел поэтому точно сказать как работает не могу, да и нахуй тебе это надо
Пасиб.
Vector2 p = Vector2.MoveTowards(transform.position, dest, speed);
GetComponent<Rigidbody2D>().MovePosition(p);
То есть пакмен перемещается в позицию заданную вектором, с этим вроде все нормально, далее проверяется движется ли пакмен или нет, делается это так:
if ((Vector2)transform.position == dest)
Если Пакмен не движется, т.е. позиция transform равно dest и можно обработать Input.GetKey чтобы добавить к dest (заданному, как Vector2) Vector2.up/right/left/down в зависимости от того, какие кнопки нажаты. Но в том, то и проблема, что это условие у меня не выполняется никогда и получается, что пакмен бесконечно двигается, хотя визуально он остается на одном и том же месте, т.е. transform.position и dest как-то не сравниваются. Почему же в туториале так написано? Или там какая-то старая версия Юнити и сейчас так делать уже не правильно?
я все понял. Нужно было Gravity Scale поставить равным 0.
Интересует как в этой игре сделана отрисовка блоков. Готовые 3D-модели? Рисуются ли они полностью или невидимые полигоны отсекаются?
Как хранится информация?
>невидимые полигоны отсекаются?
Конечно отсекаются.
Конкретно для этой игры наверняка захуярили какой-то специальный редактор, который создавал меши.
https://habr.com/post/194620/
Но я не траллю, правда, я новичок, месяц в юнити, и был уверен, что не существует абсолютно никакого способа объявить произвольный вектор без использования new.
В каких книгах есть подробное описание API движка с примерами (графическими), я ни хрена не понимаю.
Например, как именно работает это: https://docs.unity3d.com/ScriptReference/Rigidbody.MovePosition.html
Есть код с туториала
https://pastebin.com/Ud6pvv29
1) Вектор m - Vector3 movement
2) Вектор p - m_Rigidbody.position
Верно ли 1)? Верно ли, что m_Rigidbody.position вернет вектор p с рисунка или нечто подобное.
Как работает m_Rigidbody.MovePosition(m_Rigidbody.position + movement);??
Если складывать m и p, то танк не поедет вдоль x, однако все работает, как на самом деле работает функция? Движок в своих недрах учитывает ротейшн объекта?
Советую создать отдельный проект и там экспериментировать, чтобы разобраться. Плюс по Юнити очень много видео:
https://docs.unity3d.com/ru/520/Manual/class-Rigidbody.html
https://www.youtube.com/watch?v=nfczxBY1Y5U
https://www.youtube.com/watch?v=WTGcs10Sj34
https://www.youtube.com/watch?v=wKgKSg0Nr6A
Я разобрался, ответ оказался в том, что transform.forward это вектор относительно локальных координат танка, а не вектор глобальной оси Z.
Удивительно, правда. Вперед, это, оказывается, вперед.
Объявить это просто "Vector3 mamkaPosition;"
Т.е. ты объявляешь переменную, но она не инициализирована.
Чтобы её инициализировать надо сделать new.
А того дауна не слушай, если инициализация поля происходит неявно в конструкторе по-умолчанию, это не значит, что её нет.
Ну я под "объявить" подразумевал так же и задать собственно x, y и z, чего сделать без new нельзя, так что я был прав.
В стандартных юнити-ассетах есть папка для прототипирования. Лестницы там, хуестницы. Может подойдёт.
>Объявление обычной переменной, простейшей формы прямого декларатора, указывает имя и тип переменной. Оно также указывает класс хранения и тип данных переменной.
>я подразумевал
Не надо так.
> ответ оказался в том, что transform.forward это вектор относительно локальных координат танка, а не вектор глобальной оси Z
А мог бы читать что тебе пишут.
Ну зачем ты определение высрал, я ведь говорил в контексте беседы, а всё началось с присвоения фиксированных значений вектору в апдейте, напомню.
Это "лечится" переносом всех ассетов в работающий проект (теперь постоянно делаю бэкапы), но теперь эта хуйня случается стабильно раз в день и фикс этого говна отнимает кучу времени.
Кто-нибудь с этим сталкивался, как отдебажить проблему и найти виновника?
Страдай, юнитипидар, в анриале таких проблем нет. Ебанько, а ведь тебя предупреждали.
Как правило когда случается такая хуйня, то какой-то из твоих ассетов все портит, скрипт какой-нибудь или шейдер. Нужно методом удаления искать - удалять часть, и смотреть исчезла проблема или нет, и так методом исключения найдешь. Как вариант можно попробовать переустановить юнити. Дохуя делов конечно а что делать
переустановить/обновить*
Какого функционала там нет, ебанько? Ты список игр видел на нем? Там есть все.
Много игр выпустил на анриале? Сколько здесь существуют треды анриала, ни одной игры на нём так и не увидел. А на юнити много видел игр.
Оказывается, юнитеки купили ProBuilder и теперь он бесплатный. Можно прямо из проджект менеджера установить. Удобно для прототипирования.
А ты много выпустила, дура? Видела ты, ебанушка. Я тоже видел игры на анриале.
Рим - слэшер
ПУБГ - батл-рояль(включает в себя как элементы шутера так и многих других жанров)
Фортнайт - батл-рояль
Стрит Файтер, Теккен - файтеры
Хэллблейд - слэшер
Парагон - МОБА
Арк - опен ворлд выживальщик
Психонавты вторые - платформер
Мото-рэйсер четвертый - гонки
Готик Армада - стратегия
Драгон Квест - РПГ
Вампир - РПГ
Фридэй 13 - онлайн выживальщик
И еще дохуя
Юнитипозорище багованное, заткни дыру свою ротовую, а то моча вытекает.
В крае это уже сто лет как есть.
Что-то я не припоминаю таких проектов в /gd... Наверное, потому что это игры уровня ААА и их разрабатывали игровые студии!
>Что-то я не припоминаю таких проектов в /gd... Наверное, потому что это игры уровня ААА и их разрабатывали игровые студии!
Согласен с тобой, что уеч это топ, а юнитиговно для гдачеров.
>>09650
>Где твоя игра на анриале?
>Жду.
Хуя аргумент юнитишкольника, ух как озадачил! Если у меня нет игры на анриале, значит... Что же это значит? Дура блять, нихуя это не значит. Я так понимаю это опять намек на то что анриал для нормальных игр, а юнитиговно для двачеров-говноделов.
Ты бы хоть версию написал, мастер грамотных вопросов.
Так просто поиметь тролля оказалось кек
Вот, например https://goo.gl/dzhPXC
Давай свою. Или начни кукарекать про то, что это не то и вообще эта игра не игра.
Такой понос, пиздец, я уж подумал, что придется похвалить юньку и разраба, но это опять трешговно. Реально юнька только для говноделов, это раз за разом просто подтверждается, высрал хуйню и еще не хочет пить анриаломочу. Примитивный геймплей и специально еще графику ухудшают, даже теней нет с лайтмапами, и пиздят про другие движки, что там чего-то не хватает, юнитидебилы.
> "я же не дурак, просто пиздабол, игры у меня нет"
>Вот, например https://goo.gl/dzhPXC
Что за кусок говна. Анриало начальник! Этот юнитипидарас опять обосрался.
с кубами*
лал
>Но ведь вы даже такую не сделали, вы по дефолту проебываете в споре.
Спор о том, что юнитиговно хуже лучшего в мире движка анриала не решается предъявлением сценки с кубами, тупица.
Ой нет, опущенка, давай-ка я тебе на пальцах объясню.
1)Вы начали спор о том что лучше юнити или анриал
2)В ходе спора прозвучал аргумент>>09647 что никто ЗДЕСЬ не делает игр, после чего унрилопетушку была предъявлена игра сделанная тут
3)В ответ унрилопетушок ничего своего объявить не смог и начал кукарекать "азаза игра то гавно", хотя это никакого отношения к предмету спора не имеет, в итоге был закономерно обоссан юнитибоярином.
Спор о том что лучше юнити или анриал можно вести на любых уровнях, если хочешь сравнивать профессиональные игры, пожалуйста - Ghost of a tale, Ori and the blind forest, Heartstone, escape from tarkov, и ещё дохуя игр - юнити есть что предъявить, на местном уровне тоже были предъявлены игры, давай сравним с вашими.
Ах да, ведь у вас нет игр, вы только кукарекаете.
>>юнитиговно для двачеров-говноделов, а анриал для двачеров, тралящих в гд анрилом
Вся суть в одном посте, лол.
Всё ясно, школьник бомбанул, заносите следующего.
>В ходе спора прозвучал аргумент>>09647 что никто ЗДЕСЬ не делает игр
Нет, аргумент звучал как - сначала сделай игру, потом критикуй, сродни сперва добейся. Не можешь атаковать мысль, атакуй мыслителя. Этот аргумент школьного юнитиговна полностью позорит его и заканчивает спор на поражении юнитиговна.
Унрилопетушки тут кидают списки ААА игр на уе4, что этот аргумент должен значить? Такое же петушиное кукареканье. Других аргументов от унрилопетушков услышано не было, так что и поражение тут только у тебя в маняфантазиях
>Унрилобоги тут кидают списки ААА игр на уе4, что этот аргумент должен значить?
Это значит топ уровень топ движка, и то что на нем можно создать игры множества жанров.
А юнитиговно придумывает, что анриал это конструктор и на нем ничего кроме шутеров нельзя спрограммировать, это означает тупость юнитидебилов.
Потому что древнее говно мамонта никому уже не нужное
https://www.youtube.com/watch?v=3omw9dLkrR8
вув
уе4 для ААА игр и больших студий, юнити для инди, это все адекватные люди понимают.
юнитибояре сидят и делают игры, унрилошкольники сидят и пиздят какие охуенные топ игры делают на унриле корпорации. Это и так ясно.
>уе4 для ААА игр и больших студий
Ага, все нижеследующий игры сделаны на твоем говноУЕ:
Ori and the Blind Forest
Ori and the Wills of the Wisps
Escape from Tarkov
Subnautica
Life is Strange 2
Telltale's Stranger Things
Pillars of Eternity II: Deadfire
Battletech
Life is Strange: Before the Storm
Torment: Tides of Numenera
Endless Space 2
Sudden Strike 4
Syberia 3
god I love all these indies!
https://unity3d.college/2018/06/29/telltale-switches-unity3d/
Я не спорю что есть ААА игры на юнити, я ведь этого и не отрицал. Просто в большинстве своем игры на юнити это инди.
>Ага, все нижеследующий игры сделаны на твоем говноУЕ:
Все говно, кроме таркова, но и у него ничего выдающегося, да еще и дикие позорные просадки по фпс
https://youtu.be/xvS-XxiYDuY?t=128
>>09800
>юнити для инди
Это приговор, это как юнити для твг-говна.
>МНЕ НИНРИЦА ЗНАЧИТ ГОВНО!!!!111
Назад в /v/ с такими аргументами, дауненок
>юнити для инди
>Это приговор
>юнитибояре сидят и делают игры, унрилошкольники сидят и пиздят какие охуенные топ игры делают на унриле корпорации
Спасибо что подтверждаешь мои тезисы,
>множества жанров
Но только если там кто-то бегает/прыгает/летает. Для всего остального юнити подходит лучше.
Напомню, что именно на юнити сделана самая инновационная игра последнего десятилетия - Kerbal Space Program.
Я забежал сказать, что не нужно динамически подменять материалы динамически. Пусть лучше будет несколько объектов с разными материалами и лучше заменять объекты целиком.
На это все.
До свидания!
Не сравнивай редчайший баг с просто плохой повсеместной производительностью юнитиговна. В последней демке книга мертвых фпс ниже 30 падает, это они продемонстрировали свои достижения. Смарити, наш юнитя мыльное говно 30фпсное!
>>09810
>Kerbal Space Program
Не удивлюсь, если их аудитории с юнькой совпадают. Вспомнил случай, на сайте американской газеты включили голосование и в финале остались констракт2 и ксп. И за ксп в итоге гораздо больше голосов было, раза в 3 больше. Но там можно было накручивать, голосуешь, трешь историю браузера, перезапускаешь и еще раз можно проголосовать. И организаторы потом написали, что сдетектили накручивальщика из финляндии, он короче часов 15 ебашил подряд. Дело в том, что конкурс шел несколько недель, там по два приложения соревновалось из штук 30 в каждом это ебанько накручивало. Победу присудили обеим программам и, конечно, ничего этот конкурс не значил. Вот юнитидебилы такие же пизданутые.
>Не сравнивай редчайший баг с просто плохой повсеместной производительностью
Редчайший баг это что блядь, полная неиграбельность пабг на иксбоксе? Может просто у разрабов руки из жопы, также как и у разрабов таркова и движок тут не при чём?
>В последней демке книга мертвых фпс ниже 30 падает
Нищенка закукарекала, лол. У меня ни разу не просаживалось ниже 30, плюс это демка графона, никто её не оптимизировал под реальную игру
>Вспомнил случай, на сайте американской газеты включили голосование
меня твои истории доебали уже
>Дак а на кого твоя вонючая юнитя ориентирована? На нищих поедателей дешевого индиговна.
Юнити ориентирована на всех, долбоеб, смотря что ты на ней сделаешь. Сделаешь инди для мобилок - будет идти на мобилках на 60 фпс, сделаешь ААА графон - будет у нищенок тормозить
> анриал выдает еще лучшую картинку на супер фпс.
И что теперь, деградант? Никто не спорит что графика в анриале лучше, вот только для нормальной графики нужны нормальные бюджеты и тут мы снова упираемся в
>юнитибояре сидят и делают игры, унрилошкольники сидят и пиздят какие охуенные топ игры делают на унриле корпорации
Ты говнарик всё продолжаешь и продолжаешь обсираться и подтверждать мои тезисы, всё никак не уймешься, уже всё личико в говнеце
>>09831
Ну смотря что у тебя там в коде, действия с триггером выполняются в OnTriggerEnter, а действия с коллайдером в OnCollisionEnter, смотри мож че напутал
Да, действительно перепутал колижн с тригером. Спасиб.
Про остальное всё я прав так что там и нехуй спорить, просто меня забавляет унижать унрилошкольников без игр
Лол, а схуяли у тебя там что-то должно срабатывать? Кто вызывать твой метод будет, м? Ты в апдейт это пихай.
> Я имел в виду про это Input.GetKey() -> Input.GetKeyDown()
Ну так это просто разные методы, но оба рабочие.
GetKey срабатывает всегда, когда кнопка нажата/зажата. GetKeyDown срабатывает только один раз при нажатии, хоть ты кнопку нажми и пол часа держи.
Ну никто тебя не заставлял изначально GetKey прописывать, кто ж тебе виноват.
Я просто говорю чем они отличаются и почему у тебя не работало даже так.
Кидай, дату выставь за последние 2 недели, чтобы я точно знал что твое
Какому?
> Как вы боретесь с нулреференс ексепшон?
Отслеживаем чтобы все референсы были на месте.
Ну и ещё советую ничего из проекта не удалять через проводник/тотал и т.д., только через саму юньку.
А напомни нахуй оно нужно. Я помню тут пару месяцев назад эта тема поднималась, но всю движуху по итогу пропустил.
Френдли фаер.
Допустим, у тебя есть префаб домика внутри которого различные NPC, интеректив итемы и так далее. Всё это будет одним префабом. И если ты захочешь изменить NPC, тебе придётся его изменять везде, во всех префабах.
А, то есть теперь можно заменить (условно) префаб чухана на префаб шлюхи, и во всех домах, где раньше был чухан, появится шлюха, при это префаб самого дома останется с рабочими референсами?
Да, занятно.
Там ещё речь шла про Prefab Mode, если они наконец-то сделали нормальное редактирование префабов, то я просто счастлив буду.
>Там ещё речь шла про Prefab Mode, если они наконец-то сделали нормальное редактирование префабов, то я просто счастлив буду
Да.
https://www.youtube.com/watch?v=NXghnxDe8zM
Вообще, штука очень крутая и полезная. Давно ждал этого. Можно использовать вложенные префабы для конструктора мобов, например. У тебя есть базовый префаб человечка. Ты создаёшь ещё один префаб, который реализует ИИ управление для этого человечка, либо Инпут управление для игрока. И так далее.
Раскусил нас, чертяка. Всё, пацаны, закрывайте тред.
Мета-файлы обновились, скорее всего.
Систему сцен спиздили, интерфейс спиздили, ниже опускаться уже некуда, юнитиговно на дне, ВСЁ.
Это не нужно. У тебя получится ебаный ад из зависимостей, когда изменение в одном префабе будет затрагивать изменения половины проекта, если этим злоупотреблять.
А из практики программирования понятно, что если чем-то можно злоупотреблять, то этим непременно будут злоупотреблять.
Ограничение на префабы - это хорошее ограничение, которое принуждает к правильной архитектуре. Вложенные префабы будут приводить к неконтролируемому аду.
Тогда зачем они это делают?
> А из практики программирования понятно, что если чем-то можно злоупотреблять, то этим непременно будут злоупотреблять
Это как оправдывать свои обосранные труханы фразой "если ты можешь обосрать свои белоснежные труселя, то ты их обязательно обосрёшь".
Ах да, забыл сказать. Самое время заявить что все порвались, ХУЯ ПИЧОТ и всё такое. Жги.
Назови пример использования вложенных префабов, и я объясню тебе почему так делать не нужно.
Любое проявление зависимостей - это зло. Нужно наоборот уменьшать их количество, а не вводить функции для их увеличения.
Ну так где объяснения?
Что такое тесселяция я в курсе, но что это за "Metal" да ещё и с большой буквы?
И да, что будет если я прихуячу тесселяцию, а потом билд запустят на платформе, которая её не поддерживает? Никаких эксепшенов не повылезает? Просто тесселяция отвалится и всё пойдёт как надо, только без неё?
Напрашивается очевидный ответ, что Метал в этом контексте это ТОТ САМЫЙ МЕТАЛ, КОТОРЫЙ ИСПОЛНЯЮТ ВОЕНЫ МЕТАЛА, КАРАЯ ПЕДОВОК ХРУСТАЛЬНЫМ МЕЧОМ
Нахуя? С тебя кто-то за скачивание последней версии деньги требует?
Ну хотя бы 5-ый поставь. А то 3,5 это совсем ад.
>Наебать их вполне можно
Каким образом? Указать для оплаты карту, на которой только за 1 месяц оплата и выкинуть ее в мусорку? Написано, что в таком случае они блокируют твой аккаунт, но ты обязан будешь оплатить за весь год энивей. Какие возможны рычаги давления?
Уууух юнити, давят нищих студентов-игроделов.
А где ссылка на скачивание пиратских плагинов из юнити стора? Раньше вроде была ссылка?
вот у меня в юнити 10 персонажей меши с одинаковой топологией- мне мимику, морфы и анимацию полностью делать каждому отдельно? или у Юнити на дворе все таки 2018?
то есть на всех персонажей будет одна загрузка морфа или каждому свое?
ананасы, выручайте, что-то наделал, теперь все отдает синевой какой-то. думаю ответ где-то в window->lighting но сам найти не могу...
А скриншот сделать никак?
>>Юнити - 1,5 годных игры
Oxygen not included
RimWorld
KSP
продолжать, или ты уже готов признать, что обделался?
Хули толку продолжать, для многих поехавших на этой борде "годная игра" это многомиллионный ААА проект от корпорации, а инди игры они изначально отбрасывают как "годные" впринципе. Непонятно только почему я как инди разраб должен выбирать движок на котором студии по 300 человек делают игры, что это мне даст вообще. Казалось бы борда разрабов, но походу тут один хуй 90% школьники из веге сидят, у которых один аргумент МНЕ НИНРАИЦА ЗНАЧИТ ГОВНО!!!
Заебали уже
Тролли на любой борде всегда есть. Самое хуёвое, когда на борде появляется ЕДА и начинает КОРМИТЬ. Вот тогда борде и приходит пиздец.
Вот нахуй ты высрал свой пост? Ты же покормил тролля.
Незнаю, просто мнение выразил. Больше не буду кормить, ок
https://www.youtube.com/watch?v=iauWgEXjkEY
еще б графон поправили и можно будет наслаждаться багетом уеч-кунов
Ну так это единственный выход для Unity. Баги, отсутствие игр, токсичное комьюнити - всё это рано или поздно убьёт движок. Нужно что-то менять. Мне конечно Unity уже не интересен, я пользуюсь более профессиональными инструментами, но двумя руками за конкуренцию и надеюсь ребята из Unity возьмутся за голову и создадут движок на котором можно делать хотя бы простые игры.
Ладно, увеличил размеры коллайдера с триггером и все стало работать нормально. Пока что.
https://www.youtube.com/watch?v=CWgi6hE26ig
Они наконец-то добавят нормальный способ расширения UI редактора.
Ну же анон, был же какой-то формум, где можно было выцеплять платные ассеты из ассетстора. Я ссылку проебал, но она вроде в каих-то тредах раньше была, может даже в шапке.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class LoadWeb : MonoBehaviour {
IEnumerator Start()
{
WWW www = new WWW("file://" + Application.dataPath + "/sample.jpg");
while (!www.isDone)
yield return null;
Debug.Log(www.texture.name);
GameObject rawImage = GameObject.Find("RawImage");
rawImage.GetComponent<RawImage>().texture = www.texture;
}
}
Проблема: изображение растягивается по всей площади элемента. Если соотношение сторон у изображения другое, то выглядит это так себе.
Можно ли как-нибудь запилить автоподгон размера изображения без растягивания?
https://docs.unity3d.com/ScriptReference/UI.RawImage-uvRect.html
Меняешь width и heght, подгоняешь под какое соотношение тебе надо, хоть от размера экрана хоть от чего
- Просчитывается она в тот же момент ,что и кадр(если бот видит игрока)
- Ее цель найти клетку ,которая приблизит бота к игроку и сдвинуть бота на эту клетку
Детектор чини, я не автор поста
Если бы не срабатывал он бы двигался неправильно, а двигается он правильно. Сам напесал
Во-первых, когда делаешь что-то, из чего в теории может получиться бесконечный цикл, всегда добавляй дополнительный, не зависящий ни от чего счётчик, который останавливает цикл после тысячи/десяти тысяч/любого нужного кол-ва итераций и выдаёт сообщение в консоль.
Во-вторых, в один for можно впихнуть несколько переменнных.
В-третьих, вместо проверки i, i-1, i+1, j, j-1, j+1 можно проверять направление вектора.
Потерпи до вечера. У меня ИДЕ переустанавливается. Ну или другие аноны возможно напишут.
Я никуда не тороплюсь
Хотя для for можешь статью на MSDN открыть, там прямо по русски разжевано.
Как сделать, чтобы он двигался строго определенными по длине шажками? Как будто бы существует квадратная сетка на поле, и чтобы он при каждом нажатии вписывался в следующий квадратик
Убрать риджид бади и двигать его через трансформ пробовал? Или это слишком простое решение для тебя?
Сделай navmesh c grid
А я вот тут подумал, а как обычно в ФПС передвижение делают, через РБ или через трансформ пос.?
> когда делаешь что-то, из чего в теории может получиться бесконечный цикл, всегда добавляй дополнительный, не зависящий ни от чего счётчик, который останавливает цикл после тысячи/десяти тысяч/любого нужного кол-ва итераций и выдаёт сообщение в консоль
Добавлю этого господина. Когда ебошишь while с сомнительным условием, то лучше хуярь его в корутине с yield return null; в конце тела while'а, и попутно в этом самом теле выводи какую-нибудь инфу о количестве итераций или ещё какую хуйню. Так ты не повиснешь даже если цикл упиздонит в прекрасное далёко, зато дебажную инфу точно увидишь и всё порешаешь.
> а как обычно в ФПС передвижение делают, через РБ или через трансформ пос.?
На юнити? Для этого есть встроенный CharacterController с методами Move и SimpleMove
А уж вариантов велосипедов хуева гора
Чего не так? Не любишь корутины — делай как выше советовали. Просто ебошь левый счётчик, ставь ему лимит и выходи из цикла если лимит заполнился.
Чуваки, хочу сделать свою особенную физику. Думаю использовать коллайдеры-триггеры и прописывать поведение при столкновениях, поворотов у объектов не будет, какие подводные?
Никаких подводных. Это же простейшая задача, ебош.
а колизия будет определяться нормально или с запаздыванием? Если 2 то придется коллайдеры чуть чуть больше делать.
Но как только я пытаюсь заменить уничтожение на деактивацию, объект перестает даже терять хп.
Вот по идее должно быть так, 0хп, выполняется Destroy(), устанавливается время спавна nextSpawnTime, создается руда. Как только таймер подходит, объект активируется с 100 хп. Но что то идет не так, вопрос что?
У деактивированного объекта не работает апдейт.
Можно сделать корутину, но нормальным подходом будет сделать менеджер, который будет заниматься спавном объектов, чем пихать всё это в скрипт на объекте.
Но он не доходит до момента с деактивацией, с самого начала начинает игнорировать удары.
Я пишу собственный трехмерный редактор (убийцу 3D Studio MAX, лол), скажем на C# + WinForms (или WPF, но не суть) или на плюсах + Qt, что тоже не принципиально.
У меня есть интерфейс, кнопочки, менюшечки и есть, скажем некоторый контрол (какая-нибудь панелька), у которой есть дескриптор (под виндой это HWND) и я знаю как имея этот дескриптор руками создать контекст воспроизведения под DirectX, OpenGL, еще что нибудь, НО:
Я не хочу руками выводить туда графику, я не хочу велосипедить собственный движок, я хочу воспользоваться всеми прелесями и мощью самого лучшего движка на планете (и я имею ввиду Unity, конечно же).
Как мне подключить Unity к своему проекту, желательно как стороннюю библиотеку (как было раньше: у нас есть OBJ/LIB/DLL библиотеки движка и у нас есть заголовочные файлы, мы их просто включаем в свой проект и дергаем нужные нам функции API) так, чтобы Unity выводил графику в окно моего приложения, а точнее на тот самый контрол?
Или единственный вариант подключить Unity к десктопному приложению - это делать это самое приложение на самом движке и в его редакторе используя библиотеки UI сделанные на нем?
Ты хоть представляешь как всё это будет лагать с таким-то количеством посредников?
Или в создании йобаплатформера Юнити может помочь, а в создании, скажем, CAD-системы - уже нет?
А ну то есть оптимальный вариант - делать UI прямо на движке теми UI-библиотеками что там есть и забить на WPF, WinForms и Qt?... Ну ОК, наверное...
оптимальный и... единственный?
Похоже незаданное значение nextSpawnTime постоянно дает срабатывать ReActivate.
Значит эту функцию можно вынести в пустой геймобжект. И при срабатывании Destroy и уже установке заданного времени включается этот геймобжект с скриптом на проверку таймера. Где после срабатывания он сам себя выключает.
Юнити - это движок для игр, а не для неба и аллаха, был тут недавно один челик, который пытался какой-то биржевый интерфейс на юньке запилить, заебался он знатно, скажу я тебе.
> Похоже незаданное значение nextSpawnTime постоянно дает срабатывать ReActivate.
Да, неинициализированный float равно как и int по умолчанию считается равным нулю.
Чёт в голосину с такого же поста в уеч-треде.
Что значить разбирать? Я просто хочу подключить движок к своему проекту, чтобы выводить графику через него, а не велосипедить свои движок. Что не так то?
Бамп
Совладал с порядком выполнения всего, работает. Но суть в том, что объект с скриптом у меня один, а руды больше чем один, и как мне не создавая тыщу геймобжектов контролировать спавн каждого блока руды?
Мимо. Не туда
Ясно, ну ОК, буду смотреть в сторону других движков, попроще, например Irrlicht...
Ну или блин велосипедить свой на чистом OpenGL/DirectX, раз уж как оказывается у меня такая специфичная задача - создание собственного 3D-редактора/тулзы/CAD-а...
Или буду переделывать UI на тот что в Юнити....
Татышо! И почему бы мне не переложить эту самую простую часть на сторонний, надежный и протестированный движок, а не велосипедить glBegin()/glEnd()/DrawIndex итдтп? Что меня останавливает и почему?
Правильно, просто выключать меш рендер и меш коллайдер.
Вопрос был про рейкаст, а не про hit
Он вернёт hit-инфу о точке попадания в первый коллайдер. Насквозь он не пролетает, во всяком случае я такой перегрузки не видел.
Чтоб пустить луч через всю сцену и собрать инфу о всех точках пересечения, то нужен Physics.RaycastAll, возвращает массив RaycastHit-ов.
>Насквозь он не пролетает, во всяком случае я такой перегрузки не видел.
Raycast не пролетает, RaycastAll - насквозь, на всю указанную длину
Бля, там бы сразу и сказал что у тебя 2д-рэйкаст, он-то не bool возвращает, а RaycastHit2D
> Условие всегда true
Ну наверное ты всегда во что-то попадаешь, не?
Да я чет протупил, сорян.
Я там специально только с одной стороны выставил стеночки, он мне в консоле ошибки выдает мол NullReference
Благодарю
Зачем? Я просто не могу найти то функцию которая отвечает за движение камеры за курсором.
Если то же что и у меня - в апдейте контроллера гаси RotateView() (он из класса MouseLook, в нем вся хуйня твоя вызывается).
Тебе можно.
Но нахуя, tilemap жизнь проще делает
Visua Ыегвшщ лучший редактор, как ты без IntelliSense будешь?
Но как вариант, можно VScode или Sublimetext
> Нет в юнити какого-нибудь встроеного редактора кода?
У тебя искаропки монодевелоп стоит, алё.
Но лучше таки студия с решарпером.
Без UpdateCursorLock() не сможешь обратно прятать курсор наверное. А вообще хз, я эту вермишель в гробу видел.
есличо попробуй просто m_cursorIsLocked теребить.
кек
Гранит, в основном
Правильно будет decrease и increase.
Ебаный MS решил придушить monodevelop окончательно
https://www.reddit.com/r/dotnet/comments/8rxw2x/no_more_monodevelop_on_windows/
Хуй знает, работал давно на монодевелопе, потом пересел на студию, как небо и земля. Этот монодевелоп теперь даже не трону никогда
Я не он, но в студии можно найти откуда вызывается тот или иной метод по Alt+F7, дико удобно. Также есть переход к методу/классу/полю по контрол+клик. Подсветка unreachable-кода, помогает сразу увидеть если ты проебался. Конвертация обычных конструкций в LINQ, что сокращает количество строк (но это уже мелочи).
И самое вкусное. Если ты хочешь в коде прихуярить что-то, что находится в неподключенном пространстве имён, то оно автоматически подключится. В монодевелопе же у тебя даже в выпадающем списке не будет того, что тебе нужно, только после того как ручками подключишь.
Может это всё и в монодевелопе есть, я в нём не сильно ковырялся, хоть и довольно долго на нём просидел.
На студию перелезать очень не хотел, но выбора не было (на работе только она), но теперь нарадоваться не могу.
Интерполяция? Выключи фильтр спрайтов,текстур
Просто выпадающий список с выбором в меню настроек (например, фар крае такой выбор есть).
Нормальный интерфейс. Наконец-то унифицированный тулбар завезли. Сейчас с аддонами пиздец какой-то.
398x226, 0:01
То есть, чтоб координата X плавно варьировалась от -1 до 1, и наоборот, от 1 до -1
>>13529
>>13530
thank you
Тока документации https://docs.unity3d.com/ScriptReference/Mathf.Sin.html написано Mathf.Sin принимает в качестве параметра The input angle, in radians. Но, как я понял, ему можно скормить любое число чтоле?
Да, радианы всё равно выражаются в виде float.
нет
Просто создаёшь прямоугольник и располагаешь на нём разные объекты и ходишь игороком, зачем для этого какие-то туториалы? Это же элементарное действие, проще чем хэллоуворлд.
Ну так ты повешай коллайдеры и ригид боди.
Как жить дальше?
неужто не спиратить никак?
У меня только первый запуск был пиздец долгим. Потом нормально запускался.
Умный даун заработал бы на новый ноут, очевидно же.
Я рад, что никаких претензий по поводу "дауна" нет - значит, был прав.
как вообще это организовано в юнити?
> как организовать красивую скриптовую составляющую в проекте?
Берёшь и без задней мысли организовываешь.
> чтобы не было миллиона повторяющих строк для последовательности действий
Это называется "метод".
без задней мысли я наговнокодить и так смогу, хотелось бы сделать пограмотному
Понятно что метод, вызов их организовывать через делегаты, например?
ООП
1) Я использую Visual Studio 2013, потому что MonoDevelop заебал багами с раскладкой/буфером обмена/шорткатами. Из возможностей студии пользуюсь только поиском и Code Map (здорово помогает, особенно если у вас ООП в плохом смысле). 2013 версию поставил, потому что более новая будет грузиться долго на моем некроноуте. Не проебался ли я? Может в новых версиях какая-нибудь киллер-фича есть, такая же полезная как Code Map?
2) Что там с Nested Prefabs в новой версии Юнити? Ввели уже? Стабильно работает?
3) У меня проект на древней 5.6. версии. Раздражает работа с Macanim, приходится кучу движений мышкой делать, чтобы создавать новые анимационные транзакции. В новых версиях есть возможность копировать транзакции?
> Не проебался ли я?
Вроде нет. На крайняк накати решарпер, если он на 2013 ставится.
> Что там с Nested Prefabs в новой версии Юнити? Ввели уже? Стабильно работает?
Пока в бетке, но вангуют релиз уже "скоро" (с)
По третьему вопросу нихуя не понял какие там тебя движения мышкой заёбывают.
Это считая фигурные скобки за строку? так и не нашёл где отключить эту хуйню, постоянно сносятся на новую строку
У меня из 2014
Ну хз, нужен ли мне решарпер. Я говнокожу, то есть рефакторингом и юнит-тестированием не занимаюсь совсем.
>По третьему вопросу нихуя не понял какие там тебя движения мышкой заёбывают.
Если Меканим-контроллер дохуя сложный, то добавление нового state всегда больно. Ведь в него и из него выходит туча transition. В 5.6. нет возможности просто взять соседний state c похожими transition копировать и сохранить все эти transition. Приходится как истинный ассетотаскатель кликать мышкой и создавать новые переходы.
>>13837
Але, Вася, при чем тут количество строк? Ты можешь весь свой проект открыть на карте или несколько классов отображать на одной карте.
Я вообще на карте не заглядываю в классы, смотрю на связи между классами обычно.
Сорян, анон. Я бы мог показать свой, но у него такой хуевый ООП, что моментально зашкварюсь.
Выглядит как макароны.
> Я говнокожу
Ну если ты знаешь что такое
> рефакторингом и юнит-тестированием
то очень сомневаюсь что ты прям совсем пионер и долбоёб, не пойму в чём твоя проблема.
Не слушайте этого тупого дауна.
CharacterController в Celeste - 5000 строк, при этом игра уже перевалила за 100к проданных копий, обеспечив автору безбедное будущее и новый проект.
А этот долбоеб сидит в своем мухосранске, в хрущевке однокомнатной, и дрочит на код, кек
Что-то я не улавливаю причинно-следственной связи.
Ты хочешь сказать, что нужно писать лапшу на 5000 строк?
Смысл эффективного кода в его эффективности.
Потому что у такого класса слишком много ответственностей. Такой класс становится трудно понимать, применять и изменять.
>Что-то я не улавливаю
Так ведь я же пояснил, почему не улавливаешь - даун тупой.
>Ты хочешь сказать, что нужно писать лапшу на 5000 строк?
Да всем похуй, что там у тебя в твоей говноподелке. Пусть даже state of the art code - покупателю фиолетово. Если игра говно - твой прекрасный код ее не спасет и ты потратил кучу времуни на прихорашивание того, что вообще не релевантно.
Meanwhile, игры с говнокодом, типа Conan Exiles, PUBG или YandereSimulator принесли авторам нехилые бабки.
Тебе, даун, шашечки или ехать, блать?
100 строк это конечно условно.
Просто это я для себя решил, что класс в котором значительно больше 100 строк становится трудно понимать.
>Да всем похуй, что там у тебя в твоей говноподелке. Пусть даже state of the art code - покупателю фиолетово.
Эффективность кода нужна не покупателю, а тебе самому. Это твой собственный инструмент.
Эта книжка поможет моей игре продаться 100к+ копий? Твой игре помогла? Кажи свою игру, что тубу безбедную жизнь обеспечила.
Ах, нету? Вот и нахуй иди с тупыми рекомендациями.
>>13884
>Эффективность кода нужна не покупателю, а тебе самому.
Мне нужна не эффективность кода, а покупатель. Вот когда будут покупатели, тогда и буду думать об эффективности кода в патчах.
Ты какой-то тупой. По-твоему это какая-то прихоть.
Эффективный код это в первую очередь твое время.
Я сомневаюсь что с таким отношением к коду ты вообще что-то закончишь.
>Я сомневаюсь что с таким отношением к коду
C таким отношением к коду пиздуй-ка обратно в софтфар-дев, тебе не место в гейдеве.
Попрошу Yandere Simulator вон из этого списка. Автор пилит игру уже 5 лет без должного прогресса. Продавать ему нечего, только с Патреона деньги капают, едва достаточные для бомжевания в США.
Хотя код говнистый у него, да.
if () {} else { if () {} else { if () {} else { if () {} else {
За такую лажу у нас на доске расстрел.
>бомжевания
4k зелеными на протяжении 5 лет, 50к в месяц.
Смотрим сюда:
https://www.youtube.com/watch?v=WycVOCbeKqQ
93% инди-девов прогорают, только около 7% умудряются зарабатывать около 30к в месяц.
Так вот поведай мне, друг лучистый, сколько тебе принесла твоя игра за последние 5 лет и что это за игра? :P
Вопрос, очевидно, риторический.
Моя игра не принесла ни копейки. Но чуть не занял призовое место на предыдущем TWG! В упорной борьбе проиграл Бластер-копу.
Но я то хуи с горы без реального опыта в геймдеве.
А Yandere Sim делает великовозрастный разраб, который убежал из коммерческого геймдева. Алсо, он на своей прошлой работе наверняка больше 4к зеленых получал, это же США.
Разве это успех? Вот если бы он выкатил законченную игру в Стим и продал, был бы успех.
Алсо, я не >>13910
>Но чуть не занял призовое место на предыдущем TWG
Пацан к успеху шёл, не получилось, не фартануло
>А Yandere Sim делает великовозрастный разраб, который убежал из коммерческого геймдева.
Что, блять, за оправдания, пошли? Ты сам-то в это веришь, глядя на его код? Почитай его смету, он сам ВООБЩЕ почти нихуя там не делает, 3D-моделинг, анимация, войсовер - все аутсорсинг на деньги патреона.
>Но чуть не занял призовое место на предыдущем TWG!
А даже если бы и занял - оно бы тебе 50к в месяц принесло? Стабильно, на 5 лет?
>Разве это успех?
Ты СВОЙ успех, который заметно лучше продемонстрируй? Окромя жалкого и смешного "чуть не занял призовое место на предыдущем TWG". Мамкин борщехуй.
> Вот если бы он выкатил законченную игру в Стим и продал, был бы успех.
Так нахуя, если можно доить патреонодебилов годами?
>Алсо, я не >>13910
Да похуй кто, аргументация такая же несостоятельная.
По делу есть что сказать, кроме: "сперва добейся"?
Я уже несколько лет слежу за его проектом. И факты таковы:
1) Разраб занимается только кодом, геймдизайном и пиаром, да.
2) Несмотря на говнокод он - профессиональный кодер. Он сам говорил, что работал в геймдев-конторе. Занимался прототипами.
3) 4к в США - зарплата электрика. Патреон подходит только для нищуков из стран СНГ и Индии. Поток этих копеек иссякнет как только пропадет внимание публики.
4) Игра настолько раскрученная, что если бы выпустить ее в Стиме можно было бы получить миллион-другой баксов на старте продаж.
>По делу есть что сказать, кроме: "сперва добейся"?
Нет. А зачем мне тебя слушать, если у тебя нет опыта? Вот девелоперов Hollow Knight или Celeste или Stardew Valley я бы послушал, у них, т.с., first-hand experience на примере за плечами. А у тебя что? Ты кто, хуй с горы? Зачем мне тебя и твои завывания про твою чистоту кода слушать?
Или у тебя есть личные примеры, где твой чистота кода тебе миллионный продажи принесла? Так кажи, делись.
>Я уже несколько лет слежу за его проектом. И факты таковы:
Это не факты, это твой ублюдочное мнение, которые ты, за неимением аргументов и в жалкое попытке ответить - представляешь как факты, как субституцию аргументам.
Мне на его проект, как таковой, похуй. Я его привел лишь как пример того, что твоя чистота кода нужна лишь одному тебе, а не покупателям.
Не нравится YandereDev? Так давай возьмем Hollow Knight - дырявый singleton на Юнити, костыль костылем поправляет. У них послерелизное добавление простых изолированных боссов заняло почти год, потому как при малейшем изменении говнокода ВСЮ игру нудно тестировать, от А до Я, ибо разваливается.
У твой пропаганды кода нет никаких весомых аргументов за плечами. Все похуй, люди покупают игру, а не код. Свой код можешь вылизывать, когда продашь 100к+ копий, в новом доме, со служанкой, отсасывающей тебе под столом.
Вот это рукожопый унтерменш подорвался от чистоты кода. До сих пор в себя прийти не может.
Объясняю дурачку еще раз, что чистота кода и миллионные продажи ортогональны, то есть никак не связаны.
Чистота кода позволяет сделать код более эффективным. То есть возможно сократить время разработки, уменьшить число багов. Время разработки - это ресурс. То есть чистота кода приводит к сокращению бюджета разработки игры.
Казалось бы, очевидные вещи.
>У твой пропаганды кода нет никаких весомых аргументов за плечами.
Ты же только что его привёл, лол:
>У них послерелизное добавление простых изолированных боссов заняло почти год, потому как при малейшем изменении говнокода ВСЮ игру нудно тестировать, от А до Я, ибо разваливается.
>Единственный мой пост про качество кода был >>13907
Ну так елки-палки, Михалыч, чего-ты тогда вообще влез в эти говнометания?
>>13937
2 часа спуся, 10 постов спустя и ни одного примера.
Сдулся, как шавка трусливая.
>>13938
>Ты же только что его привёл, лол:
Ну пиздец, приехали - передергивания уровня /b/. Прекрасно знаешь, что данный пример был приведен как подтверждение моих слов и все равно опустился до жалкого передергивания. Ну или просто тупой и не понимаешь.
Поясняю на пальцах - вместо того, что бы тратить время и усилия на "ле чистоту кода", они игру делали. И какой результат? На июль 2018, у них 1 миллион проданных копий, и это за 1.5 года, при максимальной скидке в 33%. Вместо того, чтобы хуйней страдать, они себе безбедную жизнь обеспечили. А дальше вес просто - наняли кодомакак, таких вот святых идеалистов-дебилов, как ты, и они стали весь этот код причесывать и переписывать для Switch-релиза.
Вот и смотри сам - где они, с их миллионами, и где ты, в грязной комнатушке, с красными глазами свои жалкие пару штук отрабатываешь, переписывай чужой говнокод.
>Вот девелоперов Hollow Knight или Celeste или Stardew Valley я бы послушал, у них, т.с., first-hand experience на примере за плечами.
Авторы придумали идею и наговнокодили как могли. Совершенно неинтересная история, ничем не отличающася от пост-мортема какой-нибудь игры с ТВГ. Никакого полезного опыта ты не наберешься.
>Совершенно неинтересная история
закончившаяся лишь тем, что они миллионеры.
И вот только одна характерная черта прослеживается во всех таких случаях - они не прекрасны код писали, а игру делали.
У тебя ошибка выжившего.
>Ну так елки-палки, Михалыч, чего-ты тогда вообще влез в эти говнометания?
К тому, что Yandere Dev не имеет ничего общего с авторами Hollow Knight, Celeste, Stardew Valley, которые миллионерами стали.
Игра не сделана даже на половину, контент частично с ассет-стора или вообще рипнутый. И говнокод ему боком вышел. Он начинал на Unity 4, не может перенести проект на актуальную версию движка из-за говнокода. Не может "боссов" и сюжетную часть в разумные сроки в игру встроить, тоже благодаря говнокоду.
Говнокод ему помогал в начале разработки, позволил быстро показать фичи аудитории и стать популярным. Но в последние годы каловый камень кода тянет на дно.
>К тому, что Yandere Dev не имеет ничего общего с авторами Hollow Knight, Celeste, Stardew Valley, которые миллионерами стали.
У них общее одно - они не страдают хуетой и не пропагандируют чистоту кода, они пилят свои игоры, каким-бы они не были. YandereDev был приведен как "приземленный" пример, что бы было понятно, 50к в год там, или миллиона два - - суть одна и та же.
Для игр такого жанра придётся почти что свой движок пилить, по крайней мере многое с нуля придётся делать, искаропки у тебя дрифт не получится.
Урок полезный, но там у него стандартные настройки.
Это потому что ты - ровный поцанчик, не сидишь в /a и не посещаешь 4chan.
> if () {} else { if () {} else { if () {} else { if () {} else {
> За такую лажу у нас на доске расстрел.
А как по другому проверять множество условий?
мимонюфаг
Нужен Rigidbody на плеере
Справа дерево на террейне, немножко заскейленное и повёрнутое.
Слева снизу дерево в той-же ориентации и скейле как на террейне.
Слева сверху дерево в том-же скейле но не повёрнутое.
Тоесть лол у деревьев на террейне коллайдеры не вертятся вместе с деревом. Спасибо. Пидоры.
Да похуй на деревья. ты полюбому что-то не правильно делаешь. Лучше скажи что это у тебя за пиздец из линий там? Нахуя?
На самом деле тут вообще ничего невозможно сделать неправильно. Потому как у юнити из настроек коллайдеров террейна только наличие, или отсутствие их. Само дерево, если интересно, идёт как экзампл к юнитевскому SpeedTree.
А на линии можешь сам посмотреть, Window > Physic Debugger, включи отображение дебага для террейна. Он никогда и не работал правильно для него.
>>14109
хули? когда проверял в раёне 5 версии можно было иметь коллайдер только на самом префабе и только один. притом ещё и игнирировалась его ориентация. а теперь хопа я неожиданно узнал что тут что-то поменялось. поменялось но всё так-же бесполезно.
кстати ещё о замечательных фичах юнити. коллайдеры деревьев похоже существуют только в плеймоде. поэтому если делать Physics.OverlapBox то в эдиторе тебе вернется только террейн. однако в плеймоде вернется террейн за каждый коллайдер дерева попавший туда. сделают же!
>а в Юнити такая же хуевая документация
Unity docs - state of the art.
Я серьезно. Таких хороших доков еще поискать.
После того устарелого мамонта - тебе вообще рай будет
Написал же что только вкатился.
К API очень неплохая документация. К исходному коду? Хуй его знает, не смотрел.
>Unity docs - state of the art
По более-менее недавно добавленным функциям доков или нет вообще, или очень поверхностные.
https://www.youtube.com/watch?v=p65Yt20pw0g
А то придут такие из интерпрайза, обколются своими объектами по стопицот полей и ноют, мол, а чо у них юнька тормозит. И на Update все как один дрочат такие, кококо велосипеды нинужны, кудахтахтах.
Прямо любопытно будет наблюдать за переобуваниями, после того как Мишаня их под шконку загонит.
Алсо, нахуй из Интерпрайза в Юнити перекатываться? В геймдеве ведь нет бабла и развития. Надо наоборот.
Я вот хочу в интерпрайз, блядские формочки клепать для бухгалтеров за 100к в месяц. Но этому учиться так лень, хотя Юнити вот неплохо так задрочил за пару лет.
>Я вот хочу в интерпрайз, блядские формочки клепать для бухгалтеров за 100к в месяц
И что это тебе даст? Хочешь просто плыть по течению, как овощук?
>плыть по течению, как овощук?
Но это лучше чем лазить по помойкам, но быть гордым гейдевелопером.
Удвою, тоже хочу в ентерпрайз, заебало говноигрушки для фриланса лепить чтоб выжить и наедяться что игра мечты выстрелит
>A Data Oriented Approach
От того, что процедурное программирование назвали новым модным словом - ничего не поменялось.
Нырнуть в пучины ООПа с головой, знать и применять десятки паттернов, научиться планировать архитектуру.
А в Юньке-то что?
void Start () {Hui hui_ref = GetComponent<Hui>();}
void PutIt (bool _direction) {
if(_direction) hui_ref.FuckIt();
else hui.ref.FuckOut();}
Ну в юньке если большой проект то тоже нужно об архитектуре думать и в ООП копаться.
Увы, большими бывают только ААА+ проекты. Куда вообще никого не берут, кроме серьеров 10+ лет опыта.
Ну не писать же инди-игру 5 лет, чтобы она выросла до большой?
Обычные инди-игры на говнокоде и говнокода им бывает достаточно, если только игра внезапно успешной не становится.
>Ну в юньке если большой проект
Ты недооцениваешь глупостью юнитимакака. Они в любом проекте могут такого нагородить, что волосы дыбом встают.
Простой проект, который можно сделать за пару месяцев с нормальной архитектурой, они могут мучать годами, а потом еще годами исправлять баги.
ты сейчас описал любого начинающего геймдева, если ты думаешь что любой школьник возьмется за уеч или сурс и вдруг выдаст охуенный продуманный и эффективный проект то ты либо жирный либо жирный
>ты сейчас описал любого начинающего геймдева
а ты думаешь начинающий геймдев чем-то отличается от опытного? хорошему коду нужно учиться. это искусство, дисциплина. юнитимакака как писала говнокод в одной игре, так и продолжить писать его в других играх.
>Кто такой, чем знаменит?
Mike Acton, работал в Insomniac Games. Известен как отец-основатель методики Data-Oriented Design, которая, на самом деле, является подытоживанием опыта борьбы с консольным железом прошлого/нынешнего поколения.
Собственно, сама методика про cache-friendly размещение данных в памяти. ООП-блядтсвовать никто с ней не запрещает, просто все данные хранятся в фабрике в виде массива на каждое поле, а работа идет с прокси-объектами, которые никаких данных кроме индекса элемента не содержат.
>просто все данные хранятся в фабрике в виде массива на каждое поле, а работа идет с прокси-объектами, которые никаких данных кроме индекса элемента не содержат
То есть выкинуть нахуй инкапсуляцию данных для ублажения железа, я правильно понял.? Так это и называется процедурным программированием, ващет, без инкапсуляции уже все - не ООП нихуя, по определению .
>Известен как отец-основатель методики Data-Oriented Design
Идея процедур оперирующих данными стара, как сама идея программирования.
>То есть выкинуть нахуй инкапсуляцию данных для ублажения железа, я правильно понял.? Так это и называется процедурным программированием, ващет, без инкапсуляции уже все - не ООП нихуя, по определению .
Инкапсуляция остаётся на уровне прокси-объектов. Просто data layout меняется с того, который обеспечивается языком/рантаймом:
[{x:1,y:3,z:5,w:16,hui:30,pizda:140},{x:1,y:3,z:5,w:16,hui:30,pizda:140},{x:1,y:3,z:5,w:16,hui:30,pizda:140},{x:1,y:3,z:5,w:16,hui:30,pizda:140}]
На удобный для процессора и оптимизатора компилятора:
{
x:[1,2,3,4,5],
y:[1,2,3,4,5],
z:[1,2,3,4,5],
w:[1,2,3,4,5],
hui:[1,2,3,4,5],
pizda:[1,2,3,4,5]
}
Вообще, этот момент должен в компиляторе/рантайме решаться, просто сговор с производителями железа мешает это сделать и приходится пилить вот такие костыли руками.
Собственно, доклад мишани про то, что он эту хуитку запилит как раз на уровне рантайма и в юнити наступит счастье.
Так их нет, поэтому и рисуют данные костыли. Причем если в байтоебских языках AoS определено стандартом, потому что там структуры и экземпляры классов обязаны лежать в памяти непрерывным куском, то вот нахуя AoS перетащили в жабу и шарпей, если в рантайме можно смело хуярить данные как угодно - кроме заговора не объяснить ничем. Все что нужно - это перпилить у моно менеджер памяти, что бы он строго SoA хуярил.
>>14309
Внезапный бывший учитель Unity для школоты (Код-класс) в треде.
Авторитетно заявляю, что школьники программировать не любят. Им видите ли не нравится сам процесс набивания текста в IDE. Они хотят больше картинок и движения.
Так что засилье школьников в Юнити - не более чем миф.
Наверняка их больше в UE4, ведь там можно блюпринтами собирать лапшу.
Утёр, хех.
В геймдеве мало возможностей писать хороший код. Ты пока продумаешь архитектуру и будешь писать универсальный класс для спавна мобов и бонусов, говнокодер Вася уже вакатит свой прототип с копипастой кода, сотнями корутин и проверок в Update().
Игра Васи будет тормозить, никогда не будет толком доделана и пофикшена, но он все равно успеет сорвать куш. А ты с идеальной игрой будешь хуи сосать.
В интерпрайзе же Васе просто никто не позволит уродовать проект говнокодом. Твоя зарплата напрямую зависит от качества кода.
>Игра Васи будет тормозить, никогда не будет толком доделана и пофикшена, но он все равно успеет сорвать куш. А ты с идеальной игрой будешь хуи сосать.
И всё это закономерно ебнется, как ёбнулось овер 30 лет назад:
https://ru.wikipedia.org/wiki/Кризис_индустрии_компьютерных_игр_1983_года
После чего более менее успешные уйдут под крыло крупных студий и издательств, где их насильно будут пиздить и заставлять писать по гайдлайнам.
Поэтому лучше уж кресты задрочить и OpenGL велосипед написать, после чего пойти анальным рабом-падаваном к крупняку в польскую студию, чем в специальной олимпиаде со школьниками-говноедами участвоватью
>И всё это закономерно ебнется, как ёбнулось овер 30 лет назад:
Что ебнется, даун тупой?
Код Undertale - сплошной пиздец. Тоби сейчас - миллионер. Ему уже сама игра и ее продажи нахуй не всрались даже, она на мерче да остальной оклоигровой хуете стабильно зарабатывает.
Где там у него что наебнулось?
После этих слов ты должен покинуть двач и никогда больше не возвращаться.
Потому что никому не всралось разбирать этот говнокод?
>Код Undertale - сплошной пиздец. Тоби сейчас - миллионер. Ему уже сама игра и ее продажи нахуй не всрались даже, она на мерче да остальной оклоигровой хуете стабильно зарабатывает.
На атари в 1979-1982 тоже несколько лет успешно клепали говно за 5 недель включая отправку рома на фаб картирджей и запуск линии, не в первый год это ебнулось.
Я пытался и сделал что-то по этому поводу. Но очень много отладки, заебался. Важно определять хотя бы с какой стороны столкновение, потому что объект Collider, который приходит в триггер, тебе ничего не расскажет.
какие есть идеи?
уже накидал, вроде стало получаться, но ситуация следующая, я подхожу к ней, нажимаю клавишу, и она должна повернуться на 90 градусов, пока что реализовал все кроме поворота - нужно чтобы игрок или что то еще не застряло во время открытия
нормально разве что в шарпе 7 версии. че сделать то хочешь? пример приведи.
всегда можно делать говно через делегаты.
Просто берёшь и присваиваешь переменной, всё работает.
Сам-то понял что написал?
После небольшого перерыва вернулся к этой проблеме. Вообще заебись вышло. даже не в 6-7 а в 11-15 раз быстрей текущего. Я уже стал упиратся в чтение и сувание в массивы, чем актуальную геометрию. Интересно как бы сделать сувание в массив быстрым-быстрым.
>>07137
А я забыл сказать. Спасибо за напоминание! Кстати, то что я оттуда спиздил хуже чем моё. Я себя почувствовал крайне умным.
как всегда. почитай документацию. если лень читать то видяшечки посмотри тематические. если даже это лень то можешь тупые вопросы в треде позадавать.
у юнити-хуюнити то нормас документация.
Unity in action.
>чтобы быстро влиться
Быстрее всего вливаешься просматривая чужой код. Начни отсюда:
https://unity3d.com/learn/tutorials
мимо-единственный-тру-программист
Щас не 82 год идиот, рынок в миллионы раз больше и растёт постоянно так что такая хуйня невозможна
Спасибо
Ты не видишь, что в юнити своя Queue с элементами одного класса?
Там тред мёртвый. Ну тебе сложно ответить? В доках об этом нет. Там магическим образом возвращают через var. А в методе так нельзя
в каком, блять, неймспейсе? что за чушь ты пишешь? гдее? ааа?!
>Ты не видишь, что в юнити своя Queue с элементами одного класса?
Дурачок, иди читай доки по C# https://docs.microsoft.com/ru-ru/dotnet/csharp/
И не возвращайся, пока не прочитаешь все от корки до корки.
Он его начала еще в самом первом юнититреде писать. До сих пор пишет.
Это хронический велосипедист.
>рынок в миллионы раз больше и растёт постоянно так что такая хуйня невозможна
Пузырь раздувается, все логично. Тогда он тоже рос пиздец как. И тоже каждый мудила со своими поделками лез, пока это все не ёбнулось и нинтенда не придумала современную консольную модель в виде анального рабства для компаний-разработчиков платформодержателем. Где платформодержатель приказывает компании как она должна делать свою игру и имеет право отменить её выход.
Ой блядь проснись, аналитик жопоголовый, ты обосрался
В 82 году было 3,5 компании с парой оверпрайс консолек и несколькими миллионами пользователей, на которые они высирали оверпрайс говно, из-за чего эти пользователи и перестали это говно покупать. ПОТОМУ ЧТО ОНО БЫЛО ОВЕРПРАЙС И ВЫБОРА НИХУЯ НЕ БЫЛО
Сейчас в триллионной индустрии сидит миллиард пользователей, в стиме, на десятках консолей, на миллионах мобилок, в социальных сетях и где хочешь блять, хоть у тебя на холодильнике, сидят и ебашат в свои любимые игры. Что там наебнется? Какой пузырь?
новая гта преестанет продаваться?
Люди перестанут в клаш оф кланс играть? В кэнди краш сага? В батл рояли в стиме? Корейцы перестанут в лолец играть? Сотни тысяч разрабов с голодными глазами перестанут игры делать и миллионы новых пользователей из развивающихся стран перестанут в них играть? Чё ты несешь сука, ты вообще думаешь чё ты пердишь тут?
Единственное что произойдет, и уже происходит, это то что стим превратится в гугл плей в котором 99.9% индюков будут разорятся потому что они клепают говно и не могут в маркетинг.
Иди нахуй отсюда, клоун ебаный
>было 3,5 компании
https://en.wikipedia.org/wiki/List_of_Atari_2600_games
> с парой оверпрайс консолек
https://en.wikipedia.org/wiki/Second_generation_of_video_game_consoles
Уровень аналитики /ra
Ну это естественно сравнимо с текущей индустрией, ага. Чё ещё пизданешь, мастер википедии? Может средние цены на игры сравним,а? А может перечислишь фритуплей игры в 82 году? Ах да, их небыло нихуя, точно, ты снова обосрался
rigidbody подвесь на триггер
Тупой примитивный быдло-даун:
https://www.youtube.com/watch?v=eIf3-aDTOOA
https://strangeioc.github.io/strangeioc/exec.html
Иди нахуй картошку копать в колхоз, упырок.
Мог бы, но пойдешь в колхоз. Быдлу там самое.
Ты к чему мне этот обучающий видосик для нубасов прислал, Маня? Если ты не можешь жить без замечательных видосиков от юнитеков, это еще не значит, что остальные не могут.
Я и так минимальную связность компонентов обеспечиваю в своих проектах.
В очередной раз убеждаюсь, что Юнити - это для школоты, дрочащей на новые фичи от юнитеков и их зажигательные выступления на конференциях. Реальные пацаны в интерпрайзе. Поскорее бы съебать от вас в интерпрайз.
На самом деле я уже давно написал его. Там уже полно клевых фич, вроде динамических обстаклов, автоматического определения укрытий, хранения данных в самом навмеше и управлением их из компонентов, гпу растеризации и прочего-прочего говна.
Мне недавно один мой постоянный пользователь написал "чето деревья не работают как надо" и тут то я обнаружил что юнити добавили возможность совать в деревья коллайдеры от чайлдов. ну охуеть теперь. когда начал исправлять это то понял что повсеместное обилие примитивных коллайдеров это пиздец. сел оптимизировать растеризацию хотябы сфер и капсул. попутно рефакторя приличный кусок старого кода. теперь вот всё это заработало, но надо соединить три куска нового кода в один большой и сунуть в старую часть.
жду не дождусь когда юнитеки сделают свой новый террейн. вот наверно веселья полные штаны то будет.
>>14569
да ладно на самом деле я начал писать далеко не в самый первый тред! где-то начиная c 5.6 версии я тут иногда появляться стал. и показывал я не только этот велосипед!
вообще может скоро покажу один забавный прототип игры, у меня тут появился один мой старый мудак полный желания реализовывать мои охуительные идеи.
Чего блять? То есть тебе нужна такая функция, которая вызывается каждый кадр, но чтобы вызывалась всего раз?
Нууу, наверное это void
Нет, таких функций в юнити нет. Но я слышал что нечто подобное есть в годоте. Попробуй перекатиться на этот движок.
> таких функций в юнити нет
Каких "таких"? Он же нихуя не объяснил что хочет. Тебе лишь бы лишний раз про годот высраться.
За щекою у тебя семен, вася.
А нахуя, анон?
bool run_once;
public float my_time;
void Udpate () {
if (Time.time == my_time && !run_once) {
MyFunction();
run_once = true;
}
И в любой момент времени вызывается и только один раз, охуенно же.
Да, твой Intel 8088 может не вытянуть в 60 фпс.
unity MVP погромист в треде
Ты в состоянии мысль сформулировать?
Что тебе нужно? Функция, вызываемая каждый кадр, но запускаемая вручную и вручную же останавливаемая?
Если да, то это корутина. Если нет, то попробуй сначала сам понять чего ты хочешь.
> Функция, вызываемая каждый кадр, но запускаемая вручную и вручную же останавливаемая?
> Если да, то это корутина.
Можно ещё прикреплять к объекту скрипт с апдейтом, а потом дестроить его, когда больше не нужен.
Держи, сам в каждом проэкте использую
public class Timer : MonoBehaviour {
public float time;
float elapsed;
void Update() {
if ((elapsed += Time.deltaTime) >= time) {
elapsed -= time;
SendMessage("OnTimer");
}
}
}
2 if-проверки в апдейте —далеко не то, о чём надо волноваться в случае 50000 объектов с апдейтом на сцене.
Надо поскорее тред до бамплимита довести. А то нас годотодауны обгоняют.
И начнётся! Потому что слать сообщения строками = быдлокодинг. Путь декларирует числовую константу ON_TIMER и посылает месседжем её.
Какие имеются популярные альтернативы?
Ну например у меня заскриптованная игра. Мне надо каждую дверь открывать немножко по разному, например. Для каждого монстра сделать разные скрипты.
C# подходит для написания игровых механик, но писать на нем игровые скрипты не очень удобно.
> Мне надо каждую дверь открывать немножко по разному, например
По разному это как? Под другим углом? С другой скоростью?
Делай нужные поля сериализационными и запросто один и тот же скрипт будет делать "немножко по разному" на разных объектах.
>Методы триде спокойно вызываются в объектах двадэ, не вызывая ошибки при компиляции.
Это говнюнити, сынок!
> Методы триде спокойно вызываются в объектах двадэ
Чего-чего? На 2д-ОБЪЕКТАХ 3д-метод и так спокойно вызовется, если на нём использовать необходимые компоненты, например бокс-коллайдеры вместо 2д-коллайдеров. Даже на 2д-объекте, да.
Это как купить ютуг вместо ботинка и жаловаться что на ногу не налезает.
Это понятно. Я у тебя и спрашиваю, чем у тебя будет отличаться открывание одной двери от открывания другой.
Если значением пары переменных, то делай их сериализуемыми.
Если чем-то сложнее, то делай разные методы.
Если вообще пиздец как отличаются, то пиши разные скрипты.
А то у тебя постановка задачи на уровне "хочу делать много скриптов, но не хочу, а то их много будет".
>А то у тебя постановка задачи на уровне "хочу делать много скриптов, но не хочу, а то их много будет".
У меня постановка задачи в том, что мне нужно писать скрипты внутри юнити. Не только для дверей. Двери это просто пример.
И в чём проблема их написать?
И что значит "писать скрипты внутри юнити"? Прям не в студии пишешь, и не в монодевелопе, а прямо в юнити?
Потому что C# - это не скрипты. Компоненты - общие для объектов, скрипты пишутся для каждого конкретного объекта.
Суть скриптов в быстрой итерации. На C# не удобно создавать и редактировать сотни мелких скриптов.
Делай задержку перед первым движением, либо делай чтобы они рандомно ждали пару секунд на каждой точке
> Потому что C# - это не скрипты
Называй как хочешь, суть не поменяется.
> скрипты пишутся для каждого конкретного объекта
поведаю тебе тайну — один и тот же скрипт (или как ты там их называешь) можно повесить на любое количество объектов.
> На C# не удобно создавать и редактировать сотни мелких скриптов
Создаёшь ты не "на C#", на С# ты их пишешь.
Так в чём у тебя проблема?
>Так в чём у тебя проблема?
Моя проблема - это твоя глупость
https://freegamedev.net/wiki/Scripting
> Моя проблема - это твоя глупость
Я же сказал, мне похуй как ты это называешь. Хоть скриптами, хоть евангелиями.
Так с какой бедой ты пришёл в тред?
>Нужно писать очень много очень мелких скриптов. Создавать MonoBehaviour на каждый чих и ждать полчаса рекомпиляции не хочется.
>Какие имеются популярные альтернативы?
> Нужно писать очень много очень мелких скриптов
Пиши не очень много.
> Создавать MonoBehaviour на каждый чих и ждать полчаса рекомпиляции не хочется
Не создавай на каждый чих.
Создаёшь много много функций внутри одного скрипта, запихиваешь их все в массив функций, и потом из массива вызываешь их по индексам.
> почему тут дают советы уровня
А какие ещё советы давать? Тут или годотошизик ошивается, или уечепидор, или пара нубасов. Тред на каникулах и отпусках, ничего не поделать.
Ты тупой? Ты вообще представляешь что такое заскриптованная игра? Квесты, РПГ, адвенчуры, многие заскриптованые шуторы.
Мне буквально нужно писать сценарий игры по шагам. Я не хочу писать тяжелые убер компоненты и городить изощреные системы там, где это не нужно.
> Я не хочу писать тяжелые убер компоненты и городить изощреные системы
Так не пиши и не городи. В чём проблема?
Ну я вижу что ты не хочешь писать MonoBehaviour на каждый чих. Ну так и не пиши. или тебя кто-то заставляет?
Как правило это все решается сериализацией и созданием универсальных скриптов для одинаковых типов объектов
Я незнаю почему ты этого не можешь понять
Давай приведи примерь про двери, какие ты хочешь отличия в функциональности двух дверей для которых нужно было бы писать новый скрипт
Скрипты.
>Как правило это все решается сериализацией и созданием универсальных скриптов для одинаковых типов объектов
Это решается, если можно сделать общую абстракцию компонента для объектов.
Скрипты нужны чтобы писать логику для каждого объекта. Компоненты и скрипты прямо противоположны.
Вот например в юнити сделали абстракции Rigidbody, Animator, Cinemachine.
Мне же нужны скрипты для каждого объекта. Я не могу сделать универсальную абстракцию каждого конкретного поведения.
> Компоненты и скрипты прямо противоположны
Вот только в юнити скрипт, который присоединён к объекту, считается его компонентом.
Я тебе ещё раз говорю, приведи конкретный пример двух дверей, о которых ты говорил выше, и какие функции они должны выполнять каждая
Да это либо жиробас, либо зелёный, который юньку два раза в жизни запускал.
Хотя скорее первое, потому что зелёный на прямые ответы уже давно бы ответил, а не крутил пластинку по кругу.
Проще будет купить специальный ассет для этого дела. Для простой игры подойдет Fungus.
Я на Фунгусе реализую диалоги персонажей и квесты. Можно быстро добавлять новые действия и логику переходов между блоками. Плюс, у тебя будет готовый компонент для вывода текста в любых мыслимых формах.
С чего ты взял что ему нужен ассет для диалогов и сюжета, он даже не писал какую ему игру надо делать
Речь не о том, как должна открываться дверь. Это 2 двери с разными сриптами. Например, из квеста.
Одна может открываться с заданными интервалами, Другая, например, может проверять инвентарь игрока и быть закрытой, пока игрок не выполнит какое-то условие.
> Одна может открываться с заданными интервалами, Другая, например, может проверять инвентарь игрока и быть закрытой, пока игрок не выполнит какое-то услови
Запросто делается одним скриптом.
Молодец. Речь о том, что задачи скриптов определяется конкретным сценарием, а не игровыми механиками.
И? Как это отменяет то, что я могу повесить один и тот же скрипт на несколько дверей и все они будут работать как я захочу? Какая-то с интервалами, какая-то с песнями и плясками?
Ты сам себе сложности создаёшь.
> Любую хуиту, которая у тебя в компонентах вызвать можно или Событие дернуть
Для этого есть банальная анимация.
Может это ему и нужно, лол.
ну смотри
есть класс Door
bool isLocked;
bool isOpen;
KeyType key;
bool autoOpening;
float interval;
и пишешь в скрипте все варианты взаимодействия там
с учетом всех этих условий. И проблем нет.
Понимаешь дверь это дверь. Ничего сверхъественного ты с ней не сможешь сделать. Она либо закрыта, либо открыта, либо заперта, у неё ограниченное количество характеристик.
И так с большинством других объектов.
Если что то более комплексное то делай наследование, например класс BaseEnemy, от него наследуется BaseBandit, от него например BanditLord и так далее, и в каждом скрипте прописывай что-то комплексное
Не можешь ты ничего повесить. Тебе нужно будет создавать кучу специальных компонентов со специальными поведениями такими, какие требует сюжет.
> Не можешь ты ничего повесить
И кто мне запретит? Беру скрипт и перетаскиваю на объект на сцене.
Говорю же, в Фунгусе делай.
Создаешь сценарий, создаешь в нем переменные. Сценарий опрашивает игрока bool IsHuitaInInventory(), bool IsQuestDone(), сохраняет в переменные результат.
Сценарий выполняется при контакте с дверью, проигрывает нужный блок, проверяет переменные.
Да епта ты говоришь об игровых системах общих для всех объектов этого типа.
Игровые скрипты это прямая противоположность. Скрипты создаются чтобы создать конкретное поведение объектов в конкретный момент игры.
Хорошо, посмотрю этот фунгус.
Уясни ты уже, что в контексте юнити это и есть "скрипт".
Ты тут к словам придираться пришёл или проблему решать?
И это поведение НЕ ДУБЛИРУЕТСЯ. Нельзя взять один скрипт и использовать его на другом объекте. Это уже будет не скрипт.
Давай ещё один пример приведу. Вот тебе например надо сделать скриптовую сценку - трое солдат выбегают в разные точки, один открывает дверь, второй кидает гранату.
Что я предлагаю:
Делаешь общий класс Soldier
делаешь в нем список структур Action с данными type, position, interactableObject,message
Вешаешь скрипт на 3 солдат, у одного в список вносишь Actions типа Move в позицию которую тебе надо, у второго вносишь Move потом Interact, подвешиваешь дверь и посылаешь message Open и т.д
Что ты предлагаешь:
Делаешь 3 класса Soldier1, Soldier2, Soldier3
Каждому пишешь вручную что надо делать
Теперь понятно в чём отличие?
Ты про StateMachineBehavior? Оно конечно будет работать, но попахивает каким-то извращением.
Ассетов для скриптования сюжетов/квестов хоть жопой жуй. Проще использовать готовое.
Сейчас он тебе скажет что ты предлагаешь писать классы, а ему нужны скрипты.
Ты ещё не понял что это шизик?
В Юнити ты не пишешь скрипты, ты пишешь код. Нормальный ёбаный код поверх тотально ебанутой на голову системы.
Я не думаю что он шизик, скорее гуманитарий, не видит механик и не может их систематизировать.
Ещё один блядь.
Это не скрипты это код
Это не код это программирование
Это не программирование это сишарп
Это не сишарп это магнитные волны в анусе на орбите юпитера блять
> Ты про StateMachineBehavior?
Да про обычную анимацию. Вот наглядный пример набросал.
Тут тебе и временная шкала, и доступ к свойствам компонентов. Расставляй себе ключи как хочешь.
Разделяешь дверь умеющую открываться и закрываться, делаешь интерфейс IActionListener. Делаешь базовый абстрактный класс ActionCondition который умеет дёргать IActionListener на том же объекте. Потом делаешь пачку разных реализаций ActionCondition. Всё. Дверь открывается пероидически? PeriodicActionCondition? Дверь открывается по предмету? CheckInventoryActionCondition. Бонус-трек - ты можешь скрыть за IActionListener что угодно и эти условия будут точно так же работать! Ты подменяешь дверь на сундук и большая часть кода не меняется! Абстрагировать дверь за неким AnimatedActionListener который в анимации будет дёргать дверь и выключать коллайдер - и у тебя дверь (или сундук) как таковые исчезают из кода.
Это ёбаная азбука программирования и самой базовой декомпозиции. Которой похоже ебучих УНИТИ ПОГРОМИСТОФФ никто не учит. Нет, их учат писать "скрипты" вместо программирования.
> Которой похоже ебучих УНИТИ ПОГРОМИСТОФФ никто не учит
Да этот гений вряд ли юнити даже скачивал. Уже сколько постов ноет что ему предлагают код, а не скрипты.
Ты не понимаешь, что есть 2 парадигмы разработки игр: это программирование путем создания игровых систем, и программирование путем скриптов.
Каждая имеет преимущества и недостатки и подходит для решения особых задач.
Например, ИИ в шутере лучше сделать системами, что-нибудь behaviour tree или GOAP. Скриптованные враги в шутерах не интересны. В jrpg же, наоборот, лучше будет простой заскриптованный ИИ.
Нет никакой парадигмы разработки путём скриптов, ты хуйню придумал. Не бывает блядь такого чтобы для каждого объекта в игре писался свой уникальный скрипт, надо конечным быть чтоб так делать
Не для каждого, а для которого нужно скриптовое поведение
А разработчики использующие скрипты-то и не знали, что они хуйню придумывают!
Так в юнити и так все и всегда используют скрипты, только ты заявляешь что "ваши скрипты - не скрипты".
Уже два часа мозги ебёшь, вместо того чтобы игры делать на скриптах.
>Так в юнити и так все и всегда используют скрипты
Потому что это пользовательские/программируемые компоненты, а не скрипты. Я имел ввиду скрипты в классическом понимании.
> это пользовательские/программируемые компоненты, а не скрипты
> "ваши скрипты - не скрипты"
О чём я и говорил.
Ну вот перед нами один из них.
>Нету таких разработчиков блядь
В серии elder scrolls используются скрипты для игровой логики.
В тес как раз таки сериализация на сериализации и сериализацией погоняет. Программисты написали базовые классы а потом художники просто данные туда по забивали и все. Ты хуйню несешь реально.
> В тес как раз таки сериализация на сериализации и сериализацией погоняет
Походу он даже не знает что это. Ему уже раз пять про сериализацию говорили, а он всё про Ерёму.
>>15363
Чем, ебанашечка, набор компонентов такого рода тебе не скрипт? Ты, дебилушка, понимаешь что для использования DSL (чем скрипты по сути и являются) это самый DSL сначала создаются, чтобы было этот самый Domain в котором мы оперируем. Скрипты они по определению относятся к data-driven подходу, компилировать C# намертво в игру не data-driven ни разу.
см>>15357
Другого ответа нет. Создаешь асьтрактный интерфейс и генерик-классы для каждого типа двери. Повторяющегося базового кода не будет, он будет на родителе. Даже плодить детей много не надо, можно группировать по субгруппам - "дверь открывается по предмету" - похуй какой предмет, один скрипт для всех таких дверей.
570x314, 0:08
Да за такой код у нас на хабре почки опускают
алсо какая занимательная проблема. для сферы максимальный угол посчитать было легко, там просто трешхолд по высоте. а вот для повёрнутого элипса как-то дохуя сложно и у меня не хватает на это мозгов. поэтому я просто посчитал для каждого сегмента угол. но в итоге иногда можно увидеть такую вот залупу слева.
>>15290
надо делится своими достижениями, отвечать на конструктивные вопросы и быть резиновой уточкой для тупых вопросов.
>>15251
один хуй после конпеляции проекта там будут нормальные делегаты. не представляю чего тут на сендмессенджи бузят. как будто в эдиторе игры играют.
бгг. хорошо. я скажу самое популярное решение для скриптинга в юнити: ты, короче, ебошиш как можешь. хорошо ебошиш, пока что-то не сломается. а потом когда видно что получается хуйня ты садишся, вдумчиво смотришь почему же так и садишься пишешь уже как надо учитывая ошибки прошлого. и стараешься больше их не делать. желательно никогда.
рекомендую. я всегда так делаю. до сих пор эта тактика скриптинга меня ни разу не подводила.
>Не различает программирование и скриптинг
Вот же дурак. Например, в уече ты ПРОГРАММИРУЕШЬ на C++, а СКРИПТУЕШЬ на блюпринтах.
Недоразумения из-за того, что в юнити некорректно используется термины "скрипт", "скриптинг".
хуйня-говно. пишешь код, он что-то делает. как там кто называет процесс изложения глупой машине чё ты от неё хочешь ващепохуй. когда тебя спрашивают "че ты там делаешь" ты что отвечаешь? "я скриптую"? "я погромирую"? правильный ответ - "я делаю хуйню".
и да, спагетти в уе для дегенератов. я называю это не скриптованием, я называю это деградацией. и ты называй.
Ящитаю что концептуальное разделение на программирование игровых систем и игровых скриптов имеет смысл.
типа чем оно различается то? если погромист через код говорит "хочу чтобы хуй завернулся в калач" то это погромирование, а если артист через спагетти говорит "хочу чтобы хуй завернулся в красивый калач" то это скриптование? в чем у тебя там различие то? ты давай вот раз выдвигаешь теорию то ещё и раскрывай её.
в чем отличие то? в методах изложения? в базовой профессии? может быть в цели? типа пишешь игру это скриптование, пишешь инструмент это погромирование? а может позе в которой ты это делаешь?
Да что ты пристал к этим дверям? Как насчет квестов для РПГ? Ты можешь сделать мощную систему квестов, которая бы учитывала все возможные варианты наперед, или для каждого квеста писать небольшой скриптик.
Скрипт же является ассетом с кодом.
>Ты можешь сделать мощную систему квестов, которая бы учитывала все возможные варианты наперед
Я могу сделать мощную систему квестов, которая бы учитывала все возможные варианты наперед
Речь скорее всего идёт о создании игровых сценариев, то есть ему нужен инструментарий для выстраивания иерархии игровых событий. И вопрос был о том, есть ли в юнити кнопка "сделать игру".
Ответ: из коробки нет, надо купить ассетна сижиперсии.
А я и не сплю.webm
>нужны скрипты
>Речь скорее всего идёт о создании игровых сценариев
Ебать ты переводчик
А я и спрашивал популярные решения/ассеты. Есть, например, fungus, визуальный скриптинг заточенный под новеллы, адвенчуры.
Действительно. Простил всех в в треде!
Он хочет редактор мира как у беседки, чтоб уже готовое было, просто забиваешь диалоги/анимации и всё, только он сам этого понять и объяснить не мог и всем доказывал что программисты этот контент пишут а не художники (парадигма разработки скриптами понел да), а ему тут всем тредом пытались объяснить что программисты просто написали редактор, и всё, на этом их работа закончилась, и что ему нужно такой же редактор писать для своей игры и в него уже контент забивать
Чего ещё ожидать от гододетей. Игры они не делают, остаётся только срать в юнити-тредах, где кто-то делает игры. От зависти ли или просто от тупости.
А теперь ты берёшь и резко смотришь значения это слова.
Коттедж с бассеином?
Пока что это у тебя хорошо получается.
Я просто спросил за скриптинг в юнити.
Не знаешь, так молчи. Нет, нужно поумничать.
Что думаешь анон? Можно встраивать в свои игрушки и майнить монеро за счет компов пользователей. Вполне себе неплохая схема монетизации если её оглашать при этом
>скриптинг в юнити
http://xgu.ru/wiki/Скриптинг
Такой же как и везде. Берёшь и без задней мысли пишешь код.
Gameobject.FindGameObjectsWithTag
У годанов так же.
https://blogs.unity3d.com/2018/07/10/2018-2-is-now-available
NullReferenceException: Object reference not set to an instance of an object
как пофиксить?
Сохраняться референс объекта, ибо найти выключенный GO можно лишь через полный поиск по ресурсам
Нед
https://docs.unity3d.com/ScriptReference/GameObject.Find.html
"This function only returns active GameObjects. If no GameObject with name can be found, null is returned. If name contains a '/' character, it traverses the hierarchy like a path name."
Двачую. ФПС сразу до двух просаживается. А сели такое вызвать дважды, то может и видюха сгореть!
вводе мышки то зачем? матрицы то тебе и не нужны, сделай Quaternion который крутит на текущий верх и перемножай на него все векторы которые тебе там надо.
хотя тут уже были личности которые пытались планеты, может советы получше дадут, если появятся.
>>15700
а вдруг он не на асфальте дрифтует? и машинки у него весят не дохуилион как это надо для стандартных настроек?
Я к тому что настройки которые делают автомобиль автомобилем кроются не в трении
а я к тому что хуй его знает что он там наворотил! надо сначала выудить подробности.
может там игра про дрифтование игрушечных машинок в песочнице? а может игра про дрифтование на телегах? а может тут ещё и завоулированный вопрос как с этими дверями "двери тут просто для примера". и вопрос вовсе не касается колёс?
854x480, 0:16
Объясните тупому.
Посмотрел видосик, скачал UNITY SOLID GOD TIER PROJECT:
https://github.com/DanVioletSagmiller/UnitySOLID/tree/master/Trunk/Demo/Chain Reaction SOLID/Chain Reaction Solid
Есть реальный смысл в это задрочиться и построить таким образом свой проект? Или больше времени уйдёт на конфигурацию всего этого дела.
Это омерзительная параша и анти-ООП, от одного взгляда на которую у меня из глаз идет кровь.
>Есть реальный смысл в это задрочиться и построить таким образом свой проект?
Нет. Знаю только, что подобным страдают в больших игровых студиях, но там свои подходы используют.
Тебе стоит использовать какие-то основные подходы для улучшения читабельности кода, но только по мере разрастания проекта. Увидел, что класс твоего персонажа стал слишком большим? Разбей его на несколько классов, чтобы было проще (если есть смысл).
разве что если речь идёт про первую половину видео и ты недостаточно наступал на грабли чтобы узнать это уже самостоятельно. там да, все советы где он выражал примеры с бобом это он за тебя на грабли наступал. а вторая половина уже более специфичная.
Ухх, бля!
>речь идёт про первую половину видео
там вообще никакой инфы нету.
выступление о том, как какой-то дурачок нахватался вершков и продвигает анти-паттерны.
>>15722
>>15778
>>15781
А как быть с тестированием? Благодаря всему этому у него миллисекунды занимает отдельный тест, и он может проверить всё без загрузки Юнити.
Алсо, отцы .Net и Unity, что можете подсказать по поводу архитектуры? Какие ещё есть варианты? Может, что-то попроще этого.
Скоро начинаю большой проект, но сначала хочу все варианты попробовать на мелких.
И я не про AAA, а просто собираюсь наконец сделать объёмную production-ready игру, и отправить в стим. И чтобы я был уверен в работе каждого отдельного компонента перед каждым релизом.
Почаще используй СкриптаблеОбжект. Для конфигов, списков и подобного. И ещё UnityEvent.
И не просто sendmessage, а со строковым аргументом. Всё равно при конпеляции в упити сработает кнопка "зделоть зоебись".
Сам иногда испольщую UnityEvent только для декларативного выполнения каких-то действий. Такой примитивный визуальный скриптинг на костылях.
>>15818
Тупые докладчики даже не понимают суть dependency injection.
Dependency injection значит лишь то, что объекты с которыми взаимодействует этот объект указывают не во время конпеляции, а во время выполнения. Только и всего.
Например:
// без DI
class MyScript : MonoBehaviour {
void Start() {
GameObject.Find("OBJECT").SendMessage("message");
}
}
// c DI
class MyScript : MonoBehaviour {
public GameObject obj;
void Start() {
obj.SendMessage("message");
}
}
О чем они говорят на самом деле называется service locator, известный анти-паттерн.
Вот еще более очевидный пример
// без DI
class Text {
string text;
public void Print() {
IPrinter printer = new FilePrinter("c:\file.txt");
printer.Print(this.text);
}
}
// с DI
class Text {
string text;
public void Print(IPrinter printer) {
printer.Print(this.text);
}
}
Тогда не обязательно, SOLID обычно для проекта над которым работают несколько кодеров.
Но можешь все-равно посмотреть на IoC
>известный анти-паттерн.
Вот жеж даун тупой.
Твой мать, что тебя родила - анти-паттерн этого мира и враг народа
Services.Instance.GetComponent<ISocialService>();
Простенько и в рамках юнити-архитектуры.
Антипаттерщики.
Любому, кто посмотрит на этот код с локатарами, сразу становится очевидно, что что-то не так с этим говно. Этот код какой-то нечистый. От этого кода ВОНЯЕТ.
>FindObjectOfType, FindObjectWithTag
Отних фпс проседает до 15, это же юнитигомно, приходится изъебываться как пидарасам.
Про себя наверное
Хуня это тотальная.
А в плеймаркете я вижу массово в говноиграх даже самый конченный разраб умеет вставлять в свою игру этот джойстик. При том судя по его игре он вообще НИХУЯ не умеет делать только ассеты собирать готовые.
Вот не прет мне с джойстиком. Если в кратце, как я это вижу:
1. Есть стандартынй фпс-контроллер от юнити.
2. Есть "кросплатформинпут" какая-то хуевина, которую на экран добавляешь и она какие-то две равноразмерные полупрозрачные рамки на экран добавляет.
А че дальше то? Как их связать чтоб работало как джойстик?
Короче аноны поведайте откуда школьники на андроид берут свои джойстики и как их собирают в игру прикрепляют своему управляемому персонажу.
p.s. я смотрел смотрел туторы на ютубе, не надо мне тут. Просто там слишком сложная хуйня изобретается с нуля, это не то. Сука не могу допереть пиздец заебало.
Прямо на перса вешай канвас с кнопочками и скрипт управления и пох - есть перс в сцене - есть и управлялка.
Хочу леветирующего перса сделать.
Не знаю как это загуглить.
Нихуя не понял. Только что скачал вашу дрочильню. Скажи хоть про что почитать, чтобы это реализовать.
>Просто там слишком сложная хуйня изобретается с нуля, это не то
Это кажется, что сложно. Там ничего сложного. Я так написал свой джойстик на основе дефолтной реализации, игроки довольны.
> Только что скачал вашу дрочильню
И сразу решил делать хуйню не по уровню?
Для тебя сами юнитеки наделали кучу разжёванный туториалов.
> И сразу решил делать хуйню не по уровню?
А тебе-то что, блядь? Охуеть заявление. Просто скажи, про что почитать, чтобы получить информацию, необходимую для реализации задачи.
> Охуеть заявление
Ну это примерно как сказать "посоны, решил вот выучить немецкий, скачал Шлегеля и чёто нихуя не понимаю".
С азов начинать надо.
> Просто скажи, про что почитать, чтобы получить информацию, необходимую для реализации задачи
Про азы. В шапке достаточно ссылок.
> Ну это примерно как сказать "посоны, решил вот выучить немецкий, скачал Шлегеля и чёто нихуя не понимаю"
А с чего ты взял, что я решил выучить немецкий, мань? Я знаю немецкий, но не знаю слов по сабжу, лол. Просто скажи, что мне нужно конкретно названия, чтобы я мог в доках найти, ну ебана.
> А с чего ты взял, что я решил выучить немецкий, мань?
Совсем в аналогии не можешь?
Тогда не удивительно что ты шапку не осилил.
>Про азы. В шапке достаточно ссылок.
Это
> Совсем в аналогии не можешь?
> Я знаю немецкий, но не знаю слов по сабжу
Ты - видимо да, если не тралишь. Я могу в кодинг, блядь, да и изначально какая разница, если я прямо попросил. Тебе-то что от того, как я этим воспользуюсь? К чему вся эта демагогия?
> не удивительно что ты шапку не осилил
В шапке доки. Те самые, из которых я хочу прочесть инфу, знать бы что именно из них читать.
Обколются своими generic классами, а потом ябут друг друга в жопы!
Чо хошь то и сереализуй, можешь любые сериализаторы с nuget'а подключать
> Как заставить эти самые партикалы двигаться за анимированым мешем?
Сделать меш родителем партиклов, например.
Если сами партиклы настроены локально, само собой.
Simulation space - local, scaling mode - local, Render aligment - local, всё равно не работает, партикалы просто стоят на месте. Анимации делал в блендере, если это имеет знание.
> партикалы просто стоят на месте
Гифку/видео сделать могёшь? Желательно чтобы зацепить главный свиток партикла.
> меш - один обьект
Ну тогда не удивительно.
Тебе нужны локальные позиции именно глаз/головы, и под них уже подсунуть эти огни.
Судя по видео, у тебя меш с костями, можешь попробовать найти кости на глазницах и прихуячить огни туда. Но это велосипед в квадрате, и то не факт что получится.
Да не за что.
Вариант а) Есть стандартный или чей-то ассет к примеру FPS Controller. Вы - запихнули "как было", главное шоб работало. Иметь в итоге пару лишних функций, всяких заебов лишних в коде, но зато работает и время не тратится на перфекционизм. Когда понадобится зато потом что-то исправить приходится разбираться в этих дебрях чужой логики.
Вариант б)Написать по аналогии свой FPS Controller без лишней хуйни, пространств имен которые тебе нафиг не сдались, всяких вещей, которые так хитро написаны, что вы до конца не врубаетесь. Иметь полный контроль и понимание. Но в итоге на это надо время, вы его тратите, а таких вещей мелких может быть в игре с десяток.
Мне просто интересно как вы относитесь к подобным ситуациям и как сильно запариваетесь.
Сам иди, тебя вообще кто сюда позвал? Че ты тут мне указываешь.
Я к первому варианту чаще прибегаю, но я делаю простую 2д хуйню, так что мне проще.
>Для одиночной разработки проще всего создать что-то вроде синглтона Services
Проще всего передавать объекты через параметры.
Зависит от ситуации. Если есть время велосипедить, то почему бы и нет.
А если дедлайн на носу, то не до этого.
ну так ты это. потереби настройки фрикшена. или материал какой на пол ебани. я не думаю что тебе вообще можно дать какие-то настройки которые тебе полезны будут.
Ты дурак? Ты racing sim изкарпки вздумал сделать?
Учебник физики 9-го класса в зубы и потом пиши свои кастомные условия.
Где-то ещё видел что некоторые параметры нужно постоянно подкручивать во время езды.
Не делать ничего во вложенных тасках
какой трюк провернуть то хочешь? юнити не дает пользоватся своим API не в основных тредах почти. поэтому сделай говно в других тредах, вернись в основной и закончи там.
Попробую, спасибо.
а хуй знает что у тебя там менеджер делает. если генерирует какие-то изменения для террейна или сам террейн то можешь из побочных тредов делать очередь из того что надо сделать в основном треде. и в основном треде уже через корутины или какую другую хуйню расчехлять и применять эти изменения.
вообще советую подождать с этим. там в следующей версии новый террейн подъедет вроде как, хуй его знает чё они там сделают но обещают перфоманс.
да ну не пизди если картинки начали показывать то уже вот совсем скоро вот почти уже!
https://youtu.be/CWgi6hE26ig?t=1976 вон даже видео показали! ух заживём! и нестед префабы! и мемори профайлер! и новая хуйня для инпута! и даже чето там с нетворком шабуршат. прямо всё что у них просили лет этак пять тому назад. ещё бы сериализацию сделали по человечески так вообще заебись стало бы.
Сука тупая, я же уже сказал 2 раза - у тебя есть возможностьь сменить subset .NET на 4.x и любую либу сериализации взять с нюгета
да что ты. мне ты нихуя не говорил. нахуй иди.
а как насчет кейса когда я пишу код другим людям? м? вот выкладываю я в ассет стор свой код, мне что, жирным писать на нём "эта хуйня заработает только если сделаешь хуйню"? или когда расширяешь ебучий интерфейс юнити который нормально работает только с тем что может сериализовать тут то что сделать предложишь? м? нет, эта жопа по имени "сериализация в юнити" неотвратима, если не хочется ещё большей жопы.
Вот что конкуренция животворящая делает, то анриал что-то выкатил, то говнюнька, они скоро платить нам будут за юзанье движков.
Лучше бы они тратили деньги не на эти бессмысленные конференции каждый месяц, а на разработку движка.
Такое чувство, что в юнити работает целый штат маркетологов, а в грязном пыльном чулане сидит 2 программиста, которые собственно и пилят движок.
> в грязном пыльном чулане сидит 2 программиста, которые собственно и пилят движок
Не в таком уж и пыльном, попрошу вас.
один из двух программистов
Да ты охуел, за рубежом доллар зарабатывать.
Накатну-ка я валютному контролю письмецо, давно у нас кто-то на горлышко не приседал.
а я бесплатно раздаю свой сраный навмеш. имею много фана. иногда работодатели сами приходят и работу предлагают на фоне этого, кстати.
хотя да надо бы продать что-нибудь.
>любую либу сериализации взять с нюгета
Дурак, речь о сериализации полей юнити объектов в редакторе.
1280x1024, 0:39
Двощ, почему у меня перс с этим кодом в какой-то момент перестает двигаться с одну из сторон? Как пофиксить?
В гугле есть рабочий вариант, но с ним он скользит как по льду.
вообще хуй его знает, я внимательно не вчитывался. но хочу поинтересоваться.
а нахуй ты сделал значения public, если ты всё равно переназначаешь их на старте? почему ты ловишь момент нажатия и отпускания кнопки, вместо того чтобы смотреть просто когда кнопка нажата? почему пользуеьшся кейкодами, вместо инпут.гетаксис? почему игрок двигается до того как получит апдейт инпута?
> а нахуй ты сделал
Я не сделал, я спиздил из видоса. У меня тот же вопрос к аргументу в функции движения. Мб он дальше в видосах что-то с этим мутит.
> вместо того чтобы смотреть просто когда кнопка нажата
Как?
ты это. какие-то хуёвые видосы смотришь.
про аксисы что же ты сам не загуглишь то? https://docs.unity3d.com/ScriptReference/Input.GetAxis.html вот хуяк аксис. имена и прочую хуйню можно настроить в Edit > ProjectSettings > Input
Про класс инпута советую почитать повнимательней, раз ты собрался какую-то 2д хуйню творить.
> про аксисы что же ты сам не загуглишь то?
Ну, я пробовал какой-то варик с аксисами, говорю же. Только с ними перс скользит, когда отпускешь кнопку. Да и, кстати, иногда один хуй стопоется.
float move = Input.GetAxis("Horizontal");
rb.velocity = new Vector2(move * speedX, rb.velocity.y);
>когда отпускешь кнопку
дык бери GetAxisRaw
и это. Update не для манипуляций с физоном.
а что там у тебя стопается - сам дебаж свою хуйню. проверь правильное ли ты говно скармливаешь юнити. если виноват не инпут то проверь по кадрам что там происходит.
> дык бери GetAxisRaw
Благодарю, братишка.
> Update не для манипуляций с физоном.
Взял FixedUpdate. Оно?
Кто?
обиделся :(
сук пздц ((
Ну опять же нихуя нормального не гуглится. Вот эту хуйню читаю https://unity3d.com/ru/learn/tutorials/topics/graphics/unwrapping-and-chart-reduction?playlist=17102 и все, что можно понять, что если выбрать режим "UV Charts", то будут видны какие-то цветные квадратики, которые чего-то там. Просто охуеть. Может, уже кто-нибудь подскажет, как правильно гуглить это дерьмо? Я уже целый день пытаюсь хоть что-нибудь найти по этой теме. В блендере создавать UV умею, можно ли как-то оттуда импортировать в юнити? В гугле опять же нихуя не найти.
Представь, что есть 3д-модель головы, и есть голова, нарисованная просто на картинке, и ты просто применяешь текстуру в юнити перемещением мышки на модель. Как думаешь, все детали головы будут сразу же изображаться на своих местах? Понятно, что нет, и тут надо вручную устанавливать, где и какие куски будут отображаться. Это все, что мне надо узнать. Тема элементарная, а материалов - вообще нихуя нет.
Прикольный у тебя монстр. Я б поиграл.
Кстати, а где бекграунд такой брал? Это что-то из бесплатных?
Взгляд обывателя: да нормально машина ездит. Я вообще не прочитав сути сначала глянул видео и ничего плохого не заметил. Потом прочитал и снова пересмотрел - нихуа. Не парься
Ну охуеть. Пойди спроси у биологички как решать квадратные уравнения. Она же тоже препод.
Мне нада именно дрифт прост. Ну знаешь, жучка на месте покрутить там...
Думаешь, я не гуглил эту тему?
Запрос "unity uv unwrap" выдает только ссылки на всякие говнофорумы, где спрашивают про это. Ни одного внятного ответа типа "это делается в такой-то вкладке" нет. Возможно, uv не создается, а импортируется откуда-то. Но блять даже запрос "unity uv import" тоже нихуя не выдает. Может, ты уже скажешь, как у тебя получается настраивать текстуры именно в юнити? Я думаю, не сложно будет сказать что-то типа "это делается в такой-то вкладке".
>>16424
Охуительные аналогии. Это как если бы я спросил у биологички, почему при фотосинтезе выделяется кислород, она бы мне ответила "тебе к химикам, это не по моей теме".
То есть, uv привязывается к самому 3д-объекту? Ну вот, я даже не видел, чтобы это было где-то написано. Хорошо, попробую.
>дура
Вот это обидно было.
>Вот это обидно было.
да забей на этих петухов. У нас, геймдеверов, таких вопросов будет еще много.
>uv привязывается к самому 3д-объекту
А цвет пикселей привязывается к самой текстуре, прикинь?
Съеби отсюда, ньюфаг.
4Кб
Когда враг наносит урон одному персонажу, то урон уменьшается у обоих. Как это исправить?
отобой, я пиздец затупан.
if(x < blizko)
Ну загоняй их в массив, а там уже смотри какой ближе
IOrderedEnumerable<T> OrderByDistance<T>(T[] array, Vector3 point) where T:Component
{ return array.OrderBy (x => (x.transform.position - point).sqrMagnitude); }
Чёт я не догнал. Это метод? А чего бы не написать так:
IOrderedEnumerable<Component> OrderByDistance<Component>(Component[] array, Vector3 point)
{ return array.OrderBy (x => (x.transform.position - point).sqrMagnitude); }
Да даже ещё короче можно. Вроде Component можно где-то не писать.
А зачем тут Component вообще?
IOrderedEnumerable<Transform> OrderByDistance(Transform[] array, Vector3 point)
{ return array.OrderBy (x => (x.position - point).sqrMagnitude); }
А вот так будет работать?
public static IOrderedEnumerable<Transform> OrderByDistance(this Transform[] array, Vector3 point)
{ return array.OrderBy (x => (x.position - point).sqrMagnitude); }
> this Transform[] array
Чего-чего блять? Ты создаёшь массив трансформов собственного же объекта? Ёбом токнуть?
всмысле чтобы так делать:
Transform[] array = new Transform[]{...};
var sorted = array.OrderByDistance(Vector3.zero);
Расширения мазафака!
Не, ну делай как тебе надо. Я вообще не пойму нахуй тебе велосипедить всего лишь для определения ближайшего объекта по тегу.
Я бы загонял вышеуказанным интерфейсом все объекты в массив, а потом его перебирал.
> почему ты так написал
Ну потому что у меня так в моём коде, лол. Я там, правда, потом ещё кое-какие махинации делают, но в массив загоняю и упорядочиваю именно так.
Ну понятно тогда.
Маска, бленд текстур по ней. Или разные материалы.
>нестед префабы
Сколько лет они были главной проблемой? 10? Ну вот они ещё столько же будут раскачиваться. Потом забросят на полпути как было с каждой новой фичей.
>и новая хуйня для инпута!
Они про него года два говорят, никаких движений за это время не сделано. Они даже выпустили "превью" которые в принципе невозможно использовать, кек.
>даже чето там с нетворком шабуршат
Они с 5.0 шебуршат. Забросили в районе 5.2, в этот раз будет то же самое. Много шума, сделают какую нибудь базу - и забросят.
>>16122
Вариант а в принципе не жизнеспособен - тебе надо интегрировать контроллер в свою архитектуру что обычно невозможно без переписывания (код типичных ассетов - тотальный кал). Не проблема для паршивой индишатины или ассетфлипа конечно. Можно использовать только для того что работает по принципу "кинул и забыл" и с чем тебе не придётся взаимодействовать.
Столько усилий, чтобы опитимизировать простой платформер с десятком активных объектов.
Производительность C# вообще пушка: не используйте вектора, не двигайте объекты, не используйте Update
Юнити и правда настолько бесполезный?
>Юнити и правда настолько бесполезный?
Да, не пользуйся им, скрой тред и не заходи сюда больше.
Есть много скриптовых языков специально оптимизированных для игр. Нет, давайте возьмем C#, который в принципе создавался для других задач и не подходит для производительных реалтайм приложений. Что может пойти не так?
>Сколько лет они были главной проблемой?
я бы не сказал чтобы они были главной проблемой. я бы не сказал что вообще можно выделить главные проблемы. можно конечно перечислить дохуилион старых притензий, но то что показали лучше чем есть, хули.
>сделают какую нибудь базу - и забросят.
да ладно главное что постоянно возвращаются. если она станет более юзабельная то я только за. сейчас самой высокой прослойкой этой абстракции невозможно пользоватся.
>>16785
>Unite 16
половина советов оттуда уже не валидна. форич поменяли, трансформ и так уже кешируется
класс с векторной математикой они конечно могли и получше написать, да. да и хуй с этим.
Хочешь быстро - используй шейдеры, а из скрипта текстуру теребить быстро у тебя никогда не получится.
>Столько усилий, чтобы
снять видос. Платформер бы и так не тормозил, а кеширование трансформа и в более сложных проектах давало такой гигантский прирост производительности, что про него можно было бы и не вспоминать.
> коей ты, естественно, не являешься?
Мне зарплату платят :3
>>16785
То не C#, то УНИТИ и вызовы между нативным и управляемым кодом.
>>16796
Какая нибудь LUA намного медленней C#.
>>16798
> но то что показали лучше чем есть, хули.
Они много что показывали. Разговор может идти только когда это будет завершено и готово к использованию.
> главное что постоянно возвращаются
Когда они возвращались к сетевому коду после 5.2? Спойлер: NIKOGDA. Они решили забросить обещанное и всё переписать. Опять.
>>16788
В прошлом он генерировал мусор. Вроде поправили года два назад.
А ты сделай бешовный стриминг на УНИТИ, посмотрим что не будет тормозить. Загрузка сцены сделана через такой анус что в некоторых случаях ручная сериализация в XML работает быстрей. Алсо, при загрузке есть синхронный этап вызывающий явно видимый разрыв.
>Они много что показывали. Разговор может идти только когда это будет завершено и готово к использованию.
лол когда ты последний раз видел в сфере погромирования инструменты которые завершены и готовы к использованию? сфера в которой ничего вообще никогда не готово до конца.
>Когда они возвращались к сетевому коду после 5.2?
на самом деле возвращались. я помню. написали какое-то корявое лобби.
>Какая нибудь LUA намного медленней C#
В бесмысленных бенчмарках.
Для игровых скриптов нужен язык ТОЛЬКО с подсчетом ссылок, а не сборщиком мусора. Интерпретируемость тоже является дополнительным плюсом, т.к. можно редактировать код в реальном времени.
В юнити нужно писать на C# не так, как это планировалось, а с кучей хаков. Это просто грязный, неприятный опыт хакания языка для задач под которые он не предназачен. Вся эта головная с мусором, пулами. Зачем это? Почему не сделать так, чтобы просто работало быстро?
Ты дурак? Я кажется ясно написал, что GC неприемлем для риалтаймовых приложений.
Как только тебе сталкиваешься с задачей написать высокопроизведительное риалтайм-приложение, ты сталкиваешься с куче GC-проблем, и приходится люто изъебываться и хакать язык.
что за чертовщину ты пишешь? какие нахуй хаки? не хочешь чтобы GC срал - не плоди сущьности. пользуйся массивами, структами, хуюктами, всем что не генерирует мусор.
Это невозможно. Сам дизайн языка и библиотек спроектирован с расчетом на создание мусора.
Не создавать мусор, значит использовать язык не так, как задуманно. Значит не использовать большинство возможностей. Создавать себе трудности.
на создание и сразу его собирание. понимаешь? не понимаешь? у шарпа довольно могущественный сборщик мусора и пиздец случается только если ты сам его устроил.
вообще. хули ты тут раскудахтался то? ты давай примеры приводи, как так тебя там шарп ограничивает. будем рассмативать что-то конкретное. а то развелось тут школьников.
>FindObjectOfType, FindObjectWithTag
>Отних фпс проседает до 15, это же юнитигомно, приходится изъебываться как пидарасам.
Жестокая правда
Ты тупой? GC вызывает лаги в игре. Создание любых объектов вызывает лаги в игре. Создание объектов, в языке который спроектирован для создания множества объектов.
Для обхода этого ограничения нужно не создавать объекты в языке, который полностью задизайнен под создание объектов.
Ты не понимаешь всей асбурдности происходящего? C# и любой другой GC язык просто не подходит для игор. Для игр нужные специально спроектированные под эти задачи языки.
Под хаканием языка я имею ввиду решение задач не традиционным для данного языка способом, а нестандартными, "неправильными" способами ради повышения производительности. То есть использовать язык не так, как это задумано.
А если ещ и майнить при этом, то вообще видюха сгорит!
Юнитидаун уже третий месяц пилит игру мечты и внезапно оказалось, что GC у него тормозит процесс.
Во дела! Давайте же пожелаем юнитидауну поскорее узнать о тредах в сишарпе.
Псоны, как узнать что корутина отработала? Приходится костылить с bool'ом, но может всё же как-то корутина отчитывается что вернула свой IEnumerator и это можно как-то отследить?
Ссылка прилипла, пардон.
Ну просто сборка мусора занимает столько-то микросекунд времени, которые прибавляются к времени твоего фрейма. Чем тяжелее твоя игра, тем заметнее будут фризы.
жаль только в тредах хуй вместо API юнити. а ещё компут шейдоры есть конечно же. хуяк и несколько терафлопсов если немного попердолится.
>>16890
ты давай детали рассказывай чё ты там делать собрался. так то хули, например делегатом каллбэк делай.
>>16891
сколько сделал то?
вообще о байтоёбле. вот делаю я растеризацию этих ебучих деревьев. уже какие только хитрости в ход пошли. биты смещаю, байтики в структах считаю, обжекты пулю. ух.
картинку забыл. вот чтобы сделать две ебучие дырки на земле надо сделать много интересных вещей.
> ты давай детали рассказывай чё ты там делать собрался
Ну вот, например, мне надо запустить корутину (из другой корутины), которая в цикле выкручивает альфа-канал SpriteRenderer'а из ноля в единицу за три секунды. А может и не за три. Короче, дальнейшее действие мне нужно сделать только после того, как эта корутина отработает.
Пока делаю так - создаю булеву переменную yoba, в конце корутины присваиваю ей true, а после самого запуска корутины ебошу while (!yoba){yield return null;}
То есть этот цикл крутится пока корутина не отработает, затем я из цикла вылетаю и иду дальше.
Оно-то работает, но меня не покидает чувство что я пиздец велосипедю.
со мной тут списался один из моих постоянных клиентов и теперь багрепорты шлёт а я и не против.
>>16911
да вообще так то нормальное решение.
но вообще ты можешь просто вызывать корутину в теле другой корутины. они же последовательно выполняются.
как например тут https://answers.unity.com/questions/228150/hold-or-wait-while-coroutine-finishes.html
или если хочешь фанси-шманси то такая хуйня есть https://docs.unity3d.com/ScriptReference/WaitUntil.html
Гляну, спасибо.
>со мной тут списался один из моих постоянных клиентов и теперь багрепорты шлёт а я и не против.
Постоянных клиентов чего?
Для 60 фпс время одного кадра - 16 мс. Сборка мусора например занимает 100 мс: 6 кадров как с куста. И так раз в N секунд. Энджой ер mono вместо скриптового языка.
>>16936
вообще когда я начал его делать то юнитевский навмеш наже не мог генерится в рантайме. а так. да в общем-то дохуя всего. с ним очень уж сложно делать ИИ.
нет возможности регистрировать свой контент на навмеше, чтобы например вернуть за один заход удалённость ближайших объектов нужного типа на графе навмеша. чтобы хоп негр каждые пол секунды проверял нет ли где поблизости грибочков а если рядом есть и жрать хочет то пойти собрать ближайший и сожрать.
нет возможности возвращать какую-то информацию при генерации пути через какой-то участок навмеша. видеорелейтед. агент проверяет может ли он пройти по синей зоне, ссылку на синюю зону имеет кнопка, а при попытке прохождения через синюю зону агенту сообщается где эта кнопка.
нет возможности задавать свои правила генерации оффмеш линков.
и по моему там до сих пор не сделали всякое клёвое говно вроде нахождения ближайшего места встречи двух агентов. или маршрута убегания откуда-то. (у меня тоже нету но я хотя-бы это поменять могу довольно легко)
в конце концов нет возможности переиспользовать информацию для генерации собственного говна. например на скриншоте хопа немного поколдовал с существующими вокселями и у меня есть и карта укрытий и полуукрытий. и возможность взять несколько ближайших доступных для перемещения точек и например протестировать видимость для них. мегаполезно. и всякие мелочи вроде рэйкастинга на навмеше в юнити по моему тоже не завезли.
А игру то к этому всему не сделал?
На этом этапе есть смысл доработать, сделать нормальную документацию и выложить в ассет стор, хоть там и немного заработаешь
В ассет сторе уже есть суперпатфайндинг.
Бамп вопросу! Как местные профи борятся с артефактами при приближении камеры вплотную к объектам!
ноуп. хотя имею миллион вагон прототипов, разумеется. самый клёвый умеет обращаться со своим инвентарём и работает по сети. так то у меня не только навмеш в загажнике есть. вообще у меня недавно вернулся один мой знакомый артист с которым мы наконец порешали как совместит наши интересы в одном проекте, так что периодически работаю над этим. может скоро покажу что-то помимо этого говна мамонта.
он давно на ассетсторе лол бесплатный лежит https://assetstore.unity.com/packages/tools/ai/k-pathfinder-85181 даже хуёвая документация есть с картинками. хотел выложить платно да в итоге решил что ну его нахуй. в итоге ко мне периодически приходят люди, суют деньги в трусы, просят сделать им что-то.
хотя дорабатывать это ещё наверно с пол года буду чтобы перестать звать это альфой и назвать бетой хотя-бы. надо починить некоторое количество старого говна, накатить оптимизации в некоторых местах, ввести некоторые ключевые фичи которые я сам хочу иметь. сильно уж объемный проект для одного человека. ебучий локал авойденс три месяца сожрал в итоге.
хотя да, надо бы ебануть что-то со всем этим добром. это же какое могущество!
>>16946
но зачем?
Вон картинка. Видяха отрезает вроде "лишние" полигоны
Алсо, оклюдинг как то зависит от размера отображаемого объекта? Большой меш воды вроде сильнее глючит
а, это ты. а как насчет того чтобы FOV у камеры выкрутить вместо физического приближения?
Да там не дрифт как таковой, просто что-то типа скольжения в поворотах.
Я слепой, не вижу проблемы
Но у меня чарактер плавает в воде. Не буду жи я вместо перемещения ригид боди FOV дрочить.
я же кейсы применения не знаю, может ты там катсцену с бабами в бассеине делаешь. и в рендеринге я тоже смыслю не так и много чтобы отвечать на такие вопросы.
кстати а в сбилженном проекте то та-же хуйня?
Подсчёт ссылок тоже форма сборки мусора а так же ведёт к циклическим ссылкам, что очень плохо для предельно тупого интерпретируемого языка. Ах да, в lua нормальная сборка мусора и ты можешь даже контролировать из C-кода сколько времени она займёт (например собирать мусор в ожидании vsync).
>>16835
>Зачем это?
ПРОСТ))). Вообще говоря ты можешь упереться в ограничения C# только если постоянно делаешь говноалогритмы с квадратичной и выше сложностью или делаешь какую то совсем лютую ЙОБУ. В первом случае ты говнопогромист и никакой язык тебе не поможет, во втором непонятно зачем ты УНИТИ выбрал. Ну и УНИТИ то ещё говно под капотом.
И C# не является скриптовым языком тут. Вообще нормальные проекты на УНИТИ стараются использовать УНИТИ как можно меньше и держать его за хорошим слоем абстракций, чтобы писать код нормально.
>>16828
Корявое лобби было уже в 5.2, я его даже использовал.
>>16841
Приемлем. Надо просто GC делать нормально. Есть рилтаймовые GC которые гарантированно работают заданное время.
>>16850
В MS-шарпе. В том Mono что идёт с УНИТИ предельно тупой сборщик из учебника едва ли не первого курса, без поколений и всего этого, обёртка над malloc. Они давно говорят что заменят когда нибудь в будущем, но пока ноль движений.
>>16854
В УНИТИ проблему вызывает говнокод под капотом и переключения между нативным и управляемым кодом на каждый чих. Ну и PC-драйвер для видеокарты - который например может реально загружать текстуры или компилировать шейдеры только при первом использовании, не когда ты сказал их загрузить.
>>16911
Нахуя тебе короутина если есть АНИМАТОР? Спойлер: аниматор может вызывать методы на GO на котором он живёт!
>>16926
Старый как мир приём: no malloc per frame. Ты содздаёшь всё что тебе надо с пулами и прочим при загрузке, собираешь мусор и никогда ничего не создаёшь до конца уровня. Так же чтобы GC занял 100мс тебе надо насрать кучу как стадо поносных слонов или запускать игру на счётах.
>Ты содздаёшь всё что тебе надо с пулами и прочим при загрузке, собираешь мусор и никогда ничего не создаёшь до конца уровня.
А если опенворлд?
Ты и создай.
Вопрос как к этому прикрепить скрипт и аналог OnMouseDownOn()?
Эвент систем в корень сцены убери а на объект дбавь пикрил
Ну да кстати, ща попробую
> я не добавил эвент систему
Она сама добавляется при создании любого UI-элемента.
Так что если её не было, то только потому что ты сам её и удалил.
Даа, скорее всего так и было
почему нет пакеджей в меню как в туториале? из стора качаю, импортируются вроде, но в этом меню всеравно пусто. как быть?
float Y = transform.rotation.eulerAngles.y;
Это копия, сохраненная 9 июня 2019 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.