Добро пожаловать в тред Unity - лучшего 3D и 2D игрового движка современности! Прошлый тред: https://2ch.hk/gd/res/401747.htmlОфициальный сайт: https://unity3d.com/ruДокументация: https://docs.unity3d.com/ru/current/Manual/index.htmlУроки: https://unity3d.com/ru/learn/tutorialsФорум: https://forum.unity3d.com/Магазин ассетов: https://unity3d.com/ru/asset-storeUnityWiki: http://wiki.unity3d.com/index.php/Main_PageНа Unity сделано много замечательных игр - Rust, Блицкриг 3, Pillars of Eternity, Tyranny, Kerbal Space Program и многие другие. Главным преимуществом Unity перед другими движками является его простота для одиночной разработки. Не нужно иметь целую компанию девелоперов, чтобы сделать хорошую игру. Если ты один или имеешь небольшую команду и хочешь сделать хорошую игру без претензий на ААА, то Unity станет лучшим выбором. Тем не менее, даже крупные корпорации зачастую выбирают для своих игр именно Unity.FAQ- Какие у Unity сильные стороны?- Простота разработки, удобный инструментарий, кроссплатформенность, богатая документация, огромное сообщество.- Какие у Unity слабые стороны?- Сложность в создании фотореалистичной графики. Для графики "как в Crysis" рекомендуется взять другой движок. Хотя Unity вполне способен выдавать не уступающую любым другим движкам картинку, это требует определённого навыка от разработчика.- На каких языках я могу писать скрипты для Unity?- На выбор два языка - C# и UnityScript. UnityScript - это что-то среднее между JavaScript и ActionScript. Выбирай язык по своему вкусу, они оба вполне удобны, но помни, что большинство примеров написано на C#.- Для каких жанров подходит Unity?- Для абсолютно любых! Жанр ограничивается лишь фантазией разработчика (и его умением писать скрипты, разумеется). Можно создавать и РПГ, и стратегии, и слэшеры. Можно делать VR-проекты или Minecraft-подобные песочницы.- На каких платформах работают созданные с помощью Unity игры?- Windows, Linux, MacOS, SteamOS, Android, iOS, Windows Phone, PlayStation4, Xbox One, WebGL, Oculus Rift и многие другие. Полный список можно найти на официальном сайте. Таким образом, игры Unity работают на десктопах, на смартфонах, планшетах, приставках, в браузерах, VR-очках и некоторых других системах.- Часто вижу скриншоты с красивой природой на Unity. Как такое создать?- Очень просто! В Unity встроены удобные инструменты для создания террейна и SpeedTree для создания деревьев и готовая реализация ветра - не нужно ничего писать или скачивать и подключать плагины - ландшафт в Unity создаётся в пару кликов.- Что такое стартер киты?- Starter Kit - это набор скриптов и префабов, а зачастую и графических элементов для игры. Они призваны облегчить разработку игры определённого жанра и как правило разбиты по жанрам (Action-RPG Starter Kit, RTS Starter Kit, 3D Shooter Starter Kit, Space Game Starter Kit, VR Starter Kit и так далее). Также бывают стартер киты различных игровых элементов, не связанных с геймплеем (Nature Starter Kit с дополнительными природными объектами, Medieval Starter Kit со средневековыми объектами и так далее). По сути, стартер киты выполняют в разработке игры ту же роль, что и фреймворки в программировании. Однако стоит отметить, что использование геймплейного стартер кита принуждает разработчика изучать большое количество чужого кода и чужой структуры для внесения своих изменений и полноценного использования. В связи с этим большинство разработчиков предпочитает писать почти всё с нуля, получая полное понимание работы своей игры. Новичкам крайне не рекомендуется начинать знакомство с Unity со стартер китов.- Что нужно уметь делать для создания полноценной игры, кроме Unity-разработки?- Кроме непосредственной разработки игры на Unity, требуется также уметь создавать 3D модели (3ds Max, Blender, ZBrush), 2D рисунки (GraphicsGale, Aseprite, Piskel), текстуры (Substance Designer, NeoTextureEdit), музыку (FruityLoops, Ableton). Не обязательно учить это всё - например, в 2D играх не нужны 3D модели, а музыка необходима далеко не всегда. Также вы можете скачивать элементы для ваших игр на бесплатных сайтах. Если у вас есть деньги, то все необходимые элементы можно заказать у фрилансеров на https://www.fl.ru/ (русскоязычный) или https://www.upwork.com/ (англоязычный).- Бесплатен ли Unity?- Можно свободно скачивать, использовать и продавать готовые игры на Unity с лицензией Personal - это абсолютно бесплатно! Но на бесплатной версии при запуске игры будет появляться короткий стартовый ролик "Made with Unity", а также ваши доходы ограничены 100 000 долларов в год. Для снятия этих ограничений нужно приобретать платные версии лицензий Unity. В конечном итоге, платные варианты используются лишь крупными компаниями с огромными доходами, тогда как обычные разработчики в большинстве своём используют бесплатную Personal лицензию.Обучение - ЯзыкИтак, с чего же начать изучение этого замечательного движка? Прежде всего, с изучения языка. Самые основы C# можно узнать на интерактивных курсах здесь:https://dotnetcademy.net/CSharp/Beginnerили в текстовом туториале здесь:https://www.tutorialspoint.com/csharp/csharp_quick_guide.htmДля изучения основ UnityScript выучи вначале основы JavaScript:https://learn.javascript.ru/Помни, что далеко не все элементы JS есть в US. Чтобы понять, в чём разница между этими двумя языками, прочти эту статью:http://wiki.unity3d.com/index.php/UnityScript_versus_JavaScriptПомни, что тебе достаточно одного языка из двух и учить их оба одновременно не нужно.- ДвижокЕсли ты уже умеешь использовать язык, то можно приступать непосредственно к изучению движка. Крайне рекомендется купить/скачать книгу Unity in action (Unity в действии). В ней подробно описываются множество возможностей движка.http://www.ozon.ru/context/detail/id/34792570/Также посмотри на видеотуториалы с официального сайта:https://unity3d.com/learn/tutorialsЕсли же ты не любишь видеотуториалы (или не понимаешь разговорный английский) и предпочитаешь текст, то посмотри здесь:http://catlikecoding.com/unity/tutorials/Тут крайне подробно описан процесс разработки и приведены примеры кода. Эти туториалы универсальны и описывают множество различных частей игры, от работы с текстурами до генерации карты мира. А вот в этом туториале описыватся разработка двухмерной игры с видом сверху:https://www.raywenderlich.com/61532/unity-2d-tutorial-getting-startedЭто будет полезно, даже если ты планируешь разрабатывать трёхмерную игру. Ни в коем случае нельзя обойти вниманием этот сборник туториалов: https://noobtuts.com/unityВ нём подробно описывается процесс пошагового создания разных игр - двухмерных и трёхмерных. Разумеется, все эти туториалы охватывают лишь часть возможностей Unity. Самый надёжный способ выучить Unity - это начать делать игру и по мере разработки гуглить непонятные моменты. Шапка: http://www.writeurl.com/publish/zukmrogwv45ptyuseyol
Всем привет от Серёги!
Тут что так мертво или юнити девелоперы вымерли?
Реквестирую подробные, и чем подробнее тем лучше, манулы по сишарп скриптам по тематике трансформ, методы подметоды итд. Кватерионы, тригонометрия, интересности
>>427422Кстати, я об этом не подумал, придётся таки рейкастами делать, похоже. Спасибо, анон.
>>427797> придётся таки рейкастами делать, похожеТам и делать нефиг.GameObject[] objects;public GameObject closestObject;void Start () {objects = GameObject.FindGameObjectsWithTag ("Object");}void Update () {RaysMode (objects);}void RaysMode (GameObject[] objs) {closestObject = null;float minDist = Mathf.Infinity;foreach (GameObject obj in objs) {RaycastHit hit;Ray ray = new Ray (transform.position, obj.transform.position - transform.position);if (Physics.Raycast (ray, out hit))if (hit.transform.tag == "Object" && hit.distance < minDist) {closestObject = obj;minDist = hit.distance;}}}
Насколько разумно создавать гейм менеджер и другие подобные вещи, как синглтоны, вызывая конструктор в get {}? Он не будет сидеть на пустом объекте (в мире), а просто как скрипт. Можно будет гарантировать порядок создания критически важных объектов.Как в таком случае удобнее загрузить в него префабы, через Resources.Load?
Искусственный интелект с пакетом RAINГоднiта чi нi?
>>427792Что тебе там не понятно?
>>427791Это тебе не засмеялся-обосрался тред, чтоб по 20 постов в минуту набивать.
Анончи,есть одна анимация котика.Как её запустить ровно после пяти секунд после начала сцены?
>>427815Coroutine с yield return WaitForSecondsПосле чего там же запускаешь анимациюИли Invoke("zapuskaemKotika", 5)
>>427792https://www.youtube.com/watch?v=ZbHRl7jzEww
>>427800А почему такие операции обычно записывают в отдельные функции, а не просто кидают в Update?
>>427823Можешь и просто в апдейт. Просто мне так привычнее, не люблю когда в апдейте насрано (а в больших скриптах обычно так и получается), так что я методы инкапсулирую, по итогу в апдейте строк 5-8 и все они по разным методам лежат.Короче, мне так чисто для восприятия легче.Если хочешь — пихай в апдейт, суть не поменяется.
>>427824> методы инкапсулирую
>>427833Пардон, какой в шараге сленг был, такой в памяти и остался. Мы академиев не кончали.
>>427817Анончик,слушай,я вообще не прогромист.Может ты напишешь этот скриптик для меня,плиз?
>>427838Если ты не погромист и даже это не понимаешь, то нахера тебе это вообще нужно? Только чтобы анимация котика была?
>>427839Именно,только чтобы анимация была.Так ты поможешь?
>>427842Тут одним кодом не поможешь. Тут надо пояснить как аниматор создать, как на объект перенести, как в него анимацию передать (если она вообще есть), как туда передать состояние и т.д.Короче, волшебного кода, который можно просто скопипастить, не получится.
>>427844>Тут надо пояснить как аниматор создать, как на объект перенести, как в него анимацию передать (если она вообще есть), как туда передать состояние и т.д.Вообще то,уже это знаю и всё готово.Говорю же,нужно сделать сделать запуск после 5 секунд после начала сцены.
>>427847Окей. И как называется переменная для перехода из состояния "котяра статичен" в состояние "котяра анимирован"?
>>427848Я,конечно,не погромист,но переменные вроде как угодно можно называть.Так что пусть будит "KotikObormotik".
>>427850> но переменные вроде как угодно можно называтьМожно, ага. Только они должны совпадать с теми, что в аниматоре.
Суп, анон. Щитаю, что нахожусь в скилл-брекете между аппер-интермедиэйт и адвансед, но к сожалению совсем не знаю шейдоры. Чтобы исправить это досадное положение, а поставил себе цель запилить редактор шейдеров не уступающий в качестве знаменитому ShaderForge за 2 недели. И сделать его опенсурсным, конечно. Чтобы взорвать пуканы авторов этого ассета. И разработчиков юнити, конечно. Отношение которых к добавлению важных новых функций в движок характеризуется фразой "пчелы против меда": зачем добавлять бесплатную функцию, если можно получать стабильно шекели из ассет стора? Давайте лучше переделаем пост-эффекты и сделаем новое окошко, в котором можно редактировать анимации! ynuti 2017! революция!На скрине прогресс за сегодня
>>427851Ты про эти?
>>427854Не совсем. По Cat_contrl дважды кликни и покажи что откроется.
>>427855Это?
>>427857Уже лучше. Если просто запускаешь сцену - котяра анимируется? К нему вообще хоть какой-то скрипт привязан?
>>427859Анимируется,один раз проходит анимация сразу после запуска сцены.Никаких скриптов.
>>427860> один раз проходит анимацияА надо чтоб было постоянно?Если да, то жмаки по файлу анимации и в инспекторе поставь галочку на Loop Time. А потом уже и скрипт добавишь.
>>427862Нинад чтобы постоянно.Только разок после 5 секунд после запуска сцены.
>>427863Лезть в переменные аниматора будет явно надолго, так что давай велосипедить.1. Если сцена запущена — останови.2. Сними галочку с аниматора (ту что на пикрилейтеде).3. Создай C# скрипт, назови его CatAnimation.4. Открой его в редакторе, удали там вообще всё, до последнего символа. И копипасти туда вот этоusing System.Collections;using System.Collections.Generic;using UnityEngine;public class CatAnimation : MonoBehaviour {Animator animator;void Start () {animator = GetComponent<Animator> ();Invoke ("Animate", 5f);}void Animate () {animator.enabled = true;}}5. Перетяни этот скрипт в инспекторе на тот объект, на котором висит аниматор (скорее всего это и есть твой кошак).Если всё сделаешь правильно, то заработает.
Закатился в тред начинающий, но уже имеющий один проект, разработчик. Собрал значит я свою казуальную кликалку на андроид и встал вопрос о компиляции под гейфоны. Уже несколько месяцев пытаюсь накатить виртуалки, хакинтоши, найти способы компиляции под шиндовс, но пока нашёл только один ассет по цене в 100 Бачей. Подскажите может кто находил хороший способ сборки под эпл без мака. Алсо игра висит в гугл плее, но поиграть я в неё могу только с телефона друзей, а хочется на своём родном айфоне позалипать, ибо писал под себя.
GOAP анон, ты всё ещё здесь?Как ты с подобной реализацией навигации для действий реализуешь прохождение через двери требующие открывания?
Сука блять, какого хуя билд абсолютно пустой сцены весит 35 метров? Это, блять, дефолтный сплэшскрин столько жрёт что ли?
>>427868Спасибо,анончик.Всё работает как надо.Люблю тебя:3
>>427896Да на здоровье.А вообще ты какой-то странный. Накатывать юньку только чтобы заанимировать котика — это даже не микроскопом гвозди забивать, это уровнем повыше.
>>427897Мне просто нравиться сцены из ассетиков собирать.А котика я в блендере анимировал.
>>427891GOAP неприменим к играм. Не трать время на ерунду и используй behavior tree
>>427824Спасибо за разъяснения все.
>>427800Это у мобов такое? От этого пекарня не сгорит случайно? Я бы в coroutine, а не в апдейт запихал, на крайняк.
>>427952>От этого пекарня не сгорит случайно?Как там в 97м?
>>427952Поехал что ли? Там нагрузки хуй да нихуя.
>>428008А на мобилках тоже лагать не будет?
>>428024Ну если у тебя там будет под две сотни мобов на одной сцене, то может и будет.
Почему Character Controller с Rigidbody с гравитацией может проваливаться сквозь пол? Пол - платформа с коллайдером, без Rigidbody. Второго коллайдера на плеере нет.
>>427800Как сделать это в 2D?
>>428211Сам догадался уже. Но вот возник более жоский вопрос. Всю ночь гуглил, не смог сделать нормально, рофл.Как замутить передвижение персонажа в 2D игре с видом сверху, не используя rb? Пробовал разные варианты через RigidBody2D, но все они очень сильно сказываются на производительности, хотя я мей би ошибку делаю, на всякий случай вот код с использованием rb, если его можно оптимизировать до нужного уровня, то и так сойдет:using System.Collections;using UnityEngine;public class CharacterController2D : MonoBehaviour { public float speed = 7f; private Rigidbody2D rb; void Start () { rb = GetComponent<Rigidbody2D>(); } void Update () { float deltaX = Input.GetAxis("Horizontal"); float deltaY = Input.GetAxis("Vertical"); Vector2 movementXY = new Vector2 (deltaX, deltaY); movementXY = Vector2.ClampMagnitude(movementXY, speed); movementXY = speed; movementXY = Time.deltaTime; rb.MovePosition (rb.position + movementXY); }}
>>428221>\t)))))using System.Collections;using UnityEngine;public class CharacterController2D : MonoBehaviour {public float speed = 7f;private Rigidbody2D rb;void Start () {rb = GetComponent<Rigidbody2D>();}void Update () {float deltaX = Input.GetAxis("Horizontal"); float deltaY = Input.GetAxis("Vertical");Vector2 movementXY = new Vector2 (deltaX, deltaY); movementXY = Vector2.ClampMagnitude(movementXY, speed); movementXY = speed;tmovementXY = Time.deltaTime;rb.MovePosition (rb.position + movementXY);}}
>>428222да ёбаный в рот, ебучая разметкаНадо было сразу так сделать.
>>427710>Теперь понял, это примерно как мой второй вариант. Меня в этом варианте смущает сложность контроля за перемещением, ведь после начала движения уже никакое действие не контролирует процесс, прерывания и достижение результата это опосредовано делается в прекондишене занятия ковракак ты делаешь то. у тебя чтоли каждый тик ИИ не пытается выполнить текущее действие? только выполняет готовый план? на каждом тике при попытке исполнить действие же можно в разные ифы лезть.>И придётся пердолиться с другими действиями, которые могут инициализировать движение: надо будет где то хранить приоритет действия задавшего движение или что то в это роде.у тебя же только один текущий экшон. если экшон вообще требует перемещения то он и рулит. если ему рулить ненадо то ИИ делает что-то глобальное.>>427808да так себе он. хороший бихейвор три редактор, но плохая навигация.>>427853в одно рыло это не выглядит реальным и за 3-4 месяца. как сделать то планируешь?>>427891укатывался. я то часто в тред заглядываю, но реагируютолько если показывают что-то интересное.>Как ты с подобной реализацией навигации для действий реализуешь прохождение через двери требующие открывания?ну это ты загнул. пока никак. в моем навмеше пока что поломана сериализация для зон которые бы ссылались на конкретные объекты, как починю можно было бы и такое сделать. чтобы была возможность иметь зоны, на которые ссылался бы компонент, который бы переключал их доступность.но тут это можно разве что если "попасть куда-то" является самим действием. например было бы действие "попасть в склад номер пять", у него было бы прекондицией открытие двери, тогда кнопка открывающая дверь бы генерировала внешнее действие открывающее путь только на этот склад. но если делать хитрожопое что-то например "сломать стену чтобы схватить за задницу сзади", то тут мне придется сильно глубоко лезть в навигацию чтобы такое сделать.
>>427853вообще, вот интересное что-то пилишь. правда шейдеры лучше всетаки изучи хоть как-то. там столько мистической тайной хуйни что две недели можно их просто крутить туда-сюда чтобы хоть как-то разобраться.я вот тоже что-то покажу из этой категории. делаю по человечески свой простенький генератор террейна, но чтобы у него был нодовый редактор который бы работал внутри маски биома.интересно когда уже в юнити сделают сериализацию абстрактных коллекций. сериализовать ссылки на ресурсы юнити в нодах даже не знаю как.
>>428233скриншоты забыл
>>428105> Character Controller> с RigidbodyТы либо крестик сними, либо трусы надень.Что-то одно выбери, короче.
>>428229>как ты делаешь тоЯ использую reGOAP с парой мелких допилов.Планер пилит последовательность действий для достижения текущей приоритетной цели. Потом агент начинает выполнять начиная с самого первого. Каждый экшн выполняет своё процедурное тело до успешного завершения и перехода дальше по плану, либо до прерывания с инвалидацией всего плана и перепланированием.>на каждом тике при попытке исполнить действие же можно в разные ифы лезтьИ в каждом действии контролировать перемещение? Со временем охуеешь.>ну это ты загнулСейчас это просто в теле действия, если на пути агента есть дверь, то он тормозит движение, открывает дверь и продолжает после. Делать отдельно действие понадобится только, если делать множество различных решений преодоления двери.В общем подумаю ещё между выносом навигации и реактивным планером внутри действийвсё равно наверное буду пилить макропланер для сквадов
>>428221> Как замутить передвижение персонажа в 2D игре с видом сверху, не используя rb? Через трансформ, ебать.
>>428268Через трансформ эффект хуёвый, если на препятствие пойти. Он каг бы не останавливается, а идёт туда и отбрасывается назад из-за коллайдера.
>>428294Лэйтапдейт используй.
>>428237Спасибо, уберу контроллер.Алсо, я тут думаю сделать дамаги и прочие взаимодействия через интерфейсы и GetComponent. Например, интерфейс IDamageable {void TakeDamage(int amount)}, IPickable и т.п. Это кажется более гибким, чем наследовать все классы, которые делают какое-то взаимодействие, от одного.ОнТриггер/ОнЧегоНибудь(){ var health = (Idamageable)GetComponent(typeof(IDamageable)); if(health != null) health.TakeDamage(amount);}Норм способ, или раковая задумка, и существуют более правоверные способы?
>>428301> Спасибо, уберу контроллер.Я бы убрал риджидбади, если тебе только и надо что ходить и взаимодействовать без особого физона, но то уже сам смотри.
>>428301> и существуют более правоверные способы?Других способов нет. Либо ты делаешь общий родительский класс под все, у чего есть здоровье, либо интерфейс. О, точно, мне же надо как-то ломать всякую мебель и прочее говно. Пойду прикручу к своей йобе.
>>428419> Других способов нет. Либо ты делаешь общий родительский класс под все, у чего есть здоровье, либо интерфейс. Ты сильно недооцениваешь местных повелителей костылей.
>>428430Ну хуй знает, что еще. Проверять тег геймобджекта, и в функции на атакующем персонаже в List<> хранить значение здоровья?
>>428301Правильно, но проще так: damagable = GetComponent<IDamagable>();
>>428305Rigidbody надо чтобы физика была в курсе что эти коллайдеры динамические.
>>428301ECSCS
У Юнити есть стандартизированные даты обновлений? Когда они будут выпускать 6.0?
>>4287296.0 не будет. Вместо него 2017, который уже выпустили.
>>428733А до этого была одна версия каждый год?
>>428740Да, предыдущая 5-ая версия была собрана в 5-ом году от рождества Христова.
>>428233Да я помню твои посты лол. Помню охуевал от твоих скиллов.Теперь вот тоже хочу сделать что-нибудь эдакое. Ну про уровень shader forge я конечно-же пошутил. Это просто так, великая цель для мотивации.Апдейт. Как оказалось, в юнити уже есть свой фреймворк для создания графов. И именно на нем сделан и редактор анимаций. Если кому интересно, то интро можно найти тут http://unity3de.blogspot.ru/2015/08/reveal-unknown-graph-and-graphgui-class.html. Остальное в дизассеблированных исходниках. Там ничего особенно, но можно сократить время на несколько дней.Теперь в принципе осталось-только придумать как сгенерировать шейдоры из графа спиздить из shader forge. Пока думаю о чем-то вроде темплейтов
Сап, аноны.Есть пустой gameObject, к которому прицеплен скрипт, вращающий этот самый gameObject с помощью gameObject.transform.Rotate().У этого пустого объекта есть два child: сфера и text mesh.Когда я вращаю родительский объект, то текст слегка убегает от сферы, примерно на пару градусов. Когда вращение останавливается, сфера снова догоняет текст.Пробовал то же самое с кубом вместо текста, ведет себя точно так же.Чому так?
>>428810> Когда я вращаю родительский объектКак вращаешь? Ручками на сцене? Через скрипт?Ты давай подробнее, по твоему посту хер что поймёшь.
>>428823>вращающий этот самый gameObject с помощью gameObject.transform.Rotate()
>>428824А, да, пардон, только проснулся.Всё равно тут надо знать в каких координатах текст и сфера находятся относительно пустого объекта, что там у тебя в ротейте и т.д.Давай со скринами и/или видосом.
>>428827В общем я неправильно описал проблему.На сфере с помощью Vectrocity нарисована разметка трехмерными линиями. И эта разметка отстает при вращении сферы, дочерние объекты не при чем.
>>428810>примерно на пару градусовЗапили шебм, мне даже интересно стало. Может это из-за Rigidbody?
>>428839>>428838Ошибся я, сорян. Это Vector Lines как-то с лагом рендерятся.
На собеседовании дали задание - создать UI на юнити.Структура - главное меню, страница просмотра изображения, страница воспроизведения видео, etc.Поясните, что они подразумевают под страницей?Шарп хорошо знаю, но вот юнити пока не очень, UI пилил, но вот что за страницы, так и не понял.
>>428861> Поясните, что они подразумевают под страницей?Ну это тебе лучше знать, хрустальный шар тут у всех давно сломался.А вообще весь UI в юньке есть изначально.
>>428867Страница просмотра видео же, так у меня написано в задании, но вот что это за страница, и как она должна выглядить, я так и не понял.
>>428872Ну, видимо, весь канвас, либо его часть. Юнька вполне способна напрямую хавать и рендерить видео.
>>428873Т.е. это должен быть объект в пространстве, который будет воспроизводить видео?Спасибо за помощь, анон.
покажу старое но клевое. кстати есть ли у кого какие клевые идеи как сделать прыжки на навмеше? у меня есть сорт оф споты для прыжков на подобии старых прыжков юнити, но это имеет свои минусы.>>428261>Я использую reGOAP с парой мелких допилов.а я кстати его не читал ещё. я свой гоап то с нуля написал. как там организовали хранение стейтов мира?>И в каждом действии контролировать перемещение? Со временем охуеешь.так не во всех. у меня например исполнение действий организовано с некоторой иерархией с ГОАП и контролером. у ГОАП в экшоне есть булл будет ли это действие контролировать перемещение, этот бул доступен через менеджер-прослойку контролеру, контролер ещё внутри свой небольшой менеджер стейтов имеет, какая анимация чего делает, чтобы знать когда анимация прерывается. например текущий экшон "поднять предмет", в действии описано "топи туда, если ты уже там то подбирай предмет", в итоге на каждом тике ИИ он топит куда сказали, а когда доходит то предмета идет в менеджер-прослойку и говорит что хочет поднять вот это. тогда уже контролер в своем менеджере анимаций переключает флаг что его активное действие это поднятие предмета и это действие и верхнюю и нижнюю половину тела для этого требует. а ГОАП тем временем через менеджер ждет когда это действие из активного либо провалится, либо завершится. когда анимация завершается в конце триггер что хопа действие завершено которое переключает статус в менеджере анимаций. а потом уже и ГОАП на следующем апдейте видит что флажок переключен на нужный, завершает через менеджер анимацию целиком ставя её на не активную и говорит что действие выполнено(или провалено). проверять кондиции вроде "есть ли предмет", кстати, было довольно плохой идеей, потому что он появляется в инвентаре в момент когда ИИ рукой его хватает, но ему ещё надо распрямится. отсюда и наличие менеджера анимаций, который все упрощает.а действия вроде "перезарядка" никаких перемещений не требует, но занимает верхнюю половину тела. в итоге пока действие делается, менеджер следует своей активной задаче и управляет перемещением контролера. в итоге контролер и перезаряжается и бегает по укрытиям сразу, а в действии ГОАП описано только то что надо сделать. начать перезаряжатся, ждать когда завершится анимация в конце которой в случае успеха анимации отнять из инвентаря одну обойму.на время выполнения действий отключаю обновление планирования, чтобы ИИ не подумал что "ооо да у меня же предмет нужный в руке надо бы его использовать" пока он ещё не распрямился после его поднятия, чтобы текущее активное действие было залочено. прерывание действий пока не сделал, но это будет не так и сложно.пока что лучше не придумал как сделать подобную иерархию, вроде решает все проблемы.>Сейчас это просто в теле действия, если на пути агента есть дверь, то он тормозит движение, открывает дверь и продолжает после. Делать отдельно действие понадобится только, если делать множество различных решений преодоления двери.А я бы так не делал. а вдруг дверь будет требовать ключ? вообще технически можно глобальную навигацию сделать через ГОАП. вот у тебя есть набор комнат, некоторые комнаты требуют предмет. при перемещении из комнаты А в Б проверяем через ГОАП весь путь, если путь чист то строим путь через навмеш и идем. если надо ключ то проверяем путь черезе ГОАП уже до комнаты с ключем. один хуй поиск пути на навмеше слабо отличается от поиска пути по нодам ГОАП.>>428774Лол, надо же, меня помнят и читают.>Как оказалось, в юнити уже есть свой фреймворк для создания графов.вхоу. молодец что нашел. надо будет посмотреть. интересно не спрячут ли в один прекрасный день. интересно что туда положили.>Теперь в принципе осталось-только придумать как сгенерировать шейдоры из графаЯ кстати читал пару имплементаций таких редакторов. он в итоге был чем-то вроде визуального текстового редактора. когда тыкал кнопку "получить шейдор" то оно там задавало целевым переменным имена, подставляло их на текстовые заготовки, соединяло все заготовки в выбранном порядке и хопа шейдор готов. создание такого выглядит каким-то особым сортом пердолинга, но выглядит достижимым.
>>428875> Т.е. это должен быть объект в пространстве, который будет воспроизводить видео?Ну блин, я ТЗ полностью не видел, но "UI с воспроизведением видео" звучит так, что надо тупо рендерить видео.
>>428877
>>428879Нууу, и что не ясно? Вот меню с кнопочками: "посмотреть картинку", "посмотреть видосик", "покрутить ползунки".Как хуйнуть картинку (видосик делается почти так же) на панель — думаю, знаешь, раз на такую работу метишь. Про ползунки вообще молчу.
>>428880Не ясно было, что подразумевают под страницей. Как это делается, знаю. Спасибо, что пояснил.
>>428861 >>428867 >>428872>>428877 >>428879 >>428880это классика, это знать надооднажды подают мне значит такое вот же ТЗтипа, шарики в хуюнити отрисовывай, мы тебе 20к заплатим, тыж спец по графену вродеа кроме меня там в команде еще погромист и руководитель группы, и тот погромист то вообще нахуй студент.ну делаю ТЗ, прихожу к погромисту, говорю: вот тебе кнопочки, чо там с прогой, давай на листенеры навешивай функции, а он, пацаны, достаёт значит свой нетбук и показывает скрипт на js под веб, типа, ЯЗДЕЛЯЛЬ.пиздос, там дедлайны приближаются, я начинаю ему объяснять что в юнети значит component-entity-system, понимаю что он нихуя не понимает, сажусь писать сам И ТУТ ХУЯК, ОКАЗЫВАЕТСЯ наша контора-заказчик ПРИНЦИПИАЛЬНО, блять, не использует продукты от майкрософт, их всех в детстве билл гейтс покусал похоже, причем сука не просто всюду линуксов понаставили, но даже У НИХ ПРИНЦИП ПРОТИВ СИ и его вариаций, ГОСПОДЬ ВСЕМОГУЩИЙ ЭТАЖИ ПРОДУКТ МАЙКРОСОФТ ТЫ ЩО ДЕЛАЕШ ОКАЯННЫЙ. а в js я знаю примерно столько чтобы было достаточно div'ы на сайтике скрывать/показывать. var, блять, хуяр! что за нетипизированное говнище. кое-как заговнокодил всё это дерьмо, ну тут классическое У НАС ИЗМЕНИЛАСЬ КОНЦЕПЦИЯ (х2).доебало пиздец короче. сейчас вообще реквесты потипу пикрелейтед идут.до сих пор не заплатили.самарец не человек
>>428955>var, блять, хуяр! что за нетипизированное говнище.В книге читал, что в юнити запили типизацию под js, энивей, автор рекомендовал юзать шарп.
>>428970> запили типизацию под jsона в яваскрипте как тема в ТВГ. она есть и можно делать по теме, а можно и не по теме. приписывать var raspidor : GameObject по острому желанию можно. > энивей, автор рекомендовал юзать шарпа в монодевелопе js-ников вообще публично унизили, сломав им всплывающие подсказки для автонабора строк.
>>428774даа, это они там накрутили. почитал немного. так правда и не нашел пока как в контекстное меню что-то добавлять свое даже после того как в ILSpy расковырял. надо будет потом внимательно прочитать, я даже не знал что есть такая хуйня как EditorUtility.DisplayCustomMenu например. а то я свое контекстное меню уже навелосипедил.
>>428955>без ШариповВаляюсь.
>>429019>так правда и не нашел пока как в контекстное меню что-то добавлять своеНикак. меню захардкожено в protected ShowContextMenu() в OnGraphGUI() в классе GraphGUI. Единственный вариант, это перегрузить OnGraphGUI() и копировать туда весь код из оригинала, кроме менюНу это явно не для публичного использования делалось
>>428987Монодевалоп и меня унижает. Регулярно крашится, ломается копи-паст, и еще кое-чего.
>>429091Специальная бесплатная редакция студии для кириллов поставляется прямо с юнити. Нет, хочу опенсорс какашку кушать. И это разработчики, блядь!Хотя лично у меня крашится сам юнити во время дебага, студия живее всех живых.
>>428876Мда, охуительная история.Вспомнил случай, когда парень откликнулся на вакансию юнитиёба, ему дали тестовое задание — сделать прототип тауэр дэфэнс на юнити.Он сделал, выслал, а ему ответили, мол, всё хуйня, вы не сделали игру, вы поработали с движком, а уже движок сделал игру. Он отвечает "ну что просили, то и сделал, давайте скорректируем ТЗ и доработаем, если что-то не так", на что получил ответ "нам нужна игра на юнити, но сделанная самостоятельно, а не движком. а вы этого не сделали, вы сделали на юнити".Можно погуглить, это вроде на юнити3д.ру было.
Это >>429157 сюда >>428955
>>428876>как там организовали хранение стейтов мира?Словарь<,>>"поднять предмет", в действии описано "топи туда, если ты уже там то подбирай предмет", в итоге на каждом тике ИИ он топит куда сказали, а когда доходит то предмета идет в менеджер-прослойку и говорит что хочет поднять вот этоНе совсем уловил этот момент. У тебя действие поднятия остаётся активным, пока ты топишь? Завершается по инициализации движения и ставит в очередь действие поднятия?В классическом ГОАП они выполняются чётко по порядку, следуя установленному плану. Ни одно действие особо не волнует что будут делать другие, оно просто даёт какой то результат и имеет пререквизиты.У тебя же действия выполняются почти "параллельно":пока одно не загружает какой то элемент контроллера, на нём могут выполняться другие. Это почти как два синхронизирующихся через состояние навигации планировщика. Выглядит очень круто, но с разрастанием могут появиться проблемы.>а вдруг дверь будет требовать ключ?Так я написал же, что отдельное действие необходимо если есть различные способы преодоления двери. Например, АИ может всё так же проходить через дверь, если у него есть ключ, и искать другие пути, если нет.Если вариантов ещё больше, то стоит сделать отдельный стейт (DoorOpen, true), действия ведущие к нему, и строить навигацию как последовательность дверей и участков пути между ними.>прерывание действий пока не сделал, но это будет не так и сложно.Я при старте действия делаю динамический список стейтов мира - прерывателей с учётом стейта цели. Пока работает хорошо.
>>429165>Не совсем уловил этот момент. У тебя действие поднятия остаётся активным, пока ты топишь? Завершается по инициализации движения и ставит в очередь действие поднятия?действие поднятия предмета остается активным пока ИИ топит к предмету. оно отвечает и за перемещение к предмету и за его поднятие. на мой взгляд мало смысла вообще разделять перемещение к предмету и поднятие предмета. действия которые стопроцентно будут идти одно за другим не должны разделятся. вообще я кстати пробовал разделять. у меня была концепция "кучка предметов", и на каждую кучку было процедурное действие "подбежать к кучке номер такой" и каждая кучка ещё действия возвращала связанные с тем какие предметы в ней и у каждого поднятия был рекваермент "быть у кучки такой-то". потом репу почесал и задумался нахуй такая конструкциям нужна.>пока одно не загружает какой то элемент контроллера, на нём могут выполняться другие. Это почти как два синхронизирующихся через состояние навигации планировщика. Выглядит очень круто, но с разрастанием могут появиться проблемы.да, вероятно могут. но вообще я пока слабо могу представить какие проблемы не могут быть решены через это. пока есть прослойка которая сообщает ГОАП о статусе действия и эта-же прослойка лимитирует паралельные действия за пределами ГОАП. может быть если буду делать возможность использования техники для ИИ что-то пойдет не так, или когда появятся действия не связанные с ГОАП требующие много времени(лазанье по лестнице например). но в любом случае все это выглядит решаемо.по моему этот вариант куда лучше чем эта боль с попыткой совместить перемещение и действие. этак на каждый пердеж будет пара вариантов. вроде "перезарядка", "перезарядка на бегу", "перезарядка бегая за укрытие" и прочее. ГОАП конечно здорово, но забивать им гвозди тоже не стоит.
>>429171>на мой взгляд мало смысла вообще разделять перемещение к предмету и поднятие предметаГлавное преимущество в том, что можно сделать женерик действие перемещения и разгрузить остальные действия.>по моему этот вариант куда лучше чем эта боль с попыткой совместить перемещение и действие. этак на каждый пердеж будет пара вариантов. вроде "перезарядка", "перезарядка на бегу", "перезарядка бегая за укрытие" и прочее.Да, разбираться в этой куче добра со временем станет очень не весело. Но я пожалуй откажусь от параллельного планирования: буду просто инициировать движение действием и тут же запускать реплан с учётом того что (isOnMove, true). И при завершении движения вызвать коллбек, прерывающий текущий план и пытающийся прервать действие. Останется только подумать как лучше запилить перывание движения отдельными действиями. Наверное просто для всех действий, требующих остановки, добавлю процедурный прекондишн, сравнивающий приоритет цели, вызвавшей движение и приоритет прерывателя.
>>429188>Главное преимущество в том, что можно сделать женерик действие перемещения и разгрузить остальные действия.да как-то оно не выглядит преймуществом. перемещение до нужной точки один хуй отдается на откуп прослойке между ГОАП и контролером, в имплементации действия движение в итоге задается парой строчек. там же получается в итоге куча вариаций "иди в точку 1", "иди в точку 2", "иди в точку дохуилион". в реГОАП написано что есть обратный поиск, так что разумеется количество вариантов почти похуй, но тут можно и напортачить с флагами в пререкваерментах действий требующих нахождение рядом с нужной позицией. какая-то излишняя комплексность для передачи одного булеана. впрочем работать будет, да. >Останется только подумать как лучше запилить перывание движения отдельными действиями. Наверное просто для всех действий, требующих остановки, добавлю процедурный прекондишн, сравнивающий приоритет цели, вызвавшей движение и приоритет прерывателя.я бы так стал делать разве что заранее известны все варианты перемещения ИИ и их немного. если он в начале просто бегает туда-сюда то это ещё выглядит разумным, но если ИИ начнет прыгать на джетпаке, скакать по стенам, делать сальто и прочее то это уже не кажется таким уж разумным вариантом. ещё хуже эта схема выглядит если ИИ может менять мобильность. например ногу оторвало роботу, лежит на земле, но стреляет. что, подчищать у него варианты действий чтоли?
Скрины старые. Маты нормально не настроены.Ммм... mesh-ы потерпели изменения, но я буду дорабатывать их. Ну там... интерьер добавлю и тд.
>>428955Хипстер-контора какая то. Принцип против микрософт и жабоскрипт везде.
>>429205ГОАП обычно подразумевает обратный поиск, поэтому необходимая точка берётся из следующего действия.Ещё одно преимущество вынесения действия перемещения - возможность добавления различных вариантов перемещения. Например, АИ может идти/бежать/ползти, что будет делать тремя разными действиями со своими прекондишенами. В твоём варианте надо будет в каждом экшене, требующем перемещения делать ифы, выбирающие один из способов перемещения.>например ногу оторвало роботу, лежит на земле, но стреляет. что, подчищать у него варианты действий чтоли? Не пойму суть проблемы? То что он лежит на земле никак не должно мешать стрелять.Прерывание движения может быть необходимо для выполнения некоторых действий, надо лишь проверять что приоритетнее, продолжить движение или выполнить это действие остановившись.Например, за АИ-лесорубом гонится лесной нёх, планер берёт цель спасения, которую реализует укрытим в убежище, для чего необходимо оказаться в убежище -> инициируется перемещение, действие завершается. Планер в это время строит новый план, учитывая, что АИ перемещается и конечная цель обладет приоритетом Х.Но во время бега у него повышается уровень жажды и становится доступной цель удовлетворения биопроблем с приоритетом У, удовлетворить которую он может выпив из фляги в инвентаре, остановившись на месте.Действие питья требует прерывания активного движения, поэтому в его процедурном прекондишене мы сравнивает приоритеты Х и У, и либо выполняем текущий план, либо инвалидируем и продолжаем движение.При этом вообще не важно идёт/бежит/летит/телепортируется лесоруб - навигацией занимается другой блок, от которого требуется только посылать коллбек о завершении движения и обрабатывать прерывание.Робот из примера выше просто будет иметь стейт (CanMove, false), который будет учитываться планером.
>>429240>В твоём варианте надо будет в каждом экшене, требующем перемещения делать ифы, выбирающие один из способов перемещения.зачем? метод перемещения диктуется глобально. то есть если мы крадемся то вообще всё перемещение будет украдкой. а если мы бегаем то все перемещение будет бегом. какие-то сложные варианты вроде "мы быстро подбегаем к медведю но остаток проходим тихо-тихо" легко описывается глобальным "стелс". где если мы не в радиусе обнаружения врагов то бежим, если в радиусе то ползем. какая вообще ситуация возможна когда ГОАП должен руководить методом перемещения?>Не пойму суть проблемы? То что он лежит на земле никак не должно мешать стрелять.>Робот из примера выше просто будет иметь стейт (CanMove, false), который будет учитываться планером.ошибся. не действий. целей. часть целей перестает вообще быть валидными же. иметь много наборов целей под каждое состояние мобильности?я уже начинаю представлять слабо твой вариант имплементации. начало движения это сразу успешное выполнение движения чтобы пока оно шло делалось сразу следующее действие? а как тогда будешь менять цель движения, если требуется поменять маршрут, но не действие? например действие "сесть в укрытие", но пока идешь до укрытия оно перестает быть валидным.
>>429157Нашёл, если кому интересно.http://unity3d.ru/distribution/viewtopic.php?f=111&t=18479
>>429251>метод перемещения диктуется глобальноНо планировщик должен решать как именно мы перемещаемся.>часть целей перестает вообще быть валидными жеДа, и отметутся планером. У робота без ног останется цель заниматься патрулём, просто она никогда не активируется.>начало движения это сразу успешное выполнение движения чтобы пока оно шло делалось сразу следующее действие?Не следующее действие, а вообще другой план. Так что это будет ближе к провалу действия. Здесь нужно расширение терминологии.>а как тогда будешь менять цель движения, если требуется поменять маршрут, но не действие?Прокладкой маршрута занимается навмеш же. Если ты имел в виду другие действия, требующие перемещения, то для них нужна такая же проверка как для действий с остановкой: побеждает наивысший приоритет.>например действие "сесть в укрытие", но пока идешь до укрытия оно перестает быть валидным.Этот вариант я упустил. Для этого можно сделать цель трансформом, а не точкой и периодически менять точку назначения навмеш агента. Если трансформ вдруг стал нуллом(сенсор укрытий инвалидировал укрытие например) - остановка и реплан.Если собрать всё вмнесте, то схема примерно такая:- инициируем движение и отметаем этот план(но без занесения в блеклист, если мы занимаемся подобным)- пока движение активно, выполняем менее приоритетные действия, не взаимодействующие с перемещением- если в плане появляется новое действие требующее перемещения, сравниваем приоритеты целей и либо принимаем новый план с новым перемещением, либо отметаем его(желательно занося в блеклист на какое то время)- при окончании движения прерываем текущий план, если его цель имеет меньший приоритет, чем цель движения, и пытаемся прервать действие. В случае прерывания после реплана мы по идее:3 вернёмся к плану, инициировавшему изначальное движение
Впорос к продвинутым или тем кто таковыми себя считаютКак много сложной математики вы использовали в разработке игр? Было ли что-то не из школьных векторов? Матрицы, теория графов? Пригождалось за знание кватернионов? Вообще, какие разделы математики приходится использовать, не считая те что в школе проходят?
>>429323Смотря что делаешь. Если какую-нибудь мобильную тыкалку а-ля "три в ряд", то там математики считай что нет. В шутанах от первого лица - тоже.А начнёшь писать свой физон, например, вот там уже начинается.
>>429324А для шейдеров?
>>429350Там вектора, градусы, косинусы-хуёсинусы, матрицы. Ничего особо сложного. Хотя при желании можно и в дебри залезть.
>>429323Матрицы, немного тригонометрии. О теории графов знаю только из детских книжек про минимальное количество цветов на карте и обход графа одним росчерком.Но я кодил узкоспециализированные функции, где все это нужно и ИРЛ, в обычном коде, манипулирующем gameObject'ами, только векторная алгебра, которую надо представлять очень хорошо, иначе заебешься.Что такое кватернионы в курсе (вчера погуглил), как конкретно они используются в юньке - хз, только в общих чертах знаю. Хотя хватает.
Ребят, помогите плиз найти ошибку в коде.
>>429411Ты дурак что ли, э?
>>429425Ну да, а что?
>>429431Да ничего.
>>429393Слушай, а если в твоём коде везде дабл заменить на флоат — всё к хуям сломается? Я просто в юньке дабл никогда не юзал.
>>429240>Например, за АИ-лесорубом гонится лесной нёх, планер берёт цель спасенияВот тут-то и проблема. Планер не должен "брать" никаких целей. Планер должен спланировать последовательность действий, которая приводит к заданному конечному состоянию. Суть планера в том, что эта последовательность теоретически очень большая, и суть планера в переборе и нахождении наиболее оптимальной (короткого) цепочки действий.А ГОАП это внебрачный сын простой utility-системы и каких-нибудь state machine. Планер ему там нахуй не всрался по большому счету. Только лишний балласт
>>429461Дабл для точности. Не должно сломаться, наверное, просто решил с запасом взять, у меня там расстояния в солнечной системе в метрах фигурируют.
>>429465>Планер не должен "брать" никаких целей.Схуяли? Цель - желаемое состояние мира, планер подбирает последовательность действий, которые переведут текущее состояние мира в целевое.Планер должен брать самую приоритетную цель.ФСМ вообще далеко, потому что для каждого действия нет чётко определённых переходов.Может ты что то путаешь?
>>429493Хуй знает о чем вы спорите, но с точки зрения здорового программирования выбором цели и проложением маршрута должны заниматься две разные сущности.
Народ объясните в двух словах. Нейросети это, как я понимаю, куча одинаковых объектов, с универсальными классами, способные взаимодействовать, классифицированные по типам: база данных, оператор, какая то хуйня. Верно ли я понимаю концепцию нейросетей или посложнее будет?
>>429506Проложением маршрута будет заниматься навмеш. Да в любом другом случае слабо представляю как это можно с чем то совмещать
>>429513Нейрон в нейросети это просто функция, принимающая значение в зависимости от вектора аргументов.Вся нейросеть это пирамида, где ты последовательно преобразуешь овер 9000 значений в одно единственное, которое дает тебе некоторую информацию.
>>429283>Но планировщик должен решать как именно мы перемещаемся.но зачем? вообще ты как-то решаешь планированием больше задач чем следует. у тебя как будто отсутствует концепция глобальных стейтов ИИ. можно же сделать изначально несколько глобальных стейтов например по уровню встревоженности. "спокойный / встревоженный / набрасывается" например. где стейты имели бы разные наборы экшонов, меняли паттерн перемещения, являлись модификатором для трешхолда некоторых целей. а планирование нужно только для построения комплексных планов из последовательности самих действий, чтобы ИИ не залип на чем-то элементарном.>Этот вариант я упустил. Для этого можно сделать цель трансформом, а не точкой и периодически менять точку назначения навмеш агента. Если трансформ вдруг стал нуллом(сенсор укрытий инвалидировал укрытие например) - остановка и реплан.описывать точку пути трансформом выглядит настолько кривой идеей насколько это возможно. это будет ещё и охуевшее структурирование уровня в добавок. а что если точка пути не является трансформом но её все равно надо сменить?>Если собрать всё вмнесте, то схема примерно такая:лол ну ты и придумал. иметь два набора планов, один из которых для движения, а другой для действий во время движения. мне кажется с такими идеями ты достигнешь лимитов этой схемы гораздо быстрей чем я своей. синхронизация этого выглядит ещё большей еботней чем то что я придумал. а что если во время движения появилось действие с долгой имплементацией из разряда неотменяемых и очень важных а конец пути уже недалеко? или осталось то-же самое действие, но нужно поменять паттерн перемещения во время действия? например ИИ обматывается бинтиком прячась в кустах, волк его покусал. а тут хопа его волк нашел, действие поменялось с "обматываться бинтиком в укрытии" на "обматываться бинтиком убегая". прерывать обматывание бинтиком и начинать снова чтоли? или "обматыватся бинтиком" это отдельно, "сидеть в укрытии / бежать в другое укрытие" это другой набор действий?>Не следующее действие, а вообще другой план. Так что это будет ближе к провалу действия. Здесь нужно расширение терминологии.какая-то хуевая схема если требует расширение терминологии на самом деле.вообще нахуй ты такую конструкцию то лепишь? могущество ГОАП то в том что у него трешхолд целей есть и только одна цель является актуальной, само планирование важно, но сравнительно второстепенно. взвешивать валидность целей легко в рамках ситуации и важно именно это. а у тебя уже пошло какое-то планирование двух целей разом, охуеть можно. как-то сильно не хватает того что объединяло бы всю эту конструкцию и упрощало. как по мне так проще иметь несколько раздельных довольно простых конструкций, которые бы объединялись общими ограничениями и соединялись одной целью. так хоть знать будешь что если ИИ нападает то он как-то охуительно напрыгнет на пути к цели, а планирователь позаботится о том чтобы стрелы были и лук был в руках и выстрелит когда увидит. а если отпиздили то он убегает а планирователь делает все чтобы выжить по дорожке.можно же совмещать несколько типов ИИ в одном сразу. стейтмашина для глобальных статусов которая всему голова, FSM для стратегических решений, GOAP для планирования цепочки действий и более тактических решений. так шанс того что хоть что-то из этого разрастется до критической массы и нахуй рухнет задавив под собой весь проект гораздо ниже, чем пока они по отдельности работают на одни и те-же цели. а ты через GOAP решаешь уже такую хуйню которую проще решить другими методами.>>429323написал навмеш, терию графов только копнул снаружи, матрицы тоже. больше всего пригодилась линейная алгебра из школьной программы, за время написания неплохо так вспомнил её. дольше ебешся с чтением о каких-то хитрых алгоритмах, или имплементацией их, чем всей этой магией цыфр.надо тоже что-то клевое и нечитабельное показать!
>>429645>но зачем? вообще ты как-то решаешь планированием больше задач чем следуетПотому что тип передвижения зависит от действия? Если агент хочет подкрасться - он будет красться, если он сваливает - он бежит. Зачем для этого менять какие то глобальные стейты?>описывать точку пути трансформом выглядит настолько кривой идеей насколько это возможноНе точку пути, а пункт назначения. Иначе как ты например будешь гнаться за движущейся целью?>иметь два набора планов, один из которых для движенияПочему два плана? Просто у некоторых действий будет в пререквизитах (OnMove,false)>что если во время движения появилось действие с долгой имплементацией из разряда неотменяемых и очень важных а конецОчевидно агент остановится и завершит действие на месте.>нужно поменять паттерн перемещения во время действия?Если понадобилось сменить паттерн движения, значит произошло что то достаточное для реплана.>с "обматываться бинтиком в укрытии" на "обматываться бинтиком убегая"А как это решит твоя схема?>а у тебя уже пошло какое-то планирование двух целей разомцелей может быть сколько угодно, приоритетная одна.>как по мне так проще иметь несколько раздельных довольно простых конструкций, которые бы объединялись общими ограничениями и соединялись одной целью.То есть это _простой и понятный_ вариант.>если ИИ нападает то он как-то охуительно напрыгнет на пути к целиНу ёбана, у него будет действие наскока с какими то пререквизитами. В чём проблема то?>ты через GOAP решаешь уже такую хуйню которую проще решить другими методамиА надо решать что то уровня подбора стрел и лука для стрельбы? Тут уж точно ГОАП не всрался, это можно жесткими стейтами в фсм сделать. Суть ГОАП именно гибком подстраивании под ситуацию. У тебя какие то behavior trees а сбоку костылём планировщик из двух с половиной действий
>>429655>Потому что тип передвижения зависит от действия? Если агент хочет подкрасться - он будет красться, если он сваливает - он бежит. Зачем для этого менять какие то глобальные стейты?чтобы не плодить сущьности, разумеется. комбинации действий должны быть пересечениями статусов, а не описываться каждый по отдельности. если ИИ атакует и его заметили, то он уже просто не будет подкрадыватся. он не будет, а тебе описывать.если что-то можно описать простым методом то именно так это и надо делать.>Не точку пути, а пункт назначения. Иначе как ты например будешь гнаться за движущейся целью?да не суть важно даже. я к тому что не все целевые места перемещения могут быть привязаны к объектам глобально. >А как это решит твоя схема?если бинтование занимает только руки то ИИ встанет и начнет убегать бинтуя себя. перемещению ничего не мешает, а за перемещением следит другая хуйня. >Ну ёбана, у него будет действие наскока с какими то пререквизитами. В чём проблема то?да зачем действие наскока? вот бегает например киборг, прыгает через стены, летает через камни, в полете кидает гранаты, стреляет, таскает павших товарищей, иногда подбегает кнопки жмет. навигация из А в Б у него происходить должна сама собой, навигация подстраиваться под положение противников и свой статус, действия под собственную позицию, одни действия должны переходить в другие не волнами а постоянно. и только редкие задачи должны говорить ему где надо быть чтобы их выполнить. паузы между действиями вообще быть не должно.>А надо решать что то уровня подбора стрел и лука для стрельбы?йеп. или более сложные комбинации. например ИИ хочет корзинку кокосов, кокосы есть только у продавца, надо денег, идет в лес и собирает ягоды, или на реку ловить рыбу, или палкой червей копает, меняет лут на кокосы. или если ничего не может то бьет палкой продавца и отбирает кокосы если очень надо. это - планирование. описывать детали в нем не нужно. детали можно отдать на откуп другим более специализированным штукам.>Тут уж точно ГОАП не всрался, это можно жесткими стейтами в фсм сделать. в динамичном мире нельзя. плюс ГОАП помимо очевидных же в том что пулл действий можно менять на ходу. выпал предмет - появились действия связанные с ним, например. это в ФСМ делать по человечески нельзя.ну и другой плюс ГОАП в том что пулл целей может шариться между членами сквада, разумеется, чтобы была иерархия.гибкость ГОАП то в первую очередь в том что эти листы можно редактировать.>У тебя какие то behavior trees а сбоку костылём планировщик из двух с половиной действийну так. планирование там где вообще должно быть планирование в какой-то форме. для манипуляций с инвентарем просто заебись, групповые действия тоже просто заебись, глобальная навигация заебись. везде где требуется планирование в динамичной ситуации заебись. а вот для тонких манипуляций требующих параллельности совсем не заебись. ты вот решил костылем решить, я решил что проще сделать метод синхронизации и указать кто тут клитором коммандует. мне вот очень интересно посмотреть что у тебя выйдет, у меня то вон рабочий прототип же есть уже. может ты там что-то ещё лучше придумаешь.
>>429677>а тебе описыватьЧто описывать то?Чем вообще вынесение стейтов отдельно - не пложение сущностей по сравнению с держанием этого в стейтах мира?>если бинтование занимает только руки то ИИ встанет и начнет убегать бинтуя себяТо есть это не два набора планов, один для движения, а второй для действий?>да зачем действие наскока?То есть он не выполняет какое то действие, а просто наскакивает на ифах?>ну и другой плюс ГОАП в том что пулл целей может шариться между членами сквадаМне всё больше кажется, что ты постепенно изобретаешь hierarchical task network>ты вот решил костылем решить>я решил что проще сделать метод синхронизации и указать кто тут клитором коммандуетПрямое и явное решение.>мне вот очень интересно посмотреть что у тебя выйдетЛадно, попробую то, на чём остановился. Разговор всё равно зашёл в тупик.
>>429716>Чем вообще вынесение стейтов отдельно - не пложение сущностей по сравнению с держанием этого в стейтах мира?нет конечно, они же глобальные для ИИ, доступные всем его компонентам. цели ГОАП ориентируются на стейты, навигация ориентируется на стейты, все на них ориентируется. но планирование уже следует цели у ГОАП. в плане поведения ИИ можно очень много писать его глобальным состоянием. пытается он стелс, или набигает, или убигает, или спокойный или ещё какой. проще задавать общие паттерны поведения же и потом ими пользоваться везде так как они будут стопроцентно и довольно легко менять оценку состояния.>То есть это не два набора планов, один для движения, а второй для действий?движение от противника это прямая реакция при присутствии противника который о тебе знает и низком здоровье. тут никакого планирования не требуется делать. а вот бинтование более сложная реакция на низкое здоровье, она требует прекондиции. поэтому бинтуемся через планирование, убегаем по обстоятельствам. пока бинтование не мешает убеганию - сьебываем.>То есть он не выполняет какое то действие, а просто наскакивает на ифах?йеп. ну тоесть можно же и посложней конечно чем ифы сделать логику, чтобы ИИ там смотрел откуда выгодней набигать, выставлял рейтинги оружий как модификаторы оценки для ГОАП основываясь на окружении, например. главное что эта логика существует самостоятельно и её можно в любой момент поменять без особых страданий.вообще, вот человек когда в игры играет он как думает? надо набижать, надо убижать, надо обойти, надо скрытся. думает над путями согласно плану, подстраивает снаряжение под обстановку. если есть друганы то уже кооперация с друганами задает общий статус и планирует снаряжение и дальнейший паттерн поведения. так-же надо примерно выстраивать мышление и для ИИ. память конечно через гоап мы нормально не сделаем, но такая ветвистость логики дает ощутимую универсальность за счет того что обстановку проще проанализировать слоями.>Ладно, попробую то, на чём остановился. Разговор всё равно зашёл в тупик.показать не забудь. в этом разделе все обсуждение ИИ загибается по каким-то нелепым причинам. видать давно люди не играли в игры вроде FEAR, или сталкера
>>428296Что это? Это слово даже не гуглится, рофл.
>>429772LateUpdate()
>>429773Ну я попробовал через ЛейтАпдейт. Все-равно, если идти в стену. то персонаж по кд пытается в неё зайти и выталкивается.
>>429729>пытается он стелс, или набигает, или убигает, или спокойный или ещё какой>а тебе описыватьНу всё же расскажи что лишнего и неудобного описывать планом в подобной ситуации. Мне правда интересно, может я упускаю что то очевидное.Давай возьмём пример: у нас есть скрытный пидор, который может красться(что обещает ему пребывание невидимым для врага), а может бежать, может атаковать врага открыто, а может бить сникатакой, требующей пребывания невидимым. Удар сникатакой имеет более низкую стоимость, значит будет в приоритете. Цель - бить врага.Чего лишнего описывается в этом случае по сравнению с вариантом с заведением глобальных стейтов стелс/хуелс, разблокирующих каждый по два действия?
Мне, вот, такая хуйня в голову пришла. Вот если раз 10 - 15 в секунду двигать вертексы в меше, что эффективнее? Каждый раз читать их с меша или хранить копию в виде массива и мешу только присваивать вертексы.
>>429779если смотреть в рамках вопроса то ничего. удар обычный, удар из стелса с пререкваерментом - в этой схеме ничего лишнего, не говоря о том что такие вещи как удар в мили должны так-же имплементить особые сорта перемещения до цели. если выйти перед десантником то у него так-же удар прикладом будет в приоритете, он подбежит и ебанет.если смотреть в рамках всего обсуждения то в случае наличия глобальных статусов можно например менять стоимость у таких действий как "использовать лук", или "использовать кинжал", вместо чего-то громкого. так-же если стелс активен то персонаж например меняет приоритетность у других зон карты и выбирает пути через высокую траву чтобы попасть куда надо, залезает под лесенки более охотно, старается уйти из конуса обзора при навигации. чтобы ГОАП сказал "иди сюда" и ИИ пополз в стелсе туда обходя все заметные места. например за спину жертвы. ну и в конце концов сет анимаций поменять чтобы ИИ ходил горбатым и башкой нервно мотал. можно много придумать как подобный статус могли бы имплементить другие элементы ИИ.>>429782храни копию. торговать памятью всегда эффективней, если её ещё много в запасе. но вообще лучше скажи че там делаешь, все кроется в деталях как всегда же.
>>429785Спасибо, дружище. Как-то уже пытался, но решил начать снова. Запилить простенькую деформацию террейна а-ля СПИНТАЙЕРС под ведро.
>>429778Ну значит ты наговнокодил. У меня на голых коллайдерах с коллизиями всё нормально было.
>>429786а, а я кажись тебя помню. кстати а чего ты вертексы собрался редактировать то? может шейдор ебанешь чтобы вот примерно как в бэтмане? вообще где-то у меня был клевый ютубер который что-то похожее на коленке за часик слепил. https://www.youtube.com/watch?v=l_2uGpjBMl4 может интересно будет
>>429789https://youtu.be/FvCmPlUF-T8
>>429794> float СкоростьА с тобой шутки плохи, да?
>>429794> public float Скорость
>>429790Не, я тут, вроде, не делился ничем таким. В шейдеры я не умею.
>>429796>>429797Ну я хз, мне просто прикольным кажется, когда в редакторе переменные на русском написаны. Этож не влияет ни на что, рофл.
>>429801> мне просто прикольным кажется, когда в редакторе переменные на русском написаныПродолжай, у тебя всё получится.
>>429801> рофлНастримятся своими дотами, а потом рофлят и ебут друг друга в жопы.Рашид, завязывай кодить.
>>429802>>429803Вы чего порвались на пустом месте? Ну нравится человеку, пусть хоть на хинди называет.
>>429802Ну я просто не шарю совсем. Так нельзя делать? Я думал, что так не делают от того, что это поуебански выглядит.
>>429805Да кто порвался-то? Я ж и говорю, пускай развлекается, всё получится.
>>429806> Так нельзя делать?Если ты кодишь чисто для себя чисто руку набить — называй как хочешь, хоть хуйпизда. Но лучше сразу приучаться к стандартам оформления, чтоб потом не переучиваться.
Так а как это пофиксить и сделать, чтобы персонаж просто упирался в стену, как через rigidbody? Если я пытаюсь делать через rb, то всё фризить начинает:https://www.youtube.com/watch?v=wrHmbiv41h0>>429808Понял, принял.
>>429819Я сейчас наткнулся на статейку, где говорится, что transform.position/transform.rotation сильно снижают производительность, если использовать это на объектах с rigidbody. Враги у меня имеют rb, но перемещаются и поворачиваются с помощью transform. Еще я замечал, что если удалить их и использовать rb для движения, то лагов не будет. Я в правильном направлении думаю? Мне надо переделать движение врагов для повышения производительности?
>>429838> transform.position/transform.rotation сильно снижают производительность, если использовать это на объектах с rigidbodyАга, прям пекарня горит.Хуйнёй не занимайся.
>>429839Так я не понимаю, с чем тогда связаны лаги при использовании rb? Типо, я так гуглил, большинство считает, что это охуенная штука, врядли бы так считали, если бы это так сильно убивало производительность. Вот статейка, кстати:https://habrahabr.ru/post/248391/
>>429842Статейка от 15-го года? Окей.
>>429785>если смотреть в рамках всего обсуждения то в случае наличия глобальных статусов можно например менять стоимость у таких действий как "использовать лук", или "использовать кинжал", вместо чего-то громкого. так-же если стелс активен то персонаж например меняет приоритетность у других зон карты и выбирает пути через высокую траву чтобы попасть куда надо, залезает под лесенки более охотно, старается уйти из конуса обзора при навигации. чтобы ГОАП сказал "иди сюда" и ИИ пополз в стелсе туда обходя все заметные местаНо это всё может быть сделано просто в действии скрытного перемещения. Весь глобальный стейт стелса заменяет ворлдстейт (StayHidden,true). Но если ты захочешь сделать так чтобы этот же скрытный пидр мог бить сник атакой вне стелса, например, ослеплённых противников, то прийдётся лепить ещё один иф для нахождения вне стелса.Мне просто кажется, что тебе ГОАП вообще не нужен: ты используешь глобальные стейты, а действия распределяешь _просто ифами_, называя работой ГОАП формирование пула действий.Рили попробуй HTN, мне кажется это то, что ты пробуешь изобрести.
>>429868> А вот если мне нужно еще и источники света расставить по карте? Я же не могу ставить их наугад и каждый раз смотреть нормальная ли яркость света, нормальный ли радикс освещения, нормальный ли цвет. Как тут быть?Чего блять? Ставишь свет и крутишь как надо.
>>429873Что ты несёшь? Ты вкладку Scene вообще видел?
>>429881>таких редакторов полно.Ну так и в чем проблема? Берешь любой из множества доступных редакторов и пользуешься.
>>429870Навмеш хорошо оптимизирован, на больших открытых пространстван даже эффективнее Астара с тайлами.
Нужно сделать красивый выпадающий список как на пик1. Его я смог сделать скопировав код пик2 из какой-то статьи. Но я так и не понял как использовать значения в скрипте? Как мне понять что из этого меню выбрано? Что такое ComponentType? Что значит { StartDialogue = 1, LoadScene = 2 } ? Если выбрано StartDialogue, то значение переменной становится 1? В интернете не смог найти.
>>429970Нууу, можно через GetComponent проверять наличие какого-либо компонента, например.А вообще не заморачивайся, если у тебя это несколько раз используется, то никто от этого не помрёт.
>>429961В игре или в редакторе?Если второе, то enum показывается в редакторе в виде этого самого выпадающего списка.
>>429961Ну как всегда после вопроса на дваче я нахожу нужную страницу. Разобрался уже.
Соре за оффтоп, но почему эта тема такая активная? Всмысле, я мало игр знаю от харкача, а в разделе жизнь кипит.
>>427791> Тут что так мертво или юнити девелоперы вымерли?>>430023> почему эта тема такая активная?Это даже мило.А вообще — у движка большое комьюнити, оттуда и оживлённая беседа.
>>430024А можешь посоветовать места, куда можно вкатиться новичку? Или, в целом, это не особо нужно и хватит гугла? Я быдло, в ангельский не могу.
>>430028Да в шапке всё есть.И туториалы и книги (и на русском в том числе).
>>430028> в ангельский не могуБудет сложновато. Не сложнее чем на другие движки, но без английского реально хуево. Я полгода назад вкатился в геймдев, и уже пришлось прочитать одну книгу на английском, сейчас начал еще одну. Плюс самый охуенный инструмент на начале - это ответы на форумах Юнити, а они в основном на английском, да и гуглить надо правильно на английском.
>>430034> да и гуглить надо правильно на английскомУдваиваю этого благородного дона.Как затык придёт — на русском хуй чё найдёшь.
Короче, я тут недавно спрашивал насчет диалогов и ассетов. Сейчас откопал пиратские и попробовал. Заключение:1) Dialogue System For Unity - говно для даунов-аутистов, до сих пор удивляюсь откуда у него такие хорошие оценки в сторе2) NodeCanvas - годнота. Всё сделано по человечески. Плюс помимо диалогов можно еще делать АИ и прочие крутые штуки.По крайней мере, это первое впечатление. Глубоко не зарывался.
>>430051>NodeCanvasОтсутствие безбладной демки едва ли облегчит выбор.Надоть видосики глянуть тьюторриалные
>>429844в действии должно быть описано только само исключительно само действие. ты погромировал чтоли мало в своей жизни, шишки не набил с размазыванием логики? не доверял слишком много функциям которые вызываются хуй пойми когда и где? если я захочу чтобы скрытый пидор мог бить сник атакой вне стелса то либо надо задать альтернативные условия для действия, либо скопипастить эти 3.5 строчки описывающие действие с новыми условиями где если враг ослеплен то можно его ебануть хорошо. вообще ты как-то странно структурируешь ИИ. ты понимаешь в какую мусорку превратится ГОАП если там будет описано просто всё? и оно будет размазано по действиям? это ебануться можно редактировать все это.>а действия распределяешь _просто ифами_>Мне просто кажется, что тебе ГОАП вообще не нуженда по моему это ты не совсем понимаешь нахуй этот ГОАП нужен и пытаешься возложить на него больше чем надо.я же уже показывал скриншотик, где у ИИ винтовка разряженная в инвентаре, рядом лежит ещё одна и отдельно патроны к ней и надо выстрелить из винтовки. это по твоему как ифами ебануть то? а варианты где взять патроны, или винтовку, могут множится и множится.внутри простых действий требующих навигацию разумеется проще пользоваться ифами.нахуй вообще описывать перемещение в действии ГОАП? ты ещё там ебани всю логику перемещения, чтобы оно там следило когда бегать, когда прыгать, чтобы лезло в аниматор, позицию там проверяло. чтобы открыл а перед тобой стена текста тыщи на полторы строк в которой какая-то не читаемая мешанина. а когда отдаешь все это на откуп глобальному менеджеру и контролеру и уже можешь это читать и даже наследоваться от него и менять имплементацию деталей то все что остается делать в ГОАП это описать в действии перемещения одну сраную строчку. а нахуй оно надо то? лучше уж под врага завести экшон "ебануть врага номер такой" где в имплементации "если далеко то подбеги" и ссылка на врага чтобы можно было сказать менеджеру "беги хи-и-итро".>Рили попробуй HTNон не пользуется A* же. как таким в динамичном мире пользоватся? я понимаю георию графов достаточно хорошо чтобы понимать пользу от поиска пути на нем, чем ГОАП и является.>>429842что у тебя за проблемы такие? нахуй ты в трансформ вообще лезешь если у тебя RB? если у тебя RB то манипуляции уже делай все через него. у тебя же специальные AddForce, AddTorque и прочие есть которые гарантируют тебе что все будет через физон.>>429798лол ну ты тогда не первый в этом случае. а в шейдеры смоги. полезно же. например в бэтмане клево сделали, у них там везде есть поверхности под которыми ортогональная камера которая рендерит только глубину на максимальную дистанцию там где поверхность заканчивается. все что попадает в эту камеру рисует на ней. а нарисованное появляется на поверхности как карта всех этих вмятин. если бы не мобилки то можно было бы ещё ебануть всякую симуляцию в компьют шейдорах например что типа ветер дует и вмятины деформируются со временем. >>429870да через навмеш делай навигацию даже с тайтловой картой если у тебя никакой логики не завязано на этих тайтлах. если делаешь пошаговую стратегию то да, тайтлы нужны, а так то нахуй оно надо>>429918ебани свой редактор прямо в юнити. займет пару вечеров, а от страданий избавит на все время разработки проекта.>>429970почитай про ссылочные типы и про валуе типы, а потом подумай о том что строка это массив с буквами. тогда поймешь о чем речь тут идет. вообще можно и через теги проверять, просто не создавай каждый раз строку просто чтобы сравнить с ней, а пользуйся ссылкой на эту строку. тебе же инструменты дали заебись, пользуйся но с умом.
>>430058Ну да, у канваса трудно сделать первую ступеньку, но потом намного легче. На ютьюбе есть ролики от народа, они помогают.А у Диалог Менеджер слишком переусложнен. Я так понимаю он сделан для тех кто вообще не хочет залезать в спрайты, так что там много всяких финтов странных, которые хуй просечешь. И документация хуевая, я за целый день так и не понял как напрямую из скрипта вызывать диалог, например. У НодКанваса это сразу же показывается. Алсо, может знающие пояснят, нахуя они впилили туда Lua?
>>430059Я не то чтобы доебаться, но ты шифт из клавы выдрал что ли?
>>430065mehя и точки не пишу иногда. вот так общаешься в интернете два десятка лет, пишешь стены текста. а со временем техника печатания оптимизируется сама собой чтобы требовать меньше и меньше усилий. в итоге перестаешь давить на шифт, ставить точки, пользуешься грамматикой только там где это может вызвать недопонимание
>>430066Ну ты же лукавишь, запятые сами себя не прожмут.Но а вообще, повторюсь, я без всякого этсамого.
>>430067запятые то нужны, без них страдает построение предложения и передача смысла. этим нельзя жертвовать на форумах. к тому же запятые ставятся нажимая правый шифт, а не левый. там если два пальца рядом то они сами нажимают это комбинацию. сложней ставить вопросительный знак, в русской расскладке он ну пиздец как неудобно расположен, чаще переключаюсь на английскую расскладку чтобы его поставить.левый шифт я вообще предпочитаю не нажимать, разве что когда восклицательный знак ставлю то жму его, или кавычки в русской раскладкевообще это большая тема и не в рамках обсуждения юнити она
Уважаемые юнитибояре, поясните ньюфагу, как вы делаете в своих играх менюшки и окошки. Хотелось бы отделять код логики окна от кода всяких там анимаций, кнопочек и прочхуеты. Кнопки делаю из Image-ей. Поясню свою проблему.Перекатываюсь к вам с мертвого флэша: там пилил на каждое окошко два класса - лейаут (верстку) и контроллер, при этом контроллер прокидывал абсолютно одинаковым кнопкам в лейауте определенные коллбэки (функции), что мол надо сделать по клику, а как там сама кнопка (стандартная в рамках игры, сделанная тупо из имеджа, со своей логикой отображения и тп) подслушивала все эвенты и решала когда пора коллбэк дернуть, его не ебало. В юньке вместо леайута по сути получается мой префаб окна. Но в шарпике же как я понял методы контроллера в виде коллбэков не покидаешь нормально в кнопки? Или я не прав? Вроде есть какие то "делегаты", но чет они слегка замудрено выглядят. Юнитискрипт не предлагать.А для каждого окна пилить десяток классов кнопок (Button1Script, Button2Script, CloseButtonScript, ...) просто чтобы на клике по ним делать что-то по типу парент.гетКомпонент<контроллерОкошка>().методКоторыйДолжнаДернутьКнопка1() (и т.п), мне кажется неудобной хуетой. Вижу конечно частичное решение замутить некоторую "базовую" кнопку из имейджа и конкретные десять в окнах наследовать от нее, но это ж как то неудобно.Как в итоге грамотно замутить подобную систему? Шоб повесить на префаб окошка скрипт контроллера и он десятку абсолютно идентичных с точки зрения кода кнопочек - прокинул свои методы, которые кнопочки будут послушно дергать? Другими словами, хочу повесить на 10 кнопок один и тот же скрипт (БазарюКнопка.cs), но чтобы он делал разные действия, которым его научит батя (контроллер окошка) уже где надо. Все ради того, чтобы в самой юньке один раз собранное окно ващщщще не шатать, а в случае если нужно будет что-то поправить, спокойно фиксить код. Или я довнич и это велосипед и лучше так не делать?
>>430070> как вы делаете в своих играх менюшки и окошкиЧерез UIДальше не читал
>>430070> Но в шарпике же как я понял методы контроллера в виде коллбэков не покидаешь нормально в кнопки?неа, не прав. делегаты так-же отлично и через код присваиваются. ты бы API почитал. https://docs.unity3d.com/ScriptReference/UI.Button-onClick.html просто у юнити есть ещё этот редактор делегатов. как иначе делать менюшки например с выбором разрешения? это же охуеть можно.делегаты это методы которые работают как значение. чтобы ты например мог куда-то сказать "вот тебе функция, ебани её когда сделаешь свое говно".
>>430070>>430071Чет я сумбурно расписал, попробую проще:Как запилить на C# такой скрипт (один на всю игру) для Image-а, чтобы он делал Image-ы (любые) универсальной кнопкой? (Как слушать события мышиные - понимаю). Чтобы кнопка не сама определяла, что она должна делать по клику, а кто-то извне ей сказал типа button.onClick = function "такая то".
>>430074> Как запилить на C# такой скрипт (один на всю игру) для Image-а, чтобы он делал Image-ы (любые) универсальной кнопкой?Добро пожаловать в мир классов и наследования.
>>430073О, спасибо, анон, чет я ебался в глаза и не увидел что у уи уже есть Button, думал надо замутить Image и слушать клик самому (хотя наверное баттон делает то же самое).Т.е. получается я делаю контрллер, вешаю его на окошко, заворачиваю его метод в делегат, делаю геткомпонент<ебанаяКнопка>() и ей его в поле сохраняю? а в TaskOnClick уже дергаю?
>>430078> Т.е. получается я делаю контрллер, вешаю его на окошко, заворачиваю его метод в делегат, делаю геткомпонент<ебанаяКнопка>() и ей его в поле сохраняю? а в TaskOnClick уже дергаю?Усложняешь. В юнити в UI уже листнеры висят, вешай на всё что хочешь, если у тебя на войде публичный модификатор.
>>430080А если у меня будет скриптик MySuperAwesomeButton который там внутри кнопки слушает эвенты всякие и по разному ее анимирует (скажем скейлит при наведении, затемняет при клике, и тп), а я потом на те же самые эвенты понавешаю еще листенеров где-нибудь снаружи в контроллере, это не будет тормозно? Сужу все по тому же старому болезненному флэшу, где каждый ебаный эвент каждому своему листенеру при триггере порождал аллокацию и было выгоднее не 20 эвент листенеров регистрировать, а замутить 1 листенер который бы уже 20 методов разных дергал, или вообще коллбэками все обвязывать. Хотя наверное я дед инвалид и нормальные люди в юньке замутили хорошо...
>>430074да я же уже ответил на твой вопрос и ссылку дал. вот понимаешь? есть функция. а хуяк можно функцию передать как значение. это - делегат. вот есть у тебя кнопка та ты такой мояКнопка.onClick.AddListener(МояФункция); и тогда хопа кнопка будет делать твою функцию когда довиш на неё.кстати ты это, осторожней с делегатами сделанными из кода. особенно осторожней с теми делегатами которые присваиваются в цыклах, где в качестве инпута есть енумератор. >>430078там в меню кстати ещё и не весь функционал мог увидеть. самое охуительное когда тыкаешь у выбранного геймобжекта AddComponent в меню инспектора и лезешь во вкладку Layout.баттон то в целом делает то-же самое и делает это приятно. вообще если тебя интересует имплементация то эти хуи делали этот UI опенсорсным, можешь почитать. https://bitbucket.org/Unity-Technologies/ui>>430081лол ты чего страдаешь то так. тут же методы вроде OnDeselect, OnMove, OnPointerDown, OnPointerEnter, OnPointerExit, OnPointerUp, OnSelect и прочее прочее у тебя публичные, ты API почитай. некоторый функционал и так уже есть вроде изменения цвета при наведении курсора. наследуйся от кнопки, оверрайдни эти функции которые для этого и сделаны, сделай там любую сраную хуйню вплоть до того что при наведении на элемент интерфейса приступ эпилепсии мог случится. можно ещё встроеным редактором анимаий воспользоваться с кривыми чтобы окошко там приятно размеры меняло или ещё че. вообще на https://www.assetstore.unity3d.com/en/#!/content/25468 вот тебе официальные экзамплы, посмотри что там и как оно сделано
>>430064>может знающие пояснят, нахуя они впилили туда Lua?я >>430058видосики нашлись и голос у говорящего приятныйLua нужна для скриптирования, как я понял. Ясно, что можно было бы и обойтись чисто сисярпом.
>>430059>в действии должно быть описано только само исключительно само действиеТы там засыпаешь уже? Навигацией занимается не действие, а навмеш и настройка над ним. Действие лишь даёт команду идти и задаёт образ передвижения. Все эти весёлые и занимательные стейты с поиском кустов будут только в навигаторе с синхронизацией через одно вхождение в ворлдстейт, без необходимости подстраивать всё.>ты погромировал чтоли мало в своей жизни, шишки не набил>это ебануться можно редактировать все это>не доверял слишком много функциям которые вызываются хуй пойми когда и где?>в какую мусорку превратится ГОАП>скопипастить эти 3.5 строчки описывающие действие с новыми условиямиБля не дави плиз((( Рассказываешь о чистоте действий и сразу копируешь строчки кода с новыми условиями и делаешь два похожих действия для стелса и его отсутствия. Интуитивно редактируемо.>нахуй вообще описывать перемещение в действии ГОАП?>ты погромировал чтоли мало в своей жизниПро ООП не слышал? Действие не реализует движение, оно описывает его характер.>он не пользуется A* жеТам прямой поиск по графу. H - это hierarchical>я понимаю георию графов достаточно хорошо чтобы понимать пользу от поиска пути на нем>чем ГОАП и являетсяТы кстати и не рассказал какие планы ты строишь и пути ищешь. Вот был пример с обоймой и внтовкой, но почему это не сделать ифами?
>>430098>Навигацией занимается не действие, а навмеш и настройка над ним. Действие лишь даёт команду идти и задаёт образ передвижения. Все эти весёлые и занимательные стейты с поиском кустов будут только в навигаторе с синхронизацией через одно вхождение в ворлдстейт, без необходимости подстраивать всё.чего план то такой хитрый? вот стейт ИИ сменился внутри гоапа, он стал у нас спрятанным, появилась возможность применять действия. но актуальный паттерн передвижения сменится только после следующего действия? тоесть типа стоит ИИ посреди поля в idle, понимает что он спрятался, видит враг идет и надо ебануть бы его и только тогда он приседает и ползет чтоли?>Бля не дави плиз((( Рассказываешь о чистоте действий и сразу копируешь строчки кода с новыми условиями и делаешь два похожих действия для стелса и его отсутствия. Интуитивно редактируемо.если занимают они 3.5 строчки, различаются одной кондицией пререкваермента то чего мудрить. назвал по другому. теперь у нас не StealthAttack, а SneakAttack, положил рядом. может ещё чего потом напишу. например StealthAttack чтобы делать надо сзади подбежать, а SneakAttack можно и не сзади. пока это два разных действия которые требуют хуй да нихуя описания то.>Про ООП не слышал? Действие не реализует движение, оно описывает его характер.как характер то описывать придумал? >Там прямой поиск по графу. H - это hierarchicalтам иерархический поиск по графу, сверху вниз. если бы делал РТС например где я всегда знал бы изначальную возможную последовательность действий и примерное их количество то это было бы адекватно. но не у меня.>Ты кстати и не рассказал какие планы ты строишь и пути ищешь. Вот был пример с обоймой и внтовкой, но почему это не сделать ифами?потому что винтовки может и не быть вообще, патрон может и не быть вообще, или чтобы их получить надо взять их, а чтобы взять надо залезть, а чтобы залезть надо ключ. разумеется некоторые действия скорей всего будут в конце, а некоторые скорей всего в начале, но учитывая все варианты цепочка может быть весьма длинной. как такое ифами то ебануть? а что если ебошить может не только винтовка, есть пистолет, но нет патрон к нему, но есть патроны к винтовке?
Как выглядит строчка кода, чтобы засечь время? Например : if {прошло 2секунды после actiona} ...
>>430115Time хранит в себе время с момента запуска сцены. Используй его, Люк.
>>430116Time.time если быть точнее
>>430099>тоесть типа стоит ИИ посреди поля в idle, понимает что он спрятался, видит враг идет и надо ебануть бы его и только тогда он приседает и ползет чтоли?Ты тралишь? Идл он будет с стелсе путём действия "сидеть в стелсе".>ну вот лишнее действие! засрано всёНо точно так же при переключении глобальных стейтов у тебя тоже действие идл на ифах будет обрабатываться иначе - спихивание кучи всего в одно место, от чего ты меня недавно предостерегал.>если занимают они 3.5 строчкиА если больше, то уже что то ещё придумывать? А потом ещё что то новое?>как характер то описывать придумал? Передавать навигатору экземпляр класса NavigationContext очевидно же.>а что если ебошить может не только винтовка, есть пистолет, но нет патрон к нему, но есть патроны к винтовке? Ну то сеть мы лишнего в ГОАП не пихаем, но наличие всех видов оружия и патронов к ним мы там всёже храним?>но учитывая все варианты цепочка может быть весьма длиннойНо весь однойзначной, не считаешь?Что мешает сделать по ифу на видимость патронов, винтовки? Подбирание - действие с перемещением уже на ифах реализовано.
>>430129Угаманись блять угаманись пока я тебя не пристрелил.GOAP это был неудачный эксперимент по использованию планировщиков для ИИ игор. Все признали, что это неудачно и никто сейчас его не использует.
>>430130> Все признали"Все" это кто?
>>430131ИНДУСТРИЯ
>>430141> Или это можно как-то по-другому сделать?Blend trees.
Пилю пиксельную игру. Я так понимаю мне нужно взять одно разрешение, например 16:9, и пилить под него? И если это запустят люди с другим разрешением, то у них это будет с черными полосами по бокам или сверху? По другому никак нельзя? Например расширять поле обзора?
>>430170Пилильщик блин, ты б сначала самые элементарные азы почитал.Ctrl+Shift+B - Player settings - Resolution and Presentation
>>430131/gd/
>>430136И к чему пришла индустрия?
>>430186К тому, что ничего проще и лучше behavior tree нетуhttp://www.gdcvault.com/play/1023055/AI-Behavior-Editing-and-Debugging
>>430188>DivisionРезультат заметен.
>>430181Лол. Я уже полгода изучаю юнити, но про это окно узнал впервые. Уже делаю нормальные пиксели, как боженька завещал.Кстати, зачем нужна галочка "Pixel Snap" на шейдерах? Что именно он снепит?
>>430188>ничего проще>FSM
>>430250behaviour tree намного проще на самом делеменьше boilerplate-кодаты охуеешь делать стейт машины, если у тебя много состояний
>>430129>Ты тралишь? Идл он будет с стелсе путём действия "сидеть в стелсе".а что гарантировать то будет смену статуса? или что будет гарантировать то что стелс не вскроется потому что ИИ неожиданно захочет грибов собрать?>Но точно так же при переключении глобальных стейтов у тебя тоже действие идл на ифах будет обрабатываться иначе - спихивание кучи всего в одно место, от чего ты меня недавно предостерегал.ты же понимаешь что глобальные статусы будут активироватся не зависимо от текущего действия? вообще с чего бы в моем варианте обрабатыватся в одном месте то? я наоборот все разделяю. логика получения статуса отдельно, имплементация статуса отдельно, планирование отдельно, ничего друг другу не мешает.>А если больше, то уже что то ещё придумывать? А потом ещё что то новое?ну а хули? множить классы ничего не мешает пока они компактные.>Ну то сеть мы лишнего в ГОАП не пихаем, но наличие всех видов оружия и патронов к ним мы там всёже храним?ну а как ещё то? вообще каждый предмет должен хранить список экшонов связанных с ним, чтобы само наличие их давало варианты. использование плюса динамичного листа экшонов, хули.>Что мешает сделать по ифу на видимость патронов, винтовки?то что вкладки с ифами будут правей чем граница монитора?>>430130да что ты. вон на вскидку в третем фолаче ГОАП, в DeusEx:HR тоже ГОАП.>>430141https://unity3d.com/ru/learn/tutorials/topics/animation/avatar-masks
>>430272>а что гарантировать то будет смену статуса?Какую смену статуса? Он будет выполнять то, что требует приоритетная цель. Он будет сидеть в стелсе потому что это необходимо для текущей цели и действий, которые к ней ведут.>или что будет гарантировать то что стелс не вскроется потому что ИИ неожиданно захочет грибов собрать?Это уже совсем другое действие ведущее к другой цели. Но банально собирание грибов имеет как прекондишн отсутствие врагов.>я наоборот все разделяюТы читал про что речь? Действие идл будет иметь несколько вариантов выполнения в зависимости от стейта. Или же будет несколько действий идл, зависимых от стейта? В чём тогда смысл отбора контроля за ним у планировщика?>множить классы>вот 3 строчки копирую, а потом ещё что>множить классы>ну а как ещё то?Завести глобальный стейт для текущего оружия же>>430263>behaviour tree намного проще на самом делеРедактировать деревья гораздо сложнее.>ты охуеешь делать стейт машины, если у тебя много состояний >стейт машины>СТРИПС
>>430306>Какую смену статуса? Он будет выполнять то, что требует приоритетная цель. Он будет сидеть в стелсе потому что это необходимо для текущей цели и действий, которые к ней ведут.смену паттерна действий. чтобы сел в стелс и сидел там и это не прерывалось ничем пока стелс активен.>Это уже совсем другое действие ведущее к другой цели. Но банально собирание грибов имеет как прекондишн отсутствие врагов.тоесть у тебя будет отдельно собирание грибов чтоли? не будет дженерик действия "собрать предмет"? а что если надо оружие поднять в бою?>Ты читал про что речь? Действие идл будет иметь несколько вариантов выполнения в зависимости от стейта. Или же будет несколько действий идл, зависимых от стейта? В чём тогда смысл отбора контроля за ним у планировщика?слыш, мне вот интересно. а у тебя будет 3-5 вариантов под каждое действие чтоли? типа, идл в стелсе, идл нервный, идл хромой, идл выпивший и прочее? или вот если у тебя статус хранится как флажок в ГОАП, то как ты будешь менять модификаторы трешхолда у гоалов которые изначально бы зависели от статуса персонажа? когда например если персонаж счастлив то он мороженое хочет покупать, а когда грустно ему то он виски выпить в баре хочет. >Завести глобальный стейт для текущего оружия жеа типы патронов как различать, м?
>>430312>не прерывалось ничем пока стелс активен.Написано же следование приоритетной цели, если текущий план валиден, то ничто не прервёт стелс.>не будет дженерик действия "собрать предмет"? а что если надо оружие поднять в бою?Дженерик собирание грибов с динамическими прекондишенами. У нас же обратный поиск, планер будет знать контекст подбирания предмета.>типа, идл в стелсе, идл нервный, идл хромой, идл выпивший и прочее?Да. Часть действий можно конечно свернуть в одно, если это не влияет на планирование.>или вот если у тебя статус хранится как флажок в ГОАП, то как ты будешь менять модификаторы трешхолда у гоалов которые изначально бы зависели от статуса персонажа?Процедурно извне.>когда например если персонаж счастлив то он мороженое хочет покупать, а когда грустно ему то он виски выпить в баре хочетНекорректное сравнение со стелсом. Грустным или радостным персонаж становится извне, что может менять приоритеты целей. Но в стелс АИ должен уходить сам, добивая своей цели по уничтожению противника.
Мимо тот же переселенец с флэша. Мануалы не читай - гдач спрашивай!Сделал простенький дисплейчик - картинка и текст, прилепил на него скрипт (MyYobaDisplay), где на Start считываю компоненты дисплейчика в переменные и есть метод SetData(data:MyYobaData), в котором компонентам из переменных задаю параметры из этой самой даты (тексту стрингу, картинке цвет). Сделал "окно" в которое накидал с десяток таких дисплейчиков. Сделал контроллер окошка, в нем на Start ищу все MyYobaDisplay-и, сохраняю их к себе и генерю для них MyYobaData-ы, и сразу им прокидываю. Но поскольку Start бати (контроллера) логично дергается раньше чем Start чилдов (дисплеев), то в момент когда батей делаю SetData им, у них внутри еще нет ссылочки на их компоненты и они не могут нормально покраситься исходя из прокинутой датки.Внимание вопрос: как "батей" грамотно подождать инициализации всех чилдов? Делать костыль с флагом на первом апдейте? А не будут ли тогда на долю секунды видны пустые белые хуйни с дефолтным текстом у MyYobaDisplay-ев? В юньке наверняка есть более грамотный метод шобы сделать пиздато... Может эвент какой подождать надо и на нем уже датку прокидывать? Как тру пацаны делают?
>>430341upd:Сделал очевидное решение - у дисплея храню датку внутри, и перерисовываю его на Start исходя из датки. Но все равно сцуко медленно, запустив сцену кнопочкой Play в юньке, сначала вижу почти полсекунды дефолтный белый дисплей и только потом он окрашивается в нужный цвет. Как-то можно запилить чтобы он сразу выглядел как надо?И вообще почему так, это GetComponent такой медленный или другие причины (дебаг билд?)?
Необходима следующая логика (опишу на примере TD, хотя у меня не TD, это неважно): вот есть активные объекты (башни), есть крипы. Башням надо искать следующую цель: она берёт список крипов, итерируется по нему и находит нужного пиздюка. Делает она это с помощью FindGameObjectsWithTag("пиздюк"). Проблема в том, что башен много и пиздюков много. Как грамотней реализовать? Создать один скрипт, который хранит пиздюков: удаляет/добавляет в список, а остальные башни лезут к нему за инфой? Как сделать так, чтобы этот срипт запускался вперёд скриптов башен, чтоб инфа была актуальна?
Что вы обычно делаете глобальными переменными? Я просто не совсем понимаю когда их нужно использовать. Хорошая ли идея сделать глобальной переменной ссылку на объект игрока?
>>430411Анти-паттерн.
>>430397>Как грамотней реализовать? Создать один скрипт, который хранит пиздюков: удаляет/добавляет в список, а остальные башни лезут к нему за инфой?Да.>Как сделать так, чтобы этот срипт запускался вперёд скриптов башен, чтоб инфа была актуальна?Awake? Ну или в редакторе можешь поменять очередность выполнения скриптов. Но через Awake, думаю, все решится.Ну и если хочешь ссылаться башнями на эту логику, то вызываешь в этой логике ивент по удалению/добавлению пиздюка, типа OnPizdukiListChanged. Ну и в классе башни подписываешься на этот ивент. Через ObservableCollection можно ебануть, например.
>>430397Алсо, всякие там "Find" и "GetComponent" без крайней надобности не используй, ну или когда не важны фпсы, например(загрузка сцены там, еще чего-нибудь). Конкретно здесь они, например, нахуй не нужны. Да и вообще, я бы сказал, нужны крайне редко или не нужны вовсе - нужно лишь сделать нормальную архитектуру.
>>430420Я, например, делаю игру один и могу сказать, что вообще не похуй. Захочешь сделать какой-то скилл, например, или предмет там - тебя трахнет твой собственный код, а точнее ты сам себя трахнешь. И будешь сидеть и голову ломать, как в своей же понаписанной архитектуре что-нибудь добавить. Или будешь переписывать и в итоге придешь к тому, что надо было сделать изначально.С нормальным же кодом, архитектурой, решение новых задач становится легким, приятным и лаконичным. Твой код сам тебе подсказывает решение и даже может делать за тебя всю работу.
>>430427>скилл>синглтонТвоя проблема не в синглтонах, а в том, что ты не очень умный.
>>430335>Написано же следование приоритетной цели, если текущий план валиден, то ничто не прервёт стелс.я то про сохранение стелса на протяжении нескольких планов.>Дженерик собирание грибов с динамическими прекондишенами. У нас же обратный поиск, планер будет знать контекст подбирания предмета.а тебе непонятно чтоли что прекондиции зависят от контекста? например грибы собрать чтобы сожрать, или собрать грибы чтобы сделать из них яд, или в конце концов собрать грибы кинуть их во врага. ты контекст чтобы собрался в гоап совать? обратный поиск то это всего лишь нахождение пути с конца, а не с начала, когда ты от цели идешь к началу собирая в статус мира не эффекты, а рекваерменты. контекст ты по прежнему сунуть только в эффекты и рекваерменты действия можешь. представить то можешь какая у тебя мешанина из флагов будет? или что, ты собрался сделать полный пиздец но ещё хранить флаги о контексте в вариантах действия с самим предметом? типа, вот гриб лежит, ядовитый, у него два действия "поднять чтобы кинуть во врага" и "поднять чтобы сделать яд"? и они стопроцентно ничем не будут отличатся до конца жизни проекта кроме как одним флагом?>Да. Часть действий можно конечно свернуть в одно, если это не влияет на планирование.как бы я тебе уже давно говорю. разные варианты одного и того-же действия вообще не влияют на планирование. они у тебя влияют ололо на паттерн передвижения только почему-то. даже при отсутствии передвижения.>Процедурно извне.>Некорректное сравнение со стелсом. Грустным или радостным персонаж становится извне, что может менять приоритеты целей.что ещё за "извне"? это вопрос того где хранить переменные с модификаторами чтоли? типа у ИИ есть ещё какой-то внешний советчик который говорит ему его статус?>Но в стелс АИ должен уходить сам, добивая своей цели по уничтожению противника.как-бы стелс это такой-же модификатор трешхолдов для целей же. ИИ хопа в стелсе и сразу у целей связанных с стелсом меняются приоритеты.>>430341>Сделал простенький дисплейчик - картинка и текст, прилепил на него скриптесли у тебя такая вложенная иерархия то не имплементируй Start/Awake/OnEnable у его чайлдов, а просто заведи метод у них "DoShit(ParrentClass)" и вызывай его из верхнего класса передавая в параметры самого себя. ну или ещё лучше - паредавай не инстанс класса, а интерфейс.>>430397на самом деле поиск через FindGameObjectsWithTag мало чем отличается от того что ты сам будешь список говна составлять, юнити же не ходит по всей сцене когда ты это вызываешь, оно тебе просто список говна возвращает. хотя применимо это разве что для тагов. на мой вкус у тебя всего одна проблема - нахождение ближайшей цели. тут уже манипуляции в духе дистанции без квадратного корня врядли спасут. может quadtree ебанешь чтобы весь список не перебирать хотя-бы?>>430410все что существует в одном экземпляре, или то что регулярно чем-то из этого списка используется.да, идея хорошая, но НЕ следует пользоватся этой переменной всегда-всегда. например вот надо сказать камере "следуй за игроком" и камера полетела взяв ссылку на игрока и схватила его трансформ. или вот менеджер интерфейса чтобы хочет показать сколько у игрока ХП, лезет в глобальную переменную и смотрит сколько там у него ХП и показывает. а если у тебя там в игре снаряд разорвался, то разумеется лезть в такую глобальную хуйню не следует.
Есть ли какие-то профиты от использования мультитрединга в юньке? Я так понял, Unity API можно вызывать только из главного потока, соответственно, потоки стоит использовать только для расчетов каких-то своих? Типа построение маршрутов для ИИ, но подвинуть модельку этого ИИ ты не сможешь из соседнего потока хотя можно построить велосипед с передачей команд в главный поток и корутинами, но это другая история И получается, всё что касается использования ядер и так далее - можно вообще не заморачиваться, ибо никаких настроек в юньке по этому поводу толком нет, а что можно - само разобьётся по нужным ядрам?
Что вообще такое эти ваши префабы? Я имею в виду, как они хранятся в райнтайме, что они такое? Насколько верным будет утверждение, что это просто ГО, которые Disable+readonly?Вот допустим есть у меня префаб prefab_manager, он имеет ссылки на все префабы. Так же есть ГО game_manager, которые имеет ссылку на префаб (не ГО!) префаб_менеджера. Когда гейм_менеджер хочет инстанциировать камеру, он делает типа Instantiate(prefab_manager.camera_prefab);И вот чего я здесь решительно не понимаю, так это почему не выдаёт ошибку о том, что кагбэ экземпляра префаб_менеджера не существует! А ведь camera_prefab это не статическое поле! То есть без создания экземпляра префаб_менеджера мы не должны иметь доступа к полям, ибо их вообще нет нигде, они никому не принадлежат. Но пример абзацем выше работает. Почему?!Окей. Вот еще пример. Есть в сцене ГО, в скрипте которого написано public SomePrefab sp; и потом в редакторе назначаем ссылку на этот sp - перетаскиваем SomePrefab в инспектор того ГО, который в сцене.Так как SomePrefab является ссылочным типом, а нигде в коде я не делаю new или присваивание, но при этом экземляр типа SomePrefab доступен, как и все его поля (не статичные!), то получается только один вариант? Юнити имеет ГО этого SomePrefab и мы работаем с ним. И что, если у меня в качестве этого SomePrefab будет огромный уровень или еще что-то такое с "тяжелыми" компонентами и так далее? Получается, юнити создаёт как минимум по одному экземпляру каждого префаба? Что жрёт оперативку и тд и тп....Где я не прав? Буду рад любой информации.
>>430613йеп. потоки в юнити только для какой-то своей хуйни, а что-то этакое оно сделает само.ну а профиты разумеется есть когда ты делаешь какую-то хуйню которой в главном треде быть не должно>>430626префабы это хитрая сериализация юнити того чего нет в сцене. которые можно передавать по ссылке, например. префаб это не класс, это уже сразу обьект на который можно ссылаться. все ссылки что ссылаются на один префаб - ссылаются на один префаб.кстати эти ссылки переживают сериализацию юнити, при повторной загрузке они по прежнему будут ссылатся на один и тот-же объект.у юнити кстати ещё и специальная хуйня существует ScriptableObject которая специально для хранения данных, а не геймобжектов которая так-же сериализуется.хотя имеет свои минусы.
>а также ваши доходы ограничены 100 000 долларов в годНе понял, как это регулируется? Вот встрою я в свое говноподелие трусики на героиню за донат, и кто будет следить за объемом доходов? Мимо ньюфаг
>>430059Чёт я глянул на шейдоры - трудна.Ну, допустим, я буду использовать сорт оф дисплейсмент и во время игры рисовать по текстуре. А с нормалями чё делать? Никакого волшебного рекалкулейт нет. В интернетах какие-то грандиозные алгоритмы.
>>430626>>430635Вообще, кстати, юнити далеко не всегда создает инстансы обьектов, если тебе интересно. если хочешь то воспользуйся https://docs.unity3d.com/ScriptReference/ISerializationCallbackReceiver.html чтобы узнать когда там че происходит.впрочем префабы с охуительными массивами в компонентах действительно могут обосрать все.>>430670rконечно трудно, там кругом всякие тайные слова.https://docs.unity3d.com/ScriptReference/Mesh.RecalculateNormals.html это чтоли хочешь
>>430691Оно, только мне в шейдоре нужно.
>>430696а, это. а хуй его знает, можно самому считать нормали конечно. но вообще как насчет того что иметь две текстуры? одну для дисплейсмента другую для нормалей. можно же на местах куда давят не только глубину брать, но и нормаль того что камера видит и поворачивать её наоборот.
>>430705Где это почитать можно? Не совсем понимаю, как это всё с глубиной и камерой. Я предполагал просто рисовать чёрным по серой текстуре.
>>430708даже не знаю откуда начать и чего тебе такого дать. почитай про render texture наверно для начала, камера может рендерить туда, а ты берешь оттуда.
>>430714а во. https://docs.unity3d.com/Manual/SL-CameraDepthTexture.html отдельная страничка даже есть
В чем суть сериализации? Каждая вторая статья по юнити говорит мне СЕРИАЛИЗАЦИЯ, СЕРИАЛИЗАЦИЯ!!! МОНОБЕХИ ДЛЯ ЛОХОВ, ScriptableObject ДЛЯ ПОЧОНОВ! и тому подобное. Но я никак не могу вдуплить. Зачем нам какая-то там сериализация, типа сохранять данные обьекта как последовательность байтов, если мы можем не записывать всё подряд а написать просто пару цифр, подразумевая что первая, например, это LVL, вторая это HP и так далее. Это же быстрее, меньше писанины в файлах, и никаких заморочек с атрибутами и возни с капризами юнити аля "ЭТО Я ХОЧУ СЕРИАЛИЗОВАТЬ, ТО Я НЕ ХОЧУ, БУДУ СБРАСЫВАТЬ" etcТипа последовательность байтов быстрее считывается, чем просто несколько циферок, несмотря на то что в первом случае размер файла будет гораздо больше?Или может это как раз для "удобства"? Типа написал чето в стиле "ну-ка, юнька, сериализуй-ка мне объект враг_3182", и типа можно не заморачиваться, какие там переменные хуеменные, позиция, вращение, кадр анимации, итд?
>>430909>написать просто пару цифр, подразумевая что первая, например, это LVL, вторая это HP и так далееписать свою сериализацию то не затрахаешься на каждый тип данных?
>>430909Сериализация она разная бывает.Я десериализую игровые объекты из json-файлов, например. Добавлять новые быстро, удобно, и не требует пересборки проекта. Это первое.Второе - без сериализации ты не запилишь сейвы.
>>430909>мы можем не записывать всё подряд а написать просто пару цифр, подразумевая что первая, например, это LVL, вторая это HP и так далееИзбирательная сериализация, это тоже сериализация. Если ты хочешь делать это сам, то ради бога. Однако изначальный смысл использования Юнити это отсутствие необходимости изобретать собственные велосипеды и тратить на это время. Поэтому оно так и преподносится, дескать всё для тебя заранее запрограммировали, надо только вызвать пару методов.
>>430956хуево сделали только. юнити нонстоп сериализует всё подряд, они так и не сделали сериализацию абстрактных переменных. ещё эти манипуляции с hideFlags. гондоны.
В соседнем треде задавал вопрос, но все скатили в метание говном и троллеркоастер. Спрошу здесь.Использую [SerializeField] на все поля, которые хочу задавать через редактор, но не хочу делать public. Можно ли так вообще делать? Чем это может быть чревато?
>>430996да ничем. сериализует и ладно.
>>430721Спасибо. А не становится ли оно всё слишком сложно для мобилки?
>>428774совершена первая в истории человечества конпеляция. ну почти.в общем, я столкнулся с теоретической проблемой. так-как граф один, а функций как минимум ДВЕ (vertex и fragment), то теоретически ведь может получиться так, что будет такой конфликт зависимостей, когда один node использует значение другого, который вычисляется уже после него или вообще в другой функции. Как-то так.
>>431052Блять, да ну его нахуй. Ещё эти обрывчатые сведения по самым тёмным углам интернета собирать. Лучше вертексы двигать.
>>427717 (OP)Когда выходит Юнити 2017?
>>431265В 2017
>>431265
>>431100В общем я решил сделать по дереву для каждой функции шейдера отдельно.Непонимаю, почему во всех редакторах все сведено к одному дереву. Это сильно ограничивает программируемость шейдеров
>>431313По сути, все что можно напрограммировать в вертексном шейдоре во всех нодовых редакторах - это всего-лишь добавить смешение вершине. И все.
Извиняюсь за нубский вопрос, но как все-таки правильно двигать объекты? Везде блин противоречивая информация. Как я понимаю: беру трансформу с коллайдером, цепляю rigidbody, без rigidbody двигать коллайдеры табу, ибо они static(или нет?). Далее, если тело кинематическое, я двигаю его через Rigidbody.Moverotation и Moveposition. Или через transform.position/rotation?? Есть разница? Одни пишут что через трансформу - нельзя, другие - что нужно, третьи советуют гонять трансформу вообще без rigidbody.И еще, с чем все-таки сочетается CharacterController, с кинематическим телом??? Без rigidbody? В примерах вроде кинематика стоит.Если не кинематическое, вроде все понятно, AddForce/AddTorque...
>>431636С аддфорсом у тебя получается реалистичная физика, с инерцией и прочее, или ты трением все это гасишь?Нашел кстати вот исследование по коллайдерам:https://forum.unity3d.com/threads/moving-static-colliders-performance.474772/Говорят начиная с Юнити 5 можно двигать статику(коллайдер без ригидбоди), и это даже быстрее, чем кинематика. Кажется, документация пиздит.
>>431691Черт, кинематика проходит сквозь стены. Как же ее тогда использовать? Неужели есть два стула - реалистичная физика или CharacterController? Или самому писать детектор коллизий...
>>431876Похоже зря я выебал себе мозги, можно юзать обычное ригидбоди, и двигать его MovePosition. Слишком серьезно подошел к документации, мать ее за ногу.Еще такой момент, видел в видосе в FixedUpdate домножали вектор передвижения на Time.FixedDeltaTime. Но ведь фикс апдейт и так фиксированный, по идее это сработает просто как константа?
>>431908Ну да, либо как ты говоришь, либо через MovePosition. Кстати глянул, в туториале они двигают через MovePosition в FixedUpdate, домноженный на time.deltaTime(чтобы обеспечить независимость от степа FixedUpdate, который оказывается можно менять). Такие дела.
>>431960На time.deltaTime умножают чтобы скорость движения была одинаковой при любом FPS.
>>431960>>432211Чов? Дельтатайм в фикседАпдейт? Что за хуйня?
Учимся программировать на Среше...
>>432920Проснись, ты программируешь!
>>431100клева, да.а я эти дни потратил на вдумчивое чтение того говна что сунули в это dll. репу почесал и подумал что что-то мне эта хуйня не нравится. в итоге занимался тем что скурчивал сидение и колеса от этого велосипеда и приделывал к своему.пока приделывал, кстати, обнаружил что есть такая хуйня как GenericMenu которое вот для контекстных меню сделали специально. сразу все стало по человечески.у меня есть схожая проблема. нельзя чтобы на графе были замкнутые круги. поэтому я при добавлении соединений между нодами сначала проверяю не закольцованы ли они.а у тебя же все в итоге будет между двумя значениями. инпутом и аутпутом для функции шейдора. проверяй не отличается ли инпут и аутпут в обе стороны.>>431316ещё вертексное освещение же делать можно и вабще>>431052да вроде нормально! рендерить только глубину и нормали то уж мобилки смогут.>>431147а ты все равно пытайся! вот у меня только с третьего наскока мотивации хватило. там везде какие-то тайные знания, да. зато какое могущество! смари какую хуйню можно делать в вычислительных шейдорах! здорово же>>432542в документации кстати написано что дельтатайм имеет разный результат в апдейте и фиксед апдейте. сам не проверял.
>>433181Ты откуда такой продвинутый? Я тоже так хочу.
>>427717 (OP)Посоны, а есть тут какие-нибудь КОМАНДЫ? Чтобы сидели в своих сычевальнях и вместе делали что-то. Есть такие? А можно к вам?
>>433181> в вычислительныхЯ и простые-то осилить не могу. А в чём соль вычислительных - даже не понял. В том, что они могут вернуть какую-то информацию процессору? И с мобилками не понял. Будто они плохо дружат.
Ну что вот за хуйняПытаюсь выстрелить из калаша процедурно созданным шаром--он летит прямо как надо,но как только я через instantiate стреляю префабом пули -- она летит в точку 0,0,0 или хз еще куда,при том что код тот же самый,ниче не меняется,префаб пули никакого кода не исполняет,повернут как надо,все 10 раз перепроверил
>>433265тогда садись и крути это говно днями.>>433473вернуть информацию могут в общем-то и обычные если похитрить. но в целом да, это вот написание программы для выполнения на видеокарте. если надо сделать какие-то вычисления с плавающей запятой тяжелые то на видеокарте то они за мгновения делаются. там же добрые несколько терафлопсов прохлаждаются. а круты то они много чем. например тем что внутри нескольких потоков можно синхронизировать память. например смотри на картинки. вот где точки зеленые рисует их обычный шейдор, потом в этот буффер лезет вычислительный шейдор, двигает их там и они очень очень быстро крутятся вокруг выбранной мной точки. и их там я поставил чтоли лол десять миллионов. а фпс так и не просело. очень понравилось крутить эту тучу точек.или например там где цыферки это какраз синхронизация памяти. группы потоков в общую память суют свой индекс, а он потом суммируется в первом у группы потоке.или там где треугольник в квадратике - это прототип того что происходит с кубом без дна и верха. что-то более практичное. желтые линии это границы этих кубиков, шейдор выдает минимальную и максимальную высоту у нужной мне фигуры конкретно в этом месте. вот какую-то тяжелую симуляцию с этой магией делать вообще заебись.ну а про мобилки - мобилки чтото могут. наверно то что я предложил с тайной камерой они тоже смогут. я не знаю, я не проверял.>>433492да ты код нам дай, мы же не провидцы
>>433526Впечатляющая штука. А может ты ещё и литературы по ним подкинешь? Или видосиков на трубе хватит? Ну и, собственно, куда их цеплять? Обычный в материал втыкается, а этот куда?
>>433537по ним информации довольно много можно найти на самом деле, она больше собрана в кучу. вон на хабре например приятная статья была https://habrahabr.ru/post/248755/ правда про то какие индексы каким тредам присваиваются нигде нормально не рассказывают и там тоже есть свои тайные слова которые можно в код добавлять.цеплять их никуда не надо, надо создать через Create>Shader>Compute Shader, потом сослатся на него, сунуть в него данные, взять кернел и сказать ему чтобы он делал все. а потом забрать то что он сделал. или не забирать а заставить другой шейдор залезть туда и нарисовать.с мобилками правда оно не особо дружит, если тебе это важно. но хоть с синтаксисом ознакомишься, может после этого и в обычные шейдоры проникнешь.
>>433558Во, отлично, спасибо. Ну а на ведре потом сам гляну, как оно будет себя вести.
>>433181>у меня есть схожая проблема. нельзя чтобы на графе были замкнутые круги.лел, тоже об это подумал. Я так понимаю, что такие закольцованые ноды - это ошибка. Как это во всяких Shader Forge сделано, интересно.А как-ты вычисляешь значения в своих нодах?
>>433568иерархично снизу вверх. в прошлом прототипе у меня были ноды-ассеты, где в качестве инпута были собственно всякие ассеты. какие-то ноды рисовали траву, какие-то деревья, какие-то текстурки на земле, какие-то геймобжекты расставляли всякие вроде грибочков под деревьями. ноды-ассеты смотрели: "у нас есть такие слоты, граф, давай мне инпут из этих слотов". граф лез в ноды которые присоединены в этот слот и просил аутпут уже у них, а если ещё и этим нодам нужен какой-то инпут то так и следовал по цепочке до самого верха. ну и все это разумеется громко ругалось в консоль если я пытался применить граф с нодами где не заполнены слоты с обязательным инпутом.но как такую схему перевести в текст у меня довольно мутные идеи. у меня то промежуточное говно хранится в самих нодах и вычисляется в них-же, а у тебя то идет работа с конкретными переменными. я бы наверно сделал передачу переменных на манер этой мешанины из спагетти-редактора UE.а в шейдор фордже не знаю. я им не пользовался. наверно примерно так-же. проверяют и кнопка "сделать шейдор" не включается пока граф не валиден. наверно тоже проверяют всю цепочку чтобы левые ноды смотрели только в сторону инпута, а правые только в сторону аутпута.
>>433594хотя кстати хуй даже знает как поступать с всем этим многообразием типов. всякие там float float2 float3 float4 float4x4 и так далее то. для каждого типа свои специфичные ноды чтоли писать?
>>433563кстати чуть не забыл. http://on-demand.gputechconf.com/gtc/2010/presentations/S12312-DirectCompute-Pre-Conference-Tutorial.pdf обязательно прочти. на тему оптимизации. там пошагово на пальцах обьясняют как можно сделать очень быстрым что-то такое элементарное как суммирование всех элементов массива.
>>433594>но как такую схему перевести в текст у меня довольно мутные идеиу меня пока наоборот, при компиляции все ноды добавляются в список снизу-вверх, а потом выполняются сверху вниз. идея в том, что каждая node это что-то вроде сниппета кода.я имел ввиду обновление нод при изменении параметров. всякие текстурки там в риалтайме.
>>433641а, предпросмотр промежуточных результатов. а если честно хуй его знает. не выглядит как то что следует делать шейдорами. может сделать в нодах имплементацию на шарпе специально для предпросмотра результатов?
Кто-нибудь продажей ассетов в юнити-сторе занимается? Что там лучше всего покупается, кроме мошн-паков?А то смотрю, количество юнити-лохов всё растёт и растёт, похоже на них можно неплохо зарбатывать, но слабо представляю, что пользуется спросом. Шейдеры? Расширение функционала самого движка? Гуи? Наборы "сделай игру жанра Х"?
>>433683Чтобы в сторе поделие продавалось, мало сделать что-то нужное всё то, что юнети не предаставляет из карёпки (AI, диалоги и т.д.), но нужно и понятно преподать: тьюториалы на ютюбе, практичные примерчики. По статистике у таких и больше покупают.
>>433623Далеко я не уехал.
>>433526так дело не в коде,код работает когда создаю шара когда создаю префаб он не работаетя думаю это баг движка
>>433683я за так отдаю свое. в топ пэйд долгое время висит А*. вообще я сомневаюсь что можно продать что-то из разряда того что юнити напильником дорабатывает и надо всем. конкурентов много, сделать лучше чем они сложно. продавать красивые модельки и анимации скорей всего лучший вариант.>>433739это ожидаемо и я говорил>>433741думаю это твой баг, а не баг движка. поэтому давай показывай все, а мы подумаем кто виноват и как это исправить.
>>433743кстати о багах юнити. покажу один старый но забавный. до сих пор никаких идей как же это вышло. воспроизвести не смог. обычный вид сцены, слегка необычный вид сцены, вид сцены когда я камерой покрутил
>>433745Всё очень просто.https://www.youtube.com/watch?v=ilF5AAf41s0
Ну а я sypermarket делаю.
>>433792> sypermarketПростите, я обдолбан.
>>433797>> 3 пик очень всратый из-за пола- Это "холодильная камера"По этому пол там и такой =)
>>433804?Не совсем понял как бы..
>>433845>УЕЧ>вконтакте>AIMP>спизженные substance painter, photoshop и maya>васянская темаЭталонный набор говноеда
Бывает, у объекта есть дочерние объекты, которые должны двигаться за ним, но не должны вертеться вместе с ним. Вот думаю, стоит их отделять через transform.parent = null, или проще вертеть каждый фрейм, возвращая им изначальный поворот? Первое решение ведет к дополнительным усилиям при включении/выключении объекта, и при повторной инстанциации(нужно следить за остатками). Может есть какое-то элегантное решение проблемы?
>>433870Риджидбади на дочернем объекте есть?
>>433874Нету.
>>433875Ну тогда что-то типа такого.void Start () {Quaternion origRotation = transform.rotation;}void LateUpdate () {transform.rotation = origRotation;}
>>433878А, не, объявлять в старте не надо, там только определять.Короче, ты понял.Quaternion origRotation;void Start () {origRotation = transform.rotation;}void LateUpdate () {transform.rotation = origRotation;}
>>433342Может есть какие конфочки? Чтоб там можно было смотреть дейли прогресс всяких упоротых и задовать и отвечать на глупые вопросы?
Где бест практисес для структуры проекта и основных классов на ивенты и интерфейсов можно посмотреть?А то хочу влезть в юньку, ничего не знаю, и хочу поддерживаемый проект, чтобы хватило сил докончить
А чего, поменять цвет индивидуального вертекса нельзя? У меня так не работает. Приходится менять в копии массива и присваивать массив целиком.
>>433865>> Эталонный набор говноедаВсё, откукарекался?
>>433916Ты тупой.
>>433929О, заебись, заработало. Спасибо.
Юнитач, приводить типы в апдейте это плохая идея, да? Да.
Почему я таким образом всегда получаю позицию первого по порядку колеса, которое не в воздухе?
>>433960Блять. Пиздец какой-то. Нихуя не понимаю.
Девач, есть специфическая проблема. Хочу перевести чужую игру на юнити. Вопрос: как можно это сделать? Можно или из уже скомпилированной игры вытащить исходники? Можно ли отдельно найти файлы с текстом? Как?
>>430059>что у тебя за проблемы такие? нахуй ты в трансформ вообще лезешь если у тебя RB? если у тебя RB то манипуляции уже делай все через него. у тебя же специальные AddForce, AddTorque и прочие есть которые гарантируют тебе что все будет через физон.У меня проблема в том, что если я мучу передвижение через физон, то игра резко становится очень требовательной, я хз почему так. Ну мей би это как-то с мобами связано, т.к. если я их удаляю, то всё ок становится.Кстати, а вот касательно мобов вопрос. Им же по сути вообще rigidbody не нужен, только при смерти, по логике?
Разбираюсь вот с Фотоном, прикрутил по дефолту PhotonTransformView, а там такое написано: currentPosition = Vector3.Lerp( currentPosition, targetPosition, Time.deltaTime * m_Model.InterpolateLerpSpeed );Это я чего-то недопонимаю, или у них детская ошибка в лерпе? Оно же неравномерно двигаться будет. Надо видно свой скрипт писать. Если есть фотонщики, каково ваше мнение?
>>433982>вытащить исходникиНет.>найти файлы с текстомЕсли автор их выкладывал, то можно.
>>433958Тащемта нет.И вообще не надо ничего оптимизировать, если оно не тормозит.
>>433870Сделай им обоим общего родителя, который двигается, и вращай только того чайлда, которого нужно.
>>434032Потыкался. Нашёл файлы без расширения, открыл. Весь текст в 50+ файлах примерно такого вида. Втупую заменил одну фразу на русский перевод - игра кмк просто не стала загружать этот файл, т.е. запустилась, но на сцену с заменённой фразой не перешла. Вернул обратно - нормально. Поменял кодировку файла (они изначально в ansi) - игра крашнулась.
>>434038> Втупую заменил одну фразу на русский перевод
>>434043Я пытался попробовать даже откровенную хуйню.
>>433893есть одна но ты туда не ходи там какие-то мудаки сидят.>>433958на самом деле не особо. что-то на уровне "похуй".>>434028включи ка профайлер в юнити и посмотри.
>>427717 (OP)Посоветуйте, как более эффективно вкатиться в эти ваши скрипты? Я неделю пытаюсь разные фишечки реализовывать, просто, чтобы научиться скриптить. Не смотря на то, что я никогда в жизни не занимался программированием, мне вроде всё кажется интуитивно понятным. Но проблема в том, что если я хочу хоть что-то реализовать, то мне надо сидеть и часами гуглить свою вещь. Почему часами? Да потому что я не знаю английский. Пробовал почитать книгу "Юнити в действии", но как и везде, там описаны какие-то частные вещи и, если, я, например, хочу сделать продвинутый ИИ или что-то в этом роде, то уже зная и представляя, как это будет работать, я просто гуглю сами команды языка. Собственно, есть ли кто-нибудь, кто как я вкатывался с нуля и, в итоге, нормально так умеет? И что можете посоветовать для более качественного развития?
Есть смысл читать книгу из шапки, если я имею опыт в проганье, но не имею в использовании игровых движков? Или книга для совсем ньюфагов?А то я к книгам по разработке отношусь предвзято.
>>434064Можно организовать другую конфу. И редкостных мудаков кикать. Просто я хз, есть ли вообще желающие. Т.к. может и тут хватает общения?Запилить дискорд сервер то просто
>>434068>Да потому что я не знаю английский.Тебе нужно учить не скрипты, а английский, сынок.
>>434073> Есть смысл читать книгу из шапки, если я имею опыт в проганье, но не имею в использовании игровых движков?Читай внимательнее, блин.> Если ты уже умеешь использовать язык> Крайне рекомендуется купить/скачать книгу Unity in actionПеревожу: книга как раз для тех, кто умеет кодить, не не знает движок.Так что ответ на твой вопрос: да.Научитесь же вы читать уже
>>434085*но не знает движок
>>434038Реквестирую какой-нибудь материал про юнити и кодировки, потому что чую проблему в них. Как юнити работает с кодировками?
> length =5;> vertPerSide = 10;> float step = length / vertPerSide;> print(step);> 0Я, наверное, с ума схожу, да?
Как сделать эффекты энергетических лучей(пиу-пиу)? Есть какие-нибудь годные туториалы? Что мне приходит на ум, так это пустить частицы префаером с вращением, но как-то не уверен, опыта очень мало.
>>434116float a = 5;float b = 10;void Start () {float c = a / b;print (c);}Выдаёт 0,5. Ищи где ты наговнокодил.
>>434120Блять, да у меня ж инты делились. Вот оно что. C (float) перед делением всё нормально.
>>434114Да какого же хрена он читает скрипты только на ansi? В utf вылетает, у меня идей нет.
>>434119Еще нашел вариант - эмитить из цилиндрического меша в разные стороны, вроде как живенько, но частиц получается дофига. Как сделали бы батьки?(инбифо пошли в магазин и купили ассет за 300$)
>>434068лучше английский выучи чтобы хоть что-то на базовом уровне понятно было, хоть в процессе поиска доучишь. это анальное страдание будет у тебя без этого>>434073если погромировать умеешь то документацию лучше начни читать, а не книжки. решай проблемы по мере их поступления. но для начала что нибудь простое ебани чтобы освоится>>434082это так не работает>>434119https://www.assetstore.unity3d.com/en/#!/content/5141вон старый экзампл почитай. если бы я хотел сделать какое-то там вращение то я бы наверно сделал процедурненько цепочку рэйкастов чтобы лучик пускать, потом вокруг него ещё повращал бы сколько-то линий красиво через лайн рендерреры вычисляя их позицию относительно основной линии, ебанул бы партиклов красивей с обоих концов.
>>434068> Пробовал почитать книгу "Юнити в действии"Нахуя ты читаешь книгу, которая рассчитана на тех, кто уже знает язык, при этом сам язык ты не знаешь?
Вот у меня есть префаб объекта 2D. Как сделать так, чтобы я мог поместить его на сцену, и с помощью ползунков настроить цвет разных его частей. Куда копать? Я так понимаю чтобы делать это "на лету" используется шейдеры, но мне нужно просто в эдиторе настроить его, поставить куда надо, и забыть.
>>434272Погуглил сейчас про это. Насколько я понимаю нужно разделить мой спрайт на части с одинаковым цветом. И на каждую часть применять renderer.color = new Color(blabla); в Start(), при этом сделать public цвет, который можно выбирать в инспекторе. Всё правильно?
Делаю 2д анимацию. Эта сука почему-то пропускает крайние ключи (последний или первый). НЕзависимо от того, как работает ключ - включение геймобжекта / спрайтрендера / кадры спрайтшита.Не улавливаю где проёб.
>>434085>>434235Ну и кому из вас верить?Вот и в интернетах в комментах на хабре и проч мнения диаметрально противоположные по этому поводу, надеялся анон подскажет.Хуй с вами, буду параллельно читать книгу и пробовать чот свое по докам и гуглежу.
>>434478> Ну и кому из вас верить?Обоим. Книга для тех, кто язык уже знает. И английский учить тоже надо.
>>434478>>434481А ты не тот, кто про английский спрашивал.В любом случае, можешь и документацию курить и книгу прочесть. Там 300+ страниц всего, за несколько вечеров осваивается. Лишней уж точно не будет, особенно если в движке слабо ориентируешься.
>>434262Нужно ли умножать на дельтатайм при движении через rb?
Как писать свой шейдер который при этом поддерживает встроенные функции освещения и всяких нормал-карт? Шейдер ведь один на материал. Нужно тупо копировать свой код в код нужного шейдера, или как?
о. а мое говно сегодня даже стало что-то делать! травку садит, текстурки накладывает, деревья делает.>>434478верь мне во всем. вообще нахуй тебе какие-то книги читать? погромировать то на каком языке умеешь уже? в юнити конечно есть какие-то особенные фичи касаемые взаимодействия компонентов и вот много уже за тебя сделали. первое может быть не очевидным, второе вот только с гуглом и найти можно.>>435270умножать то не нужно, но полезно.>>435504сейчас я дам тебе что-то очень интересное. обязательно прочитай. http://beta.unity3d.com/download/472613c02cf7/builtin_shaders-2017.1.0f3.zip
>>4278002 объекта. 1 ближе, 2 дальше. Если 1 объект встанет на одну линию со вторым, то для второго (hit.transform.tag == "Object" && hit.distance < minDist) выполняется.
>>435559>погромировать то на каком языке умеешь ужеРаботаю жс-ёбом не вебмакака, с шарпом имел теплые дружеские отношения.>в юнити конечно есть какие-то особенные фичи касаемые взаимодействия компонентовНапример?
>>435559>сейчас я дам тебе что-то очень интересноет.е. таки нужно вживлять свой код в готовые шейдеры? Оке, спасибо.
>>435582если жс то че, нормально все. почти одно и то-же.а например вот есть чтото особенное как SendMessage или SendMessageUpwards которое удобно. ещё и имеет разную производительность в едиторе и сбилженном проекте.>>435587я к тому что прочитай то как можно делать освещение, нормал мапы и прочее.
>>435587https://docs.unity3d.com/Manual/SL-SurfaceShaders.html
>>435582а, кстати, вот стоит ещё сказать особенное. почитай про то как юнити обманывает систему с удалением обьектов. если сделать Destroy(object) то объект то удалится. но как по твоему что станет с ссылками на этот объект у тех у кого она уже есть? или ещё лучше - как на это будут реагировать коллекции вроде хэшсета?почитай про сериализацию в юнити, тоже интересное чтиво. можно вон теоретически создать инстанс абстрактного класса.про корутины как заменитель тредов и даже такой базовой хуйни как апдейт почитай.Если собрался костыли немного писать то почитай про Event.current и control id.у юнити то много всякой удивительной хуйни творится которая в целом в большинстве своем довольно могущественная но в ней могут творится удивительные вещи.
>>435559Мне нравится твой редактор. Он лучше дефолтного.Я тоже пытался сделать свой, но не осилил прокрутку. Да и вообще что-то приуныл от осознания того, что придется слишком много времени потратить на изучение всратого юнитивского гуи.
Есть ли в юнити система анимации как во флеше(нативно или плагином) чтоб у каждого обьекта были кадры и в разных кадрах я мог добавлять обьекту другие обьекты(допустим в 7 кадре вложить меч в руки) и у этих обьектов были свои ленты в которых я добавлю обьекты?И чтоб это все можно было в wyswig редакторе редоктировать ручками
>>436290Рядом с кнопкой "сделать пиздато"
>>428774Итак, прошла первая неделя. За это время было сделано ничего.В общем, у меня появилась некая теория как это все сделать. Я хочу сделать что-то вроде простого ShaderDOM, из которого затем генерировать код шейдора.Так-же у меня появилась идея как можно не разделять граф на 2 шейдора. Для этого нужно один и тот-же граф конпелировать в 2 прохода: суть в том, что во время вертексного прохода, все связанные с вертексным шейдером ноды запишут какой нужно код, а во время пиксельного - соответственно запишут пиксельный код. Правда я не уверен насчет того, что это все будет работать.В общем, я пока решил сделать просто демку генерации surface-шейдера из графа. Без preview и прочих мокрописек.
>>436290> редоктироватьОт слова "редоктор"?
Дратитя. Я у мамы параноик, поэтому хочу зашифровать код своего юни-поделия, чтобы любой школьник не мог вытащить через ILDasm или типа того. Да-да, знаю, что это глупо и не надо нахуй.Так как я ТРУЪ-indei читай "нищеброд" то использовать проприетарные дорогие обфускаторы не могу. И тут я подумал, а что если практически весь код, ну скажем кроме гейм-менеджера, перенести в ДЛЛ на с++?1. Не потеряю ли таким образом кросс-платформенность?2. Я слабо представляю, как это делается и какой обьём работы предстоит. Достаточно ли будет написать типа враппера какого-то, ну регистрация функций, да и всё? Насколько вообще ебанутая идея?3. И как думаете, на производительность сильно повлияет?
>>436353Анус себе зашифруй, пес.
Можно ли проверять радиус между лучами, выпущенными из одной точки? Хз, понятно ли сформулировал. Например, из объекта выпущен луч вперёд и влево, соответственно у них радиус 90 должен выйти.
>>436375Это угол, а не радиус. Ещё не проходили что ли?
>>436375Косинус угла между векторами равен скалярному произведению векторов, поделенному на произведение модулей векторов. В принципе можно ручками посчитать. Простейшие вещи, в школе такое проходят.Ты, дружище, видимо совсем не в теме. Необязательно, конечно, матан и сопромат знать для инди-геймдева, но какие-то школьные основы не помешало бы.Можно и так:Vector3.Angle (a, b);
Можно ли проверять котангенс между точками, расположенными на одной прямой? Хз, понятно ли сформулировал.
>>436382Ну продолжил бы. Типа "Например, между точкой А и точкой Б 2 метра, соответственно у них котангенс 2 должен выйти."
>>436262я бы дал свой да он на самом деле тоже так себе. просто приспособил под свои нужды и не имплементил всякую хуйню вроде множественного выбора нод. и реализовал соединение не через перетягивание а просто через нажатие двух кнопок в гуи. и не писал эту ерудну с пропертями у нод, ололо. даже не знаю нахуй это сделали.у юнити то на самом деле этот лэйаут гуи довольно клевый, советую ознакомится. прокрутка у меня буквально заимплеменчена как if(Event.current.type == EventType.MouseDrag && graphExtents.Contains(mousePosition)) { scrollPosition -= Event.current.delta; needRepaint = true; }>>436300а я кстати таки сорт оф сделал для некоторых важных нод. можно нажать пкм и сказать чтобы оно показало. например если нажать на превью ноды "Biome bool". правда пришел к выводу что это надо делать отдельно для каждого слота, или чтобы там был предпросмотр с закладками чтобы каждый отдельный аутпут слот мог показать что он там другим передает.>>436375уверен ли ты что ты хочешь именно радиус? ведь он 90 должен быть.
Привет всем. Я абсолютный новичок в геймдевелопинге, но у меня есть очень годная идея для игры. На данный момент осваиваю юнити и C# + прописываю диалоги, квесты и прочий текстовый контент + рисую арты для игры. Хотел бы найти такого же новичка для создания чего-то вроде команды, ибо в одного пилить очень трудоемко. Если говорить кратко, то хочу сделать нечто вроде гибрида This is the Police + Космические рейнджеры 2. Если вдруг заинтересовало, то предлагаю скооперироваться и разрабатывать её вместе - если получится реализовать задуманное, то все доходы 50/50. Мой скайп - the_twixxie
>>436407>у меня есть очень годная идея для игрыРасскажи ка.мимо-менеджер-ЕА-пизжу-идеи-на-дваче
>>436376>>436381>>436384Я в школе еще не проходил просто этого, спасибо большое.
Друзья, подскажите, пожалуйста, где я проебался? Я реально понять не могу, тут всего 2 строчки, почему он с некоторых сторон не видит игрока? Вот видео, если я хуёво(плохо) объяснил проблему: https://www.youtube.com/watch?v=uLAvxn4-3zE
>>436426Понял, в чем дело.
Чуваки, я щас подумал, а почему нельзя написать шейдер на чистом си шарпе? Прикиньте как удобно бы было бы? Ну а чо, типа какой-нибудь крипт похожий на монобихейвиор и библиотека человеческая и там прям хуяришь на си шарпе, а потом они само это переписывает в шейдоровский язык. Прикиньте, было бы круто? Можно было бы изменять шейдер в рантайме, ну вообще все было бы легко и прсто, лубой чувак, который знает си шапр, мог бы написать шейдер. Круто же?
>>436470Зачем? HLSL и так простейший язык.Сложность шейдеров в алгоритмах
>>436488зачем ты повелся на эту толстоту
>>436492https://www.youtube.com/watch?time_continue=72&v=hJZwaaXMfUAой, нахуй иди, ага умник хуев.
>>436353Лучше проведи сам анализ, создавай, компиль проекты, дизассемблируй и шарься в исходниках. Большинство, думаю, принимает уровень защиты как данность или юзает дорохие продукты чтобы спать спокойно. Ведь если ты что-то делаешь на продажу, то и деньги должны быть на защиту твоей жепы, а если бесплатно будешь распространять, то переосмысли нужно ли тебе это вообще, и стоит ли работа затрачиваемых ресурсов.
>>436407Если новичок, не лучше ли фармить опыт на проектах уровнем пониже кр2? Не думаю, что стоит бросаться в этот омут, пожалей время хотя бы.
Как настроить ябучий unity Remote. Android SDK стоит, в Editor'е самого юнити включил Any Device. ЧТО ЕЩЁ НАДО?
>>436506Из КР2 я хочу взять только систему квестов
>>436511>Из КР2 я хочу взять только систему квестовТы только учти что их квесторедактор и квестоплеер писал весьма годный кодер. А сами квесты писали несколько человек около года, и это были не рандом школьники с улицы.Предлагаю тебе опробовать свои силы, возьми любой известный квесто-движок и напиши пару для пробы. И людям покажи. Вангую гавнище получится несусветное.
>>436516Неужели этому нельзя обучиться за N-ое количество времени?
>>436516Что там за квесты такие?
>>436516Ну квесторедактор и квестоплеер я хотел в одном своём проекте использовать, который пока у меня в в стадии замороженного бекенда. Где-то была статья даже как у них все реализовано.левый чел
>>436520 Спасибо, надо погуглить.
>>436493Ну, насколько я понял по видео, этот код просто парсится roslyn'ом, и потом из syntax tree генерируется шейдерный код. Никакого дебагинга там нет конечно, просто метод стабы.
>>436591Просто не понимаю в чем смысл делать какую-то сложную йоба-абстракцию над чем-то очень простым. Вместо того, чтобы потратить немного времени на изучение HLSL, ты потратишь в итоге намного больше времени на изучение архитектуры и особенностей этой НЕХ. И если зная HLSL, ты омжешь писать шейдоры для любого движка, то твои знания этой приблуды генерирующей шейдеры будут ограничены конкретно этой приблудой.
Только что настроил Unity Remote, запустил игру, а вместо сочной картинки, которую я получал, когда тестил игру в самой Юньке, получил мыло. Как это исправить? Так как я ньюфаг в андроид разработке.
>>436598Compression в пнг поставь
Добрый вечер. 2D арена. Пытаюсь реализовать выстрел в направлении курсора. Всё вроде бы работает, но есть проблема с получением координат курсора. При использовании Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, 10.0f)); снаряды летят в нужном направлении только когда игрок в начальных координатах (0,0,0). Чем дальше игрок перемещается тем сильнее отклонение. Я понимаю что нужно использовать координаты курсора относительно игрока, но не могу разобраться как это сделать. Ткните носом, куда копать, что гуглить? Спасибо.
>>436641>этот код
>>436642Что не так? Нужно как-то по особому оформлять?
>>436641так ты рэйкаст из камеры ебани чтобы мировые координаты узнать. https://docs.unity3d.com/Manual/CameraRays.html
>>436646>рэйкаст >2д
>>436641а хотя ты и вопрос через жопу задал. код прочитал. ты же понимаешь что если взять координаты А и Б, вычесть из Б координату А, то ты получишь направление от А к Б? и тебе нужно похоже именно направление? ты бы вычел из положения курсора позицию игрока. чтобы они стали локальными для позиции игрока и были относительно позиции игрока.>>436651в 2д тоже работает, хули.
>>436652>в 2д тоже работаетв 2д ScreenToWorldPoint и есть точка в мировых координатах
>>436653он же там зачем-то ещё десятку по оси z прибавляет. меня это насторожило.
>>436655Снаряды через 2 секунды "исчезали". Debug.Log(shootDirection) показывал -10 по Z. Добавил +10 перестали пропадать.
>>436657очевидно потому что у тебя камера находится на -10 по оси z. вообще нахуй ты ScreenToWorldPoint пользуешся? оно же валидно только для ортографической камеры. ещё и начнешь видеть некоторое дерьмо если попытаешься её наклонить немного.алсо что за хуйня. там же в 2д спрайтах можно менять порядок отрисовки независимо от оси z. или у тебя там что-то особенное?
>>427717 (OP)Пасаны, при сериализации юнитиивента не сохраняются параметры. Задаю ивент в кастомном инспекторе через проперти филд. В чем может быть проблема?
>>436664для обьектов в проекте EditorUtility.SetDirtyдля обьектов в сцене там щяс подругому надо заставлять их сериализоватся. Dirty только для хуйни в проекте. там теперь новая хуйня для этого https://docs.unity3d.com/ScriptReference/Undo.RecordObject.html инструкция выглядит загадочной
>>436407Я тут юнити эдитор слепил для квестов. Может хочешь поделать что-нибудь вместе.
>>436407>>436667Почту оставь.
>>436652>>436663Благодарю, подсказали верный путь. >>вообще нахуй ты ScreenToWorldPoint пользуешся?Что нагуглил тем и пользуюсь.
>>436620Нихера не помогает, может что-то ещё надо изменить?
Ребята, помогите, как сделать чтобы сцена запускалась при нажатии на любую точку экрана(глобальный тач), кроме кнопок, которые находятся в канвасе.Пробовал так, но рэйкаст просто не воспринимает кнопки, как gameobject, просто ничего не происходит if (Input.GetMouseButtonDown(0)) { Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); RaycastHit hitInfo; if (Physics.Raycast(ray, out hitInfo)) { if (hitInfo.transform.tag != "Button") { SceneManager.LoadScene(1); } } }
Как понять, какая сцена сейчас активна, через код офк?
>>437924if (Input.GetMouseButtonDown (0) && !EventSystem.current.IsPointerOverGameObject ()){SceneManager.LoadScene(1);}
>>437934Ах да, сначала надо подключить вот этоusing UnityEngine.EventSystems;
>>437935Ага, ага, ты прям выручил, спасибо парень)
>>436353У тебя есть IL2CPP пизда ты тупая.
>>436290Есть блядь, почитай мануал про аниматор.
>>437925Спроси у менеджера сцен текущую сцену, придурок.
Сделал реализацию паузы, т.е. когда рэйкаст попадает по коллайдеру геймобжекта кнопки паузы - игра останавливается и спрайт у этого геймобджекта меняется на кнопку плэй.Всё вроде норм, но на деле, когда нажимаешь на паузу, то в 70% случаях кнопка меняется два раза(пауза -> плэй -> пауза) и соответственно игра продолжает "играть".Помогите, не могу понять почему такая херня творится, если что могу код скинуть.
Я, кажется, тупой, но я вижу только следующий способ работы с HTTP: юзать WWW(url) для GET и WWW(url, data) для POST. А можно отправить как-то POST без данных, или вообще например DELETE?
>>437978Ты б сначала написал как паузу реализовал. Знаешь ли, хрустальный шар давно у всех сломался.
>>437978что у тебя за кнопка такая которую ты рэйкастом жмешь ололонебось тригериш нажатие кнопки по нажатию и отпусканию кнопки мыши, или ещё что-то более глупое
>>437979Тебе - нельзя
>>437982Если не рейкастом, то чем?
>>437980foreach (Touch touch in Input.touches) { Ray ray = Camera.main.ScreenPointToRay(touch.position); RaycastHit hit; if (Physics.Raycast(ray, out hit)) { ... if (hit.transform.gameObject == PlayPause) { if (!isPaused) { Time.timeScale = 0; isPaused = true; spritePP.sprite = BTNPlay; } else { Time.timeScale = 1; isPaused = false; spritePP.sprite = BTNPause; } } } }
>>437987Зачем ты так усложняешь? Лови событие по OnClick, нахуя ты рэйкастишь на гуй?
>>437984А не мне?
ух! Перелопатил то что внутри своей хуйни! нету теперь больше закладок в биомах, метод генерации биом и все карты сразу в одной биоме. день прошел продуктивно. надо ещё worley noise ебануть и побольше многопоточности>>437985может просто кнопку на гуи жать будешь? но вообще если ты там хуйней решил пострадать и чтото делать кликом на актуальный обьект то вообще-то есть https://docs.unity3d.com/ScriptReference/MonoBehaviour.OnMouseDown.html
>>437966Я читал про него и даже почти запилил на нем одну анимацию,но вопрос наверное и вправду тупой
>>437978А вот если у меня планируется пауза в игре с замедлением времени,мне нужно только таймскел уменьшать или свою переменную завести глобальнуюи к ней скорость движения и всех анимаций привязать?А то если таймскел уменьшить все рывками двигается
Забавно, как неглубоко иногда нужно копнуть, чтобы залезть в лютые дебри где хуй поймешь что делать. Казалось бы, задача palette swap для единичного объекта вещь довольно ординарная, но чет пиздец извиваться надо чтобы это реализовать. Я всю первую страницу гугла облазил чтобы только узнать как это называется.
>>437965Под стендалон нет, а это целевая платформа.
>>437934Теперь при нажатии на надписи, которые присутствуют в GUI сцена не загружается, как фиксить?
>>438105Ну, например, надписям тег "Yoba". И потом пиши вот так:if (Input.GetMouseButtonDown (0) && (!EventSystem.current.IsPointerOverGameObject () || EventSystem.current.currentSelectedGameObject.CompareTag("Yoba"))){SceneManager.LoadScene(1);}
Как можно увеличить разрешение, четкость "Text" UI?Знаю способ только увеличивать размер шрифта и уменьшать размеры объекта - но это говно какое-то. Есть ли нормальные способы? А то выглядит всё размыто.
Существует ли какая-нибудь конфа/чат где можно задавать нубские вопросы? По ходу обучения трачу довольно много времени на перебор ненужной информации в поисках решения задачи. Советы знающего человека в какую сторону гуглить очень помогли бы мне.В треде обоссут и дадут 3 разных совета. К тому же вопросы действительно нубские и не достойны внимания Кармаков
>>438156Да здесь пол треда нубских вопросов, так что не парься.
>>438156Вряд ли найдёшь одно такое хорошее место. Я даже на оф сайте по вопросам юнити не дождался ни одного ответа. Так что приходится всё вместе юзать. \gd\, answers.unity, stackoverflow и всё прочее что в гугле найдёшь. Так больше шансов, что ответят. А найти одного спеца, который будет с тобой возиться - маловероятно.
>>438159>>438161В соседнем работотреде опытный товарищ предлагал свою помощь советом. Вот я и подумал, мало ли есть ещё одинокие альтруисты в /gd/.Придется срать тут.
>>438156есть конференция мудаков, но к ним лучше не ходи. вопросы лучше тут задавай, больше шансов что дадут ответ и больше людей включится в обсуждение, если вопрос интересный. к тому-же задавая вопрос тут и получив ответ возможно другой хуй прочтет его и узнает что-то новое.ну а то что тебя обоссут так это само собой разумеющееся, зато ответят на твои ответы. вообще ты лучше давай учись вопросы задавать правильно.
Игрок может выбрать один из нескольких видов оружия. При клике "Fire1" должен вызываться соответствующий метод выстрела. Проблема в том, что метод вызывается только при первом клике. Идти читать дальше про делегаты? https://pastebin.com/rCbTbUbGhttps://pastebin.com/RruL88eT
>>438167Похоже, что у тебя код линейно выполняется. А если попробовать вызывать на каком-нибудь onmousedown (или ином, что триггерит fire1)?
>>427717 (OP)ОП, а уже кто-нибудь говорил, что в шапку можно добавить Hearthstone? Он же тоже на юнити. На момент классика и наксрамасса, по крайней мере. Думаю, что и сейчас - потроха вроде не поменялись.
>>438121Бамп вопроса.
>>427895На пустой сцене же, как помню, есть освещение, как минимум.
>>438173Ты понимаешь значение слова "пустой"? Удалял я свет, нет там нихера, только камера.
>>438169>>А если попробовать вызывать на каком-нибудь onmousedown (или ином, что триггерит fire1)?Тоже самое. Дело не в делегате. В упор не могу понять почему простой if в Update() не работает.
>>438121>>438171Короче, делаю через TextMeshPro. Благо он бесплатен теперь.
>>438167чего ты вообще в делегаты то полез? не лезь в делегаты без надобности. для такой хуйни лучше пользуйся префабами. помню у меня где-то был экзампл для мудака одного, тебе тоже дам. https://www.dropbox.com/s/fiz18gxi03tjy8e/2ch%20example.unitypackage?dl=0скачай, Assets/Import Package/Custom Package и укажи на файлик.
>>438181А почему бы и нет? Смысл делегат вроде как понятен + к моей задаче подходит. Ты погоди, я ещё синглтон GameManager сделаю и под событийное программирование всё переделаю. За префаб спасибо, на его основе реализую сам выстрел.>>438175Пиздец, ебучая аномалияили нет?. По какой-то причине код в Update() вызывался только один раз. Ребутнул юнити всё стало как раньше.
>>438181причина простая - в твоем случае префаб имеет ссылки на ресурсы и их проще категоризировать по папкам. тыж представь какая срань выйдет если ты такой с делегатами "вот тут у меня самалет, он стреляет этим, этим, ещё этим, а вот ссылка на партиклы и ещё и ещё и материалы не забудем" и внутри ещё делегаты ебошишь чтобы оно эти ресурсы пихало куда надо, собирало делегаты в кучу. проще ебануть папку "вот тут красивый выстрел", там префаб, компонент, все это собрано было красиво, чтобы осталось только перетащить куда надо. ещё и можно разных версий поделать, вот тут префаб с таким компонентом, а рядом другой похожий, но ещё красненьким мигает.
>>438190>>438186не туда нажал.вообще реально делегаты нужны вот для гуи-хуюи, для каллбеков, или каких-то дженерик методов, или ещё чего клевого. но нахуй оно надо для такого то?
>>438190Но... я использую делегаты всего лишь для определения типа стрельбы. Какое оружие возьмешь, такой метод и будет вызываться. И каждый метод создает копию префаба "своего" выстрела.Почему именно так? Стараюсь оставлять минимум логики и расчетов в Update().
>>438195но зачем ты вообще выстрел в делегат то суешь если ты ещё и инстанс создаешь? если хочешь присваивать к переменной то пользуйся ООП. чтобы у тебя метод "ебошить" был универсальным и ты переключал ссылку на активное ебошило, где и вызывался бы этот метод. а лол не сначала выбирал активное ебошило, а потом ещё зачем-то метод в нем хватал
>>438196Переопределение метода как в твоем префабе? Метод Shoot() переопределяется в каждом типе выстрела и делает что-то своё. Это я понимаю. >>переключал ссылку на активное ебошилоТ.е. реализовать выбор оружия. Вот это я пока не понимаю как сделать НЕ делегатами.>>чтобы у тебя метод "ебошить" был универсальным и ты переключал ссылку на активное ебошило, где и вызывался бы этот метод. а лол не сначала выбирал активное ебошило, а потом ещё зачем-то метод в нем хваталЯ правильно понимаю что твой вариант: 1) Выстрелить (ебошить) 2) Выбрать оружие (переключить ссылку) ?Чем он лучше моего варианта: 1) Выбрать оружие (switch в Start() ) 2) Выстрелить (вызвать метод запускающий снаряд)
>>438204например есть классabstract class Weapon{public abstract Shoot();}у него есть два наследника Pistol : Weapon и Rifle : Weapon. Они оба имплементят метод Shoot. допустим у тебя есть каждого из них инстанс (а может и не один), но активный слот у тебя только один. ты пытаешься зачем-то хватать делегат. но зачем хватать делегат, если ты знаешь что все пистолеты и ружья у тебя имплементят метод Shoot? проще иметь переменную Weapon currentWeapon, а потом в апдейте проверять.if(currentWeapon != null && Input.GetMouseButtonDown(0)){currentWeapon.Shoot();}и чтобы менять текущее оружие ты соответственно меняешь ссылку у переменной currentWeapon.ты пользуешься ссылкой на иснтанс класса, зная что он наследуется от того класса который может стрелять.делегат просто лишний шаг в данном случае. мало того что ты сводишь все к одному методу, а значит вся ебучая логика стрельбы будет собрана в нем, так ты ещё и пользуешься только одним сраным методом. а у оружия может же быть что-то другое полезное. например ссылка на иконку, или количество оставшихся патрон в магазине которое ты можешь потом совать в ГУИ пользуясь ссылкой на инстанс текущего оружия.а что если ты например выбросишь оружие, но забудешь обнулить делегат? при попытке стрелять будет стрелять оружие брошенное на землю чтоли лол. нахуй такое говно
>>438211>>и чтобы менять текущее оружие ты соответственно меняешь ссылку у переменной currentWeapon.Сслыку на префаб я полагаю? Вот тут у меня и был ступор - я упорно думал что выстрел это обязательно метод, отсюда нагуглил делегаты. Теперь я слегка прозрел, спасибо.У меня простая 2D арена. И мой вариант кажется лучшепока я не наткнусь на кучу подводных камней :).https://pastebin.com/562FwaAKhttps://pastebin.com/pGKQ8KpL
>>438223да не обязательно префаб. ссылку на компонент в префабе который стреляет. который является инстансом типа который стреляет. стрельба то разумеется метод. просто метод может не иметь описания в себе и перекладывать описание его на наследующиеся от него классы. а ты страдаешь какой-то хуйней с этими делегатами. лучше бы сел и прочитал сначала что-то отсюда https://unity3d.com/ru/learn/resources/downloadsв частности посмотрел бы это https://unity3d.com/ru/learn/tutorials/projects/space-shooter-tutorial наиболее близкое к твоему говну. там тебе видео и экзампл.
>>427717 (OP)Здаров, в общем маза такая. Хотим запилить онлайн версию оч крутой настолки Machi koro//Что приветствуется?1. Наличие пряморуких погромистов2. Ваш опыт в геймдеве, ахутиельные идеи откуда можно взять финансирование ну и просто деловые предложения. Одним словом, есть крутая идея, можно заработать. Можно выпустить не онлайн а полноценную версию, но об этом позже. Главное сейчас найти программистов, маркетологов и прочее гавно. Отписываемся, не стесняемся. Запилим конфу в телеге и будем решать как быть.Если вы сможете финансово поддержать проект, чтож тем лучше. У меня есть опыт в индустрии игор, так что для Вас он не есть обязательный критерий. Главное - желание заработать и что бы вы могли в какой-то игровой движок нормальный типа uniti.telegram @alo1x
Делаю угол обзора у врагов 2D игра. RaycastHit2D hit = Physics2D.Raycast (transform.position, Player.transform.position - transform.position); RaycastHit2D hit2 = Physics2D.Raycast (transform.position, transform.right);ang = Vector2.Angle (hit.normal, hit2.normal);Если враг смотрит вверх, вниз, вправо, влево, то всё нормально работает. Но если враг поворачивается не на 90 градусов, то угол высчитывается так, будто бы поворот врага округляется. (0 градусов -- враг смотрит вправо. Если он повернут на 63 градуса, то угол будет считаться так, будто он повернут на 90)В чем проблема? Во мне.
>>438246чего лол. нахуй ты нормали попаданий от рэйкаста сравниваешь? что за охуительный план? просто взять угол между transform.forward и Player.transform.position - transform.position нет?
>>438236Ты прав, страдаю хуйней. Спасибо ещё раз.
Как явно остановить анимацию? Везде показано только для Legacy animation
>>438293YourObject.GetComponent<Animator>().enabled = false;
Ваши предложения, какая структура данных лучше всего подходит для графа, чтобы хранить информацию о узлах и рёбрах разных типовНу или какой есть фри ассет для этого
>>438323да не то что бы у методов хранения графа было уж так много вариантов. чё делаешь то?
>>438329Дейтсим для порнотреда рядом. Последние пару дней вникаю в юнити, почитывая фоном unity in action и придумывая систему отношений между жГГ и неписями. Вот на графах хочу сделать связи между неписями, чтобы сделав хорошо одному, мы повысили свою репутацию у близких ему людей.Можете посоветовать что почитать для реализации всяких gameManager и EventAgregator?
>>438333не если намерян вручную редактировать граф то советую сделать что-то вроде такого:public class Graph { List<Node> nodes; List<Edge> edges; Dictionary<int, Slot> slotByID;}public class Node { List<Slot> slots;}public class Slot { int id;}public class Edge { int idFrom, idTo;}граф хранит ноды и соединения между ними, а так-же перед десериализацией составляет словарик слотов нод. ноды хранят доступные слоты. все элементы графа ссылаются на граф и делают манипуляции через него.можно будет оверлоадить и ноды, чтобы хранить в них игровые эвенты, или обязательный конец/начало диалога. можно оверлоадить слоты чтобы хранить в них пункты диалога и возможно как-то ограничивать тип суваемых туда эджей. и там-же можно хранить требования для появления этого пункта диалога.если собрался хранить игровые данные хоть в чем-то из этого то советую наследоваться от ScriptableObject.данные о соединении в слотах не храни.
Может кто делать ревью кода, чтобы я знал, что не делаю откровенное гавно?И как загрузить строки из .txt в массив? Хотел юзать textAsset, но он null выдает.
>>438373охуеть ревью кода. вот до чего людей доводит групповое погромирование. ну ты главное давай, а там разберемсяничего он нулл не выдает. TextAsset отлично содержимое читает. не понял как пользоваться чтоли?
>>438373>я знал, что не делаю откровенное гавноОбычно люди, которые думают, что делают не-говно, делают такую фиерическую хуету, что окружающие разбивают лица фейспалмом. И при этом с умным видом учат других работать.Так что прими как факт то, что твой код всегда не очень, и живи с этим, читая книги и размышляя, что можно улучшить/переделать.
>>438336Давно в хуюнити макароны из ынрыла появились или это не то, о чём я думаю?
>>438417http://unity3de.blogspot.ru/2015/08/reveal-unknown-graph-and-graphgui-class.html
В каком namespace находятся все наследники монобеха? В смысле, мне нужен полный "путь".получаю доступ к коду билда из стороннего приложения, потрошу Assembly-CSharpПробовал следующие варианты и они не прокатывают:UnityEngine.MyClassMySolution=имя проекта.Assembly-CSharp.MyClassMySolution.MyClassAssembly=CSharp.MyClassИ всякое разно...Ниче не работает. Пробовал сувать MyClass и Type.GetType(MyClass).ToString() в Debug.Log - не выдаёт ничего особенного.ЧЯДНТ?
>>438422А, всё. Дело было не в namespace'ах. Это я криворукий. Полный путь так и выглядит "MyClass", вот и всё.
Есть туториалы на русском? Пока моего навыка не достаточно.
>>438427> Есть туториалы на русском?Полный ютуб.
>>438451А текстовые? Не люблю я видиотуториалы. Хотя можно ещё скилл инглиша подтянуть и обмазаться годнотой.
Алярма! У меня пропали крючки RectTransform! Как фиксить?
доволен. сорт оф сделал весь функционал который хотел, теперь вот пару дней эту хуйню напильником поточить и будет заебись. даже InOut ноды сделал, кликабельные превью и отделил актуальную карту высот от используемой в графе.>>438395обычно люди не думают, а просто делают.>>438417это самописное говно и оно ближе к этим нодовым редакторам шейдоров.>>438418на самом деле я почти не пользуюсь тем что там есть и в итоге сделал свое, взяв оттуда пару вещей.>>438463да лучше уж смотри на английском тогда, если хоть пару слов связать можешь. языки то быстро подтягиваются от практического применения.>>438472крючки лол. вообще навскидку не вижу в чем дело. но их кстати можно менять если ткнуть на квадратик в рект трансформе. там опции меняются если жать Alt, Shift, Alt+Shift. что-то из этого перемещает их.
>>438490Что на скрине происходит? Ты это будешь в ассет стор выкладывать, или для себя пилишь?
>>438493> Что на скрине происходит?Редактор террейна, кажись.
Поясните за сжатие картинок в юнити. Я слышал, что-то про то, что 2д игры на юнити - гиблое дело, потому что он переводит пнг в бмп формат и какая-нибудь визуальная новелла весит 5 Гб. Сам видел такие игры, где пара десятков картинок, а игра на 2 гига.
>>438493на скрине происходит всякое. это же простенький генератор террейна.слева делается инстанс хранилки с Vector2, которая сохраняет их в гриде чтобы была возможность быстро проверять нет ли поблизости ещё Vector2 при добавлении, потом туда делается 250 попыток добавить пойнт при минимальном расстоянии в 20 юнитов. потом по полученым пойнтам генерируется диаграмма вороного. потом эта диаграмма вороного структурируется удобно чтобы разделить её на землю, воду, считается высота вертексов пропорционально дистанции до ближайшей границы "воды". потом это все растеризуется в карту высот, карты биом, карту наклонности. что-то из этого размывается. а потом с этими картами происходят всякие интересные манипуляции в своих отдельных нодах. они там плюсуются, перемножаются и прочее. а на концы к ним можно прицепить накладываемые текстурки, или чтобы там были деревья, или травка, или геймобжекты.пишу пока для себя. потом поделаю имплементацию триангуляции делоне с divide and conquer алгоритмом, может выложу на ассетстор потом за смешную цену, или бесплатно. хотя там и так уже похожие вещи есть. например MapMagic. но проще уж хуйню под свои нужды ебануть, чем за это 75 долларов отдать.например простенький паттерн и его результат. в процесе я слишком наклоненный террейн сделал горой, нагенерировал пойнтов, оставил их только там где зеленое будет. сделал шум, обрезал его, травки сунул. потом вот не понравилось, помножил травку на 2, снова сунул, травки стало больше.>>438503чего лол. сжатие ты сам настраиваешь как тебе там надо. больше занимает всякая музыка и озвучка. вон HuniePop сраные 300 мегабайт занимает, например.к тому-же нет ничего плохого в играх которые занимают 2-5 гб.
Товарищи юнитиводы.Я давно мечтаю запилить РТС. Освоил выделение юнитов рамкой, перемещение их с помощью NavMesh, автоатаку, директ атаку, перемещение "на муве" и всякие хелсбары. И тут я понял, что 3D-графику рисовать не потяну. Посему решил переместиться в 2D и сделать что то в стиле warcraft II. Но вот беда, NavMesh работает в осях XZ, а 2D режим юнити в XY. Как быть? Как реализовать навигацию в 2D?
>>438507https://docs.unity3d.com/ScriptReference/AI.NavMeshBuilder.BuildNavMeshData.htmlпочитай внимательно. новый навмеш в юнити такой охуенный что его можно крутить.
>>438514>>438507а да. чуть не забыл.https://github.com/Unity-Technologies/NavMeshComponents на, возьми отсюда компоненты и экзамплы
>>438507Я не смог разобраться, извини. Можешь на примере объяснить как мне сделать 2D-проект с использованием навмеша? Если сможешь, то со скриншотами.
>>438524ну? чего же ты такой гейдевелопер хуевый? тебе ссылку дали ниже, открой экзампл 3_free_orientation и посмотри.
Привет, есть вопрос.Задача стоит создать объект с помощью Instantiate. Как создать его с поворотом, т.е. как использовать кватерион?
>>438600Нахуя тебе прям кватернион? Юзай Quaternion.Euler и не еби мозги.
>>438601Спасибо, это именно то что мне было нужно.
Почему это говно выдает Object reference not set to an instance of an object? Какая ссылка равна null?В инспекторе префаб shoot и объект shootSpawn перенес.
>>438634брейкпоинт поставь и посмотри, откуда мы бля знаем че у тебя там нулл
>>438634хз, почему так не работает, но я реализовывал это так:shoot = Instantiate (shoot, shootSpawn.transform.position, shootSpawn.transform.rotation);
>>438635Ты рофлишь? У чувака 1 строка кода
Как проверить что я не кликаю на кнопку, а просто по экрану?
>>438651Если кнопка сделана через обычный UI, тоusing UnityEngine.EventSystems; ...if (Input.GetMouseButtonDown (0) && !EventSystem.current.IsPointerOverGameObject ()){//хуйпизда}
>>438655Спасибо, это то что нужно.
Сморю сейчас на Юнити 2017 - первым делом решил оценить фичу - sprite maskИ сразу непонимание - нахрена мне этой маской прятать объекты в окне Scene ? Есть ли где-то галочка какая-нибудь, чтобы можно было оставить их видимыми в окне Scene (или включать когда нужно) ?И почему тогда не сделали возможность применять маску к 3Д мешам? Без этого оно теряет половину смысла.
>>438649>>438650>>438635Зря спросил, нахуевертил с полиморфизмом, напрямую всё работает. Хотя у меня ничего нормально не работает. Сраный AddForce
Подскажите по поводу камеры - перспективная или ортографическая? ДваДэ, вид сверху. И ещё вопрос. Instatiate'ом делаю копии префаба (стрельба). Запутался в координатах. Какие именно мне нужны что бы снаряд летел в направлении курсора? В данном исполнении снаряды летят куда нужно только в начальной позиции.
>>438670> Подскажите по поводу камеры - перспективная или ортографическая?Если нужна перспективная, то перспективная. Если нужна орто, то орто. Для 2D обычно используется орто.> что бы снаряд летел в направлении курсораfloat speed = 2f; // или сколько тебе надо...Vector3 pos = Input.mousePosition;pos.z = 10f; // или не 10, короче подставляешь своё значение по ztransform.position = Vector3.Lerp (transform.position, Camera.main.ScreenToWorldPoint (pos), speed * Time.deltaTime);
>>438675>Vector3.LerpУ тебя пули будут лететь с разной скоростью в зависимости от расстояния.
>>438677Тогдаtransform.position = Vector3.MoveTowards(transform.position, Camera.main.ScreenToWorldPoint (pos), speed * Time.deltaTime);Смотря как ему надо.
>>438678А, скрин не посмотрел. Тогда точно MoveTowards
>>438670> В данном исполнении снаряды летят куда нужно только в начальной позицииЁптваюмать, может это потому что ты Input.mousePosition получаешь в старте, а не в апдейте? Откуда твой старт знает что ты мышку сместил?
>>438680Это скрипт снаряда, если получать Input.mousePosition в update() то снаряды будут смещаться с движением мыши.>>438675В апдейте закомиченно именно то что ты предлагаешь. Снаряды перемещаются вместо со мной.
>>438682>>В апдейте закомиченно именно то что ты предлагаешь. Снаряды перемещаются вместо со мной.Пизжу, снаряды просто перемещаются в точку куда кликнул.
>>438682> снаряды будут смещаться с движением мышиСнаряды будут лететь туда, где мышка. Тебе разве не это надо?
>>438683> снаряды просто перемещаются в точку куда кликнулГде у тебя в коде хоть слово про "кликнул"?
>>438684Меняют траекторию во время полета.
>>438686Ну так разве это не> что бы снаряд летел в направлении курсора?Изъясняйся нормально что тебе нужно.
>>438685В PlayerController//Префаб снарядаpublic GameObject shoot;//Объект откуда стреляюpublic Transform shootSpawn;void Update() { if (Input.GetMouseButtonDown(0)) { Instantiate(shoot, shootSpawn.position, shootSpawn.rotation); } }
>>438688Обычная стрельба кусками говна. Игрок жмет клик, куда мышка направленна туда и летит снаряд. Без воздействий на снаряд во время полета.
>>438690Ну так и что конкретно у тебя не работает, если> В данном исполнении снаряды летят куда нужно только в начальной позиции?
>>438691http://recordit.co/yQsoMlQcA0
>>438692Ааа, в смысле дальше не летят. Так бы сразу и сказал.
Ебать я даун, я уже задавал такой же вопрос. >>436652 - ответ Нехуй проебывать геометрию в школе
Сап юнитяч! Как нормально подружить юнити проекты с гитом? У меня чет какая то хуйня выходит.Сделал проектик на компе дома. Закоммитил сначала все кроме билда и папки Library с какими-то как я понял метаданными. Запушил на гитхабчик. Запулился с ноута - открыл проект - он немного покоцался: в сцене в навешанных на элементы скриптах пропали все прикрепленные из редактора ссылочки на префабы, компоненты и т.п. (см. пикрил, вместо этих штук везде было Missing). Потом почему-то создался дублирующий файл .csproj (проектик студии) и стал использоваться он (Был старый Project.csproj, добавился новый Project-CSharp.csproj). А когда я открыл C#-файлик какого то скрипта из юнитиредактора даблкликом и запустилась вижуалстудия, она не подсвечивала синтаксис и писала "Проект был выгружен.", причем райтклик по решению и нажатие "перезагрузить проект" не помогало.Я решил "черт, все идет по пизде, надо коммитить либрари тоже". Все пофиксил на ноуте, закоммитил еще и папку либрари, кроме всяких тяжелых дллок и т.п. По сути оставил только стандартный гитигнор всяких промежуточных файлов вижуалки и все. Запушил.Запуллился дома с компа. Открываю проект. Так эта сука говорит "нет, извини, у тебя в мета-данных какая-то хуйня, пожалуй перестрою ка я библиотеку". И опять отрывает все ссылочки от скриптов.ЧТО ЕЙ НАДО ТО ХОССССПАДИ?!?!?!
>>438698Ебать, используй Collaborate, нахуя ты велосипед создаёшь?
>>438699Что такое коллаборейт и как его юзать? К гиту уже давно привык, т.к. не первый год прогаю, проблем с ним никогда не испытывал, пока не решил повкатываться в юньку...
>>438700Window - Services - CollaborateВсе изменения заливаются в облако (контроль версий присутствует), с другого компа/ноута изменения сливаешь и работаешь дальше. Так же можно использовать в команде.Всё делается в два клика.
>>438698Метафайлы (*.meta) коммитил?
>>438695Можно ещё так (вешать на снаряд):public float speed = 10f;void Start () {Vector3 pos = Camera.main.ScreenToWorldPoint (Input.mousePosition);pos.z = transform.position.z;transform.LookAt (pos);}void Update () {transform.Translate (Vector3.forward speed Time.deltaTime);}
>>438708Ах да, это если у тебя 3d-объекты, а не спрайты.
>>427717 (OP)Кстати возник вопрос. Как можно отрисовать только часть спрайта? Допустим для открывающейся вверх двери. Пока уменьшаю scale но выглядит ущербно.
>>438709У меня спрайты. Сделал вот так:mousePosition = Input.mousePosition;mousePositionRay = Camera.main.ScreenToWorldPoint(mousePosition);rb.AddForce((mousePositionRay - transform.position) * speed, ForceMode2D.Force);Причём чем дальше больше расстояние игрок - место клика, тем больше сила. Тащем-то баг превратился в фичу. Можно создавать препятствия перед ебальником или показывать скилушечку кликая как можно дальше от корабля ( сила увеличивается).
>>438714
>>438719хз, как для 3-мерных спрайтов, но обычный можно через спрайтрендер
>>438714Только у меня вопрос. Если дверь должна открываться, то почему её просто не передвинуть, вместо того, чтобы сжимать?
Я просто оставлю это здесь
>>438727ТОКИ?
>>438730>ТОКИкакие токи?
Котаны, нужно создать префаб, проиграть одну анимацию и уничтожить его. А теперь вопрос, как проиграть анимацию и получить коллбэк об окончании? И шоб ДжваД
>>438731Конкурс инвалидовhttps://tabun.everypony.ru/blog/OKI/172165.html
еее, аутизмус, ееенужен был хостинг шебма
>>438650И как же 1 строка помешает установки брейкпоинта?
>>438722Потолок в который открывается слишком маленький чтобы оно туда влезло>>438721Спасибо
>>438756Дааа, это сильно поможет понять, в какой строке ошибка.
>>427717 (OP)Запилил на юнити игру. Покритикуйте. Sel. play.google.com/store/apps/details?id=com.LonelyGod.selВсе просто: уничтожайте квадратики одного цвета, получайте очки. Испытайте вашу скорость реакции в трех режимах игры: аркада, 13 ходов и 49 секунд. В аркадном режиме уничтожая квадратики вы получаете очки и дополнительное время. В режимах на время и на ходы - заработайте как можно больше очков за 49 секунд или за 13 ходов.
>>438759Довен, во время дебага можно навести мышку на переменную и будет показано ее значение.
>>438732Можно поставить ивент на конец анимации, хендлить его и вызывать дестрой
>>438760Ты б у спрайтов по краям хотя бы в пару пикселей альфа-обводку делал, чтоб они в кашу не сливались. Примерно так.
>>438760У меня глаза от скринов вытекли
>>438771
>>438373>Может кто делать ревью кода, чтобы я знал, что не делаю откровенное гавно?>И как загрузить строки из .txt в массив? Хотел юзать textAsset, но он null выдает.На Codacy или аналог загрузи
Привет. Подскажите, при навыках в рисовании, и нулевом навыке в программинге, смогу я запилить в юнити простенький "камерный" платформер с такой же простой 8-битной графикой. Что то вроде:https://www.youtube.com/watch?v=x57Gn0beSs8это лишь пример, игру другую буду пилить но схожую по сложности и типу.Не умея программировать, смогу ли я обойтись туториалами и возможно какими-то готовыми скриптами, и не потратив 1000+ часов на создания? Рисовать буду сам, скил есть. Не могу выбрать движок.Все на таком же базовом уровне.
>>438788> смогу ли я обойтись туториалами и возможно какими-то готовыми скриптамиЕсли IQ больше чем длина члена, то сможешь.
>>438698https://github.com/github/gitignore/blob/master/Unity.gitignore
Ну охуеть теперь
>>438839можете хуев на почту покидать заодно, че уж там
>>438839Я обновы подожду, один хуй я свои говноподелия ещё даже не билдил.
>>438788Сможешь. Написание простых скриптов в юнити, это оооочень далеко от страшного слова "программирование". Тебе по сути надо будет только писать штуки вроде "если Столкновение(Игрок, Враг) то Игрок.Сдох()"Можно, конечно, заюзать конструкторы, где кодить вообще не надо, но там свободы будет меньше, больше запутанности, так что самую-самую базу надо уметь делать, элементарно там, что такое классы, переменные, циклы, условия.
>>438788> готовыми скриптамиЛучше не надо. Лучше потрать на пару вечеров больше, но зато напишешь сам и будешь знать что у тебя где и почему, если что-то поменять захочешь.
>>438841>in editorЖопой читаешь? В редакторе эксплоит, через который твою пекарню могут угнать.
>>438846> Жопой читаешь?Видимо да.> твою пекарню могут угнатьОчень вряд ли, у меня и хардварный и софтварный фаервол, и оба настроены очень параноидально.Если подозрительная хуета начнётся — накачу.
Есть у меня на объекте obj скрипт Yoba. В скрипте написано:void OnMouseDown () {// хуёмоё}Соответственно, при клике по объекту что-то происходит.Есть у меня другой скрипт, в котором прописаноobj.GetComponent<Yoba> ().enabled = false;Скрипт срабатывает, в инспекторе на объекте obj скрипт Yoba становится неактивным (галочка на компоненте исчезает). Но всё равно при клике на obj скрипт срабатывает, хотя в инспекторе чётко видно что скрипт неактивен.Это что за говно? Я, конечно, переделал под флажок в скрипте и всё работает, но хуйня всё равно странная.
>>438852А, ещё лучше. Можно даже безо всяких вторых скриптов, тупо в инспекторе с объекта снять галочку с условного скрипта Yoba, но он всё равно будет срабатывать.
А реально ли ообещ запилить какой-то глобальный лидер-борд с рекордами по количеству очков, между всеми играками в игру? Или это типа какой-то сервак поднимать надо?
Можно ли как-то сделать, чтобы Visual Studio подсказывала код, названия компонентов и их свойств?
>>438864Поковыряйся в настройках:Сервис > Параметры > Текстовый редактор > C#
>>438863Да сервер, но без античита нахуй не нужно.
>>438869Античат какая проблема?
Я так понимаю, писать всякие конфиги для настроек и сохранять, допустим, внешность персонажа нормально можно только в .xml? Вкиньте нормальный гайд по node'ам, документация с msdn вообще не читабельна.
вопрос. как узнать скрин спейс координаты у RectTransform когда канвас находится в камера спейсе? position начинает возвращать мировые координаты же. я конечно придумал решение, но какое-то оно плохое
Запилил реакцию на свайпы вправо и влево, которые выключают анимацию объекта через cube.GetComponent<Animator>().enabled = false; и включают булевые переменные IsActiveRightRotate(при правом свайпе) или IsActiveLeftRotate соответственно.При том, противоположные переменные ставлю в falseДалее в Update пихаю ентоif (IsActiveRightRotate) { cube.transform.rotation = new Quaternion(0, -30, 0, 5); } else if (IsActiveLeftRotate) { cube.transform.Rotate(new Vector3(0, 30, 0)); } но куб просто прекращает анимацию и зависает на своем прежнем месте.Что не так?
>>438909Забыл сказать, что пробовал по разному реализовать поворот. И через Rotate, и через свойство rotation
>>438909что за странная схема присвоения ротации то такая? может просто в апдейте будешь делать ротацию на дельта-ротацию перемножая текущую ротацию на дельту?
>>438909вообще на самом то деле ничего удивительного что у тебя что-то там встает. в первом варианте ты зачем-то напрямую выставляешь ротацию, во втором тоже. тебе надо менять ротацию же.например вот так: [Range(0f,1f)] public float speed = 0.9f; Quaternion targetRotation; void Start () { targetRotation = transform.rotation; } void Update () { targetRotation *= Quaternion.Euler(Input.GetAxis("Vertical"), Input.GetAxis("Horizontal"), 0); transform.rotation = Quaternion.Lerp(transform.rotation, targetRotation, speed); }
>>438910>>438909Решил проблемы корутиной
Добрый вечер, уважаемые гейм девелоперы.Столкнулся со следующей проблемой.Имеются блоки 1х1, стоящие в ряд строго друг за другом и на одной высоте. На блоки навешен Box Collider 2D.Есть круг с фиксированным Rotation, с RigidBody 2D, Circle Collider 2D и скриптом, в апдейте задающий фиксированную скорость по координате X. Результат: Круг перемещается по блоком, но слегка отскакивает так, будто натыкается на выпирающие элементы. Аноны, как мне разрешить сию проблему? Как заставить круг не отскакивать?
>>438944Забыл добавить. На коллайдерах никаких материалов не висит.
>>438944Я бы посоветовал просто сделать 1 коллайдер на все блоки. Но я надеюсь, здесь найдётся кто-нибудь умней меня.
>>438948Проблема в том, что блоки генерятся на ходу.Но этот вариант я рассматриваю как решение, если лучше не найдется. Все таки не хочется мучаться с длиною блока и переделывать генератор целиком.
>>438949Я сам не так давно юнити использую, но там похоже есть трабла с координатами. В общем они, как я понял, округляются и если кодом их изменять, в одном случае могут получатся разные значения в.
>>438950Можешь кинуть, где ты это вычитал?
>>438952Да я сам когда камеру вращал на 180 градусов, увидел, что у неё после нескольких оборотов в положении последняя цифра после запятой начала изменяться.
>>438950Округляй сам. Например,static Vector2 round (Vector2 v) {return new Vector2 (Mathf.RoundToInt (v.x), Mathf.RoundToInt (v.y));}и потом просто в коде его вызываешь
>>427717 (OP)Посоны, есть объект со способностью наносить урон, при коллизии с объектом. Как назвать интерфейс сfloat Damage {get;}void OnCollisionEnter2D(Collision2D collision)?
>>438969Damageable
>>438952http://floating-point-gui.de/basic/
>>439002Ну окей, но я не использую никаких вычислений. Я просто инстантинирую блоки с заданной заранее для всех координатой Y. Даже если округление кривое, то оно должно быть одинаково кривым для всех, нет?
Посоветуйте сайты с фрилансерами с которыми имели дело и можете рекомендоватьКоманду мне не собрать, а денег есть на небольшие задания по говнокодингу и сборке карты
>>439004Что за задание по говнокодингу? Может впишусь, один хуй скучно.
>>439005поставить систему диалогов с памятью у NPCтам же, понятно, привязка по ивентамцель - получить от NPC инфу и/или ништяки за любовь и/или ништяки, нужные им.AI + dialoguesяпонел, что это не просто говнокодинг и задача не тривиальна ни разу
>>439005а вообще мне нужен кто-то, с кем поговорить
Нихуя не добрый нахуй хуевый день!Начал делать кароче не гугл кардбоард херню на юнити.Создал проект, сделал всё по мануалу етц.Билжу - билдится. Отдаю человекам со смартфонами - при запуске приложения их отправляет в маркет за апликейшеном от гугла (это ожидалось), но никто не может его поставить - "ваше устройство не поддерживается". При этом у них есть акселерометры и гироскопы етц, т.к. другие приложения из маркета (не на юнити например) вполне работают, такая картина наблюдается на нескольких версиях ведра. На некоторых приложение запускается но камера не двигается, и все также отправляет в маркет за неставящимся приложением.Кароче нит про тип инб4 соси
>>439010гугли how to debug an Android app>Билжу - билдитсязапускать пробовал?
>>439011Так говорю все запускается у них, у кого то даже картинка есть. Но всех отправляет в маркет за приложением Google Cardboard - и у всех оно не ставится, хотя спеки нормальные и другие приложения VR работают.Есть правда еще проблема что у меня лично на руках нет телефона с андроидом выше 4.4 (а ниже не деплоится кардборд)
>>439012я про это и спрашивал:>запускать пробовал?как можно что-то девелопить, не имея возможности отдебажить самому! Любой говнокод соберется, если нет косяков по синтаксу.Короче, уговори одолжить тебе тюлюфон
>>439006ВНку лепишь что ли?
>>439014Эх, я спрашивал за графы на прошлой неделе, но так ничего и не сделал. Тоже диалоговую систему буду через графы пилить. Может накидаете что-ли как делать собственные окна и элементы в гуи редактора?
>>4390143д эдвенчер с флиртом и еблей
>>439023Я это ты, только у меня 2дэ и я без денег
>>439018окна и элементы то легко, https://docs.unity3d.com/ScriptReference/EditorWindow.html а дальше все как в старом ГУИ. разве что ещё есть EditorGUI и EditorGUILayout для всякого специфичного говна. ещё Handles есть которым всякие интересные вещи можно на гуи рисовать. но самое интересное говно случится то как всегда когда захочется что-то хорошего сделать. вообще ты вот вопросы лучше задавай по конкретным проблемам. тема то большая.
Я этот антон >>439004так и не дождавшись советов, покапался на фрилансер.ком, где зареган года с 2008-го работодателем.5 бачей в час для фрилансера из мухосранска хотя город известный это как?
>>439056Ты лучше сначала скажи как ты будешь отслеживать сколько часов у него реально ушло на скрипт.
>>439057Я перечитал на в месяц. получилось для мухосрани очень не плохо (600+). Он сделал пока 3-4 проекта, где каждый 100-150 бачей и сдавал через неделю. Это мне подходит.Моя проблема даже не особо в прогании. Сам подпилю как-нибудь. GTGD на ютубе, например, все хорошо объясняет.Мне надо сделать красиво из имеющихся ассетов на мне защитный шлем от какашек, можете кидатьНу, не хочу я творить левел! Пусть кто-то накидает, а я там погуляю, оценю.
>>439008Сделал бы твою хуйню, но ты просто очередной грязный делец, который хочет нажиться на добропорядочных хикках, так что рака яиц тебе желаю
>>439059>>439059>Сделал бы твою хуйнюсколько лет опыта в юнети?портфолио имеется?
Аноны, неужели никто не может помочь с этим? >>438944
>>439069Нихуя ты с этим не сделаешь. Либо пили общий коллайдер, либо иди нахуй.
>>439070Должен быть выход. Иначе как работают прочие игры, где уровень из блоков состоит?
>>439071А ты не проверял просто. Там такое же говно происходит. Я по teamfortress2 знаю, что в соурсе можно удариться в стену, если она состоит из нескольких блоков и ты летишь вверх вплотную к ней.
>>439075Т.е. ты делаешь рокетджамп, летишь вверх у высокой такой стены, собираешься пустить в стену ещё 1 ракету и полететь дальше, но тут происходит внезапный пиздец. Ты резко останавливаешься и начинаешь падать.
>>439076Ну блин, это же откровенный баг движка, не?
Джоп запостил, если кому на водку не хватаетhttps://www.upwork.com/ab/applicants/899376062433861632/job-details
>>438852enabled отвечает только за выполнение метода Update твоего скрипта все остальное продолжает работать, сделай флаг в своей йобе и чекай его.
>>439097можешь так вообще сделатьvoid OnMouseDown () {if(this.enabled){// хуёмоё}}
>>439080По своему игровому опыту я бы сказал, что почти все движки одинаковые. Похоже эта проблема просто обязана существовать, иначе ей на смену просто придут другие.
>>438881Можешь json-ы юзать, а можешь вообще скриптабл обжекты юзать и не выебываться.https://docs.unity3d.com/Manual/JSONSerialization.htmlhttps://docs.unity3d.com/ScriptReference/ScriptableObject.html
>>438896https://docs.unity3d.com/ScriptReference/Camera.WorldToScreenPoint.html
>>439006У меня есть такая шляпа. Могу пояснить как делать за нихуя или переделать под твои нужды (не за нихуя).
>>439106поклянись, что не хахелjoesixpaq@ngs.ru
В какой программе можно сделать анимации 2d чара, движения конечностей, глаз тп, избегая листа png? after effect не зашел
>>439106Поясни как делать за нихуя
>>439097> enabled отвечает только за выполнение метода Update твоего скрипта все остальное продолжает работатьВон оно как. Спасибо.
>>439111Spine или я непонел вопроса
Ребята, подскажите, кто знает, пожалуйста. У меня есть платформ(пикча 1) с пивотом на гране, для того, чтобы при изменении rotation, объект поворачивался как надо.Так вот, как мне сделать, чтобы когда куб на него падает, то платформа поварачивалась вслед, как на второй пикче.
>>439104да я так и сделал, но там плюс ещё кривая формула конвертации прочего говна чтобы правильно сдвигать рект в нужную сторону. но этот метод выглядит переусложненным.>>439101кстати скриптабл обжекты я бы в этом случае особо не советовал. в сбилженом проекте их особо не посоздаешь и поменяешь. они все-же для организации проекта.>>439141что за странный вопрос. как сделать то хочешь? физоном? анимацией?
>>439143Физикой офк
>>439144ну привесь хуйню на джойнт че ты
>>439145Поподробней, я енто где-то слышал, но не ебу, как делать
>>439148ууу бестолоч. гуглить не может уже. на. https://unity3d.com/ru/learn/tutorials/topics/physics/physics-joints
>>439150Ух, ща посмотрим
>>439150Ну посмотрел я видосы, поставил на пивот платформы Hinge Joint, все параметры пересмотрел, всё перепробывал, всё равно, когда куб падает на платформу, она чуть-чуть дрогнет и всё.Помоги, криворукому рукожопу
Перестал пилить свою игру из-за других дел, и у меня ломка. Это норма?
>>439175ломка от чего?
>>439187От того что перестал. Это как зависимость, когда пилишь игру на юнити, твои труды сразу вознаграждаются тем, что твое поделие совершенствуется, и ты сразу на экране можешь видеть как твой персонаж стал лучше выглядеть, или как враги стали умнее, или как появился УИ, и удовольствие и от того что решил какую-то непростую задачу, и от того что твое детище совершенствуется и это чувство прогресса и того что ты не проебываешь время зря в кое-то веки просто охуенно. Короче, я подсел.
>>439188Через пару годиков это пройдет
>>439120На spine нет торрента
Анон, почему при запуске игры этот меш отображается черным? Меш менял. В эдиторе все выглядит норм (2-й пик). Скриптов на нем никаких нет.
>>439285>Меш менялМатериал менял всмысле
>>439286Он у тебя должен быть розовым? Выглядит так, будто у тебя ссылки на материал похерились или на щейдер или ошибка в шейдерее.
>>439112Контакты оставь.
>>439303Да, для начала хотя бы розовым. Материалы пробовал назначать новые, шейдеры удалял, не помогло. Попробую пересоздать.
Как через код достучаться до этого компонента UI?
>>439364using UnityEngine.UI;Image _image;_image = GetComponent<Image> ();
>>439368Вот я дурак, забыл про UI.Спасибо тебе, добрый человек
Повесил на кнопку это скрипт: public AudioClip sound; void OnMouseDown() { StartCoroutine(RotateBTN()); AudioSource.PlayClipAtPoint(sound, transform.position); transform.localScale += new Vector3(0.05f, 0.05f); } void OnMouseUp() { transform.localScale -= new Vector3(0.05f, 0.05f); } private IEnumerator RotateBTN() { transform.Rotate(0, 0, 2); yield return new WaitForEndOfFrame(); StartCoroutine(RotateBTN()); }Корутина выполняется один раз(Когда нажимаешь на кнопку, то она поварачивается на (0, 0, 2) и всё, хотя должна крутиться), в чём проблема?
>>439380Хуй знает, братишка, у меня всё крутится.
>>439380нахуй ты корутины запускаешь рекурсивно, ебан? про while не слышал?
>>439396Да, блядь, потому что всё перепробывал, даже до рекурсии дошел
>>439397> всё перепробывалwhile (true) и ебашишь туда всё что надо, базарю, ещё захочешь.
Вот есть у меня анимированный перс, который может бегать, махать мечом и т.п. Мне нужно менять некоторые анимации в зависимости от надетого эквипа(удар мечом на удар кинжалом, к примеру).Как это правильно делается? Можно создать для каждой анимации саб-стейт машину, и переключать анимации в зависимости от установленной float переменной. Но выглядит как-то не очень здорово. Плюс придется повторять много работы для каждого айтема. Если эквипа много, то получится неподдерживаемое развесистое дерево.Может менять анимации в ран-тайм(как это делать)? Или юзать разные контроллеры/разные слои?
>>439425Я это делал так: каждому оружию добавлял string с именем булевой переменной, которая в аниматоре отвечала за переход, и потом её передавал в контроллер, а тот уже в аниматор.Я сомневаюсь что это был рациональный способ, но у меня было три с половиной вида оружия и всё работало.
>>439305tg:krasnovmv
Сап, не подскажите где можно глянуть сырцы готовых игр на юнити, чтобы прямо в эдиторе открыть и посмотреть архитектуру. Вознамерился пилить простенькую рпг и хотелось бы заценить годные реализации.
Есть какой-то аналог Rigidbody.AddExplosionForce для 2D?
>>439432Зачем тебе аналог?
>>439433Потому что AddExplosionForce is not a member of UnityEngine.Rigidbody2D ?
>>439436Ну и почему ты такой ленивы хуй, что не можешь загуглить "addexplosionforce 2d", где по первой же ссылке всё чёрным по белому написано?Даже помогу тебе, вдруг у тебя в гугле пожизненный бан.https://forum.unity3d.com/threads/need-rigidbody2d-addexplosionforce.212173/
>>439440Но я это уже нагуглил, поэтом и спрашиваю, есть ли нормальные способы.
>>439442А чем тебе способ по ссылке не нормальный?Ну ладно, можешь по уловному "взрыву" высчитывать расстояния от центра "взрыва" до объектов, которые надо откинуть, отнимать значение от заведомого большого константного вектора и передавать это самое значение в Rigidbody2D.AddForce каждого объекта.
>>439443*условному
>>439443>>А чем тебе способ по ссылке не нормальный?Есть готовый метод и не нужно придумывать велосипед?
>>439445Прям готовый из коробки для 2д — кажется нет. Я как раз велосипедил с вычислением векторов расстояния. Но то было относительно давно, я с 2д давненько не работаю. Но тот же гугл говорит, что тут без педалей не обойтись.
>>439445Покури ещё Collider.ClosestPointOnBounds, но не уверен что оно в 2д работает.
>>439431бамп
>>427717 (OP)UnityWebRequest не умеет принимать больше одной куки на андроиде. Одна остается, а остальные просто отбрасываются. Они там охуели такие баги делать?
>>439425Слоеный mecanim/thread
>>427717 (OP)Поцоны хелп,не могу взять сферой обьекты принадлежащие к слою obstacles(хочу зоны видимости запилить)Запилил слой,навесил на стенку(пик 2)нихуя не находитfloat viewAngle=180f; float viewRadius=20f; visibleTargets.Clear(); obstacleMask=9;Collider[] targetsInViewRadius=Physics.OverlapSphere(transform.position,viewRadius,obstacleMask);Debug.Log(targetsInViewRadius.Length);targetsInViewRadius.Length выдает 0
>>439468Спасибо. Нашел вот примерно как это делается через синхронизированные слои.https://forum.unity3d.com/threads/mecanim-sync-layer.198079/
>>439470OverlapSphere ловит коллайдеры, у тебя они там есть? Кстати зачем тебе ловить препятствия сферой, я бы ловил игроков/мобов, потом рейкастил в каждого через слой obstacles, если рейкаст долетел - значит увидели его.
>>439470Есть вариант, что он GameObject, на котором висит, считает за объект, с которым он пересекается. С рейкастами, по крайней мере, такая хуйня происходит. Проверь физон в настройках.
>>439473коладеры есть,сделать так решил для тестаигроков она тоже не ловит
>>439462Чо делать? Есть ли способ получить доступ к нераспарсенным хедерам?
>>439475А obstacleMask это маска или integer? Может с маской что-то?
>>439431бамп вопросу
>>427717 (OP)Анончики, подскажите как лучше организовать взаимодействие между компонентами одного геймобджекта, допустим у меня есть компонент который реализует таймер и вызывает переданную как параметр функцию после. Есть компонент который реализует взрыв. Мне нужно сделать бомбу которая взрывается по таймеру. Про геткомпонент естественно знаю, но выходит что скрипт в котором будут обращения к компоненту таймера и взрыва будет зависеть от того висят ли эти компоненты на геймобджекте или нет. Мне не кажется, что это норм вариант, или я уебался, или чет совсем не так делаю.
>>439542> будет зависеть от того висят ли эти компоненты на геймобджекте или нет[RequireComponent(typeof(YobaComponent))]
>>439542Подумал, что можно в принципе добавлять компоненты самому, но не уверен, что это хорошее решение.
>>439542На null проверяй, лишним не будет. Если отсутствие компонента - не баг, ничего не пиши. Если баг, пиши LogError.
Стоит ли использовать события аниматора для увязывания скриптов и анимации, или лучше все далать внутри скрипта?
Бля, почему столько хуевых уроков по Юинти? Открываешь видос, думаешь там то что тебе нужно, а вместо этого видишь хуя простого вроде себя, который рассказывает банальности, еще и неправильно/криво делает. Самое главное, ни хрена про реальные проблемы и решения, только говно-шутеры с бегающими яйцами - в 150й раз. Есть "продвинутые" каналы, в смысле чтобы не совсем тривиальная инфа была?вот эти вроде норм из того что нашел, хотя brackeys мало смотрелhttps://www.youtube.com/user/Cercopithecan/playlistshttps://www.youtube.com/user/Brackeys/playlistshttps://www.youtube.com/channel/UCtQPCnbIB7SP_gM1Xtv8bDQ/playlistshttps://www.youtube.com/channel/UCtb1s859RTxx-RIgFs5ZVQA/playlists
>>439562У brackeys тоже толком ничего продвинутого, но он, в отличие от большинства, даже простые вещи делает по уму
>>439548Стоит, если правильно это сделаешь. Встроенные события работают через sendmessage, что является довольно говеным способом, но можешь написать свой обработчик эвентов и вызывать даже небо/аллаха из аниматора.
>>439583Любопытно, а как приделать свой обработчик? Юзать коллбэки из StateMachineBehaviour?
Перед началом игры выбираешь вид корабля. Каждый из них имеет свои статы, анимацию и звук. Вопрос в том, как реализовать выбор.Сделать префаб каждого вида кораблей и подгружать соответствующий, но я не совсем понимаю как перенести все нужные компоненты с префаба на игрока. Какую фразу гуглить
>>439591>компоненты с префаба на игрокаНихуя не понял, что ты этим хотел сказать, чуть подробнее, либо другими словами.
>>439591Игра сетевая? Если нет все вообще тривиально. Просто инстанциируй префаб и все. Префаб это и есть "объект игрока".
>>439597Есть игрок, к которому прикреплен скрипт на перемещение.Есть разные виды кораблей. У каждого свои характеристики, анимация и звук. Для удобства каждый вид засунут в свой префаб. Как передать характеристики корабля игроку я понимаю (переменные), но как мне заменить анимацию и звук? Думаю в этом направлении:gameObject.GetComponent<SpriteRenderer>().sprite = _playerShipSprite; // _playerShipSprite - ссылка на спрайт корабля
>>439607Да что за игрок то у тебя, елки-палки? Чем тебя не устраивает уничтожать старый объект и инстанциировать новый?
>>439607Отдели вижуал от остального и просто инстанциируй префаб, созраняя ссылку на созданный тобой геймобджект в скрипте игрока, хули ты там выдумываешь?
>>439609Я просто плохо объясняю. >Чем тебя не устраивает уничтожать старый объект и инстанциировать новый?Получается он должен содержать в себе скрипт на передвижение/обзор и прочее что нужно игроку?
>>439614Ну да, к примеру, скрипты контроля, камеры и прочее сидит на префабе, приходят и уходят с ним.Если тебе нужно сохранять какую-то информацию, когда префабы меняются, можешь повесить скрипт на пустой объект. Пусть он называется PlayerManager, чисто для примера. Можешь даже добавить DontDestroyOnLoad, если нужно сохранить его при загрузке новых сцен.В этом объекте можешь хранить статы игрока, имя, экспу, и т.п. Как общаться скриптам с префаба и этому скрипту? Можешь инстанциировать новый префаб из этого самого скрипта, Instantiate вернет ссылку на объект, которую сохранишь в переменной. Потом передашь нужные статы и ссылки созданному объекту. Можно в PlayerManager сделать public static PlayerManager Instance { get; private set; } и в Awake() {if(Instance == null) Instance = this;} И общаться с PlayerManager скриптом через Instance. Можешь связывать объекты через FindObject, только не вызывай его каждый раз, а сохрани ссылку один раз, он тяжелый.Наконец, можно сделать префаб из модели с анимацией и звуком, и сделать его дочерним объектом своего объекта-игрока через transform.parent. Короче, зависит от того, что тебе нужно, и как должно взаимодейтствовать.
>>439621>>439613Спасибо огромное.
>>439305Напиши ну, если нет телеги, могу почту оставить
>>439547> На null проверяйВот этот пидор знает о чём говорит, я даже если на 100% уверен что компонент на объекте есть, всё равно проверку делаю. В нашем деле лишняя паранойя не повредит.
Как правильно прицепить скрипт, который будет выполняться при старте сцены?Сейчас использую событие старт на объекте, но это некрасиво. Вдруг я удалю этот объект или захочу их множество из префаба использовать, тогда у меня мой Start или не будет запускаться или запустится несколько раз.Куда общий для сцены скрипт прицепить?
Как правильно сделать скрипт, который будет выполняться при старте сцены?Сейчас использую событие Start() на объекте, но это некрасиво. Вдруг я удалю этот объект, или захочу их множество из префаба использовать, тогда у меня мой Start() или не будет запускаться вообще или запустится несколько раз.Куда общий для сцены скрипт прицепить? И как сделать так, чтобы он выполнялся при старте сцены?
>>439629> Куда общий для сцены скрипт прицепить?Создай пустой объект-контроллер, или на камеру прицепи, уж она-то у тебя точно всегда на сцене будет.> И как сделать так, чтобы он выполнялся при старте сцены?void Awake () {}
>>439629https://docs.unity3d.com/ScriptReference/SceneManagement.SceneManager-sceneLoaded.htmlили вот это
UI LayoutsДопустим по умолчанию уи создано под вертикальную ориентацию, и как теперь быть когда нужно в горизонтальную? Под андроид можно 2 лейаута использовать для каждой из ориентаций. А тут то как делать? Пока хотелось бы только измененное положение/размеры/?иерархию_сцены?, без новых уи-объектов (т.е. без: выдвижные менюшки в верт. / 2-3 колонки в гор.). Хотя тоже бы хотелось узнать как такое тут и такое можно сделать.Анимация UIПредставим, для примера, что у нас есть склад товара до 10ед. и нам нужна кнопка, которая меняла бы свой цвет/спрайт/текст в зависимости от заполненности склада. По одному "стилю" на каждую единицу товара (т.е. всего 11 состояний и стилей). Количество товара на складе может изменятся случайно (внешним скриптом) и при нажатии на кнопку (только определённым образом: +1, но на 10 с 50/50% может перейти в 2 или 7). По цвету изменяем только Color, т.е. хайлайт, прессед и т.п. работают как обычно. Почитав мануалы, посмотрев уроки я создал всё это (ну аниматор там, анимации граф переходов, кондишн и т.п.), но у меня есть вопросы.Как интерполировать цвет по HSV (и т.п.), а не по RGB? Есть что-то встроенное или нужно свое писать?Можно ли интерполировать не из заданного значения, а из текущего на момент запуска анимации? Например чтобы задать только финальный цвет и интерполировать к нему из текущего.Кривые указывают конкретные значения, а как задать только форму кривой? Ну чтобы можно было менять значения, а характер интерполяции оставался таким же.Как задать одну и ту же форму кривой для нескольких параметров (см. вопросы выше), т.е. для всех каналов цвета разом, но у них разные значения.Переходы (transition) между анимациями (state) имеют какие-то настройки. И я так понимаю они нужны для 3D и бесполезны в нашем примере (ну кроме условия перехода)? Как их правильно отключить?Как организовать анимацию перехода из одного состояния в другое? Например анимация состояния это просто 1 цвет или "мигание" какое, а анимация перехода это интерполяция из старого цвета в новый. Нужно будет создавать на это 2 стейта (переход + цикличная анимация состояния)?Если считать что анимация состояния это "мигание" цветом по HSL, то как синхронизировать мигание анимации старого состояния, перехода (изменяя только HSL) и нового?Как будут работать transition при переходе из state A в state B, когда есть переход из any state в state B. У кого будет приоритет?Как-нибудь покомпактней можно анимации создавать? Десятки файлов .anim+.meta по 10КБ на один сраный статичный цвет не есть гуд.Как заставить дочерние элементы блендится с учётом цвета родителя и эффекта курсора (хайлатед, прессед, селектед и т.п.)? Например к кнопке добавить иконку с полосками отражающими заполненность склада и заставить её рисоваться с учетом вышеперечисленного.*Стоит ли мне дальше ебать мозг всей этой unity-хуйнёй если такой простой пример я могу запилить в контроллере и анимировать в Update? Будет разве что захардкожено.
Привет. Решил вкатиться в юнити. Читаю юнити ин экшн, пилю свою первую игру. Понимаю, что сишарп для меня СЛОЖНО, ибо я ноль в программировании. Хочу пойти на курсы для ньюфагов. Что думаете, курсы хоть как-то помогают, или это объеб на доллары для корзиночек типа меня?
>>439677> Читаю юнити ин экшн> Понимаю, что сишарп для меня СЛОЖНО, ибо я ноль в программированииНе то ты читать начал. Это книга для тех, кто в шарпах уже смыслит.В шапке есть ссылка на курсы, попробуй сначала их.
>>439677Сишарп легко изучается самостоятельно по любым бесплатным урокам из интернета (которых дофига, как и по юнити). По мне так, если и ходить на курсы, то по юнити. Там материала побольше узнать нужно, чтобы начать. Но опять же я думаю, если ты не можешь всё изучить самостоятельно - смысла платить за это доллары нет.
>>439678Хорошо, пройдусь пока по курсам, и еще запишусь на ирл-курсы. Вообще, по книжке все понятно, но очевидно, что шаг в сторону сделать не могу.
>>439681> думаю, если ты не можешь всё изучить самостоятельно - смысла платить за это доллары нетВсё правильно говоришь.
>>439628На пустой объект, не?
>>439681У меня проблемы с самомотивацией и дисциплиной. С той же тренажеркой - хожу в зал, хотя можно все упражнения делать дома. Но дома ленюсь. А вообще, сколько надо времени для изучения шарпа для старта хоть какой-то самостоятельной работы в юнити, если я ничем сложнее html/css в жизни не занимался?
>>439685> А вообще, сколько надо времени для изучения шарпа для стартаОчень индивидуально. Кому-то недели хватит, кому-то и года недостаточно будет.Если ты совсем корзинус, то заканчивай школу и иди в универ на очку, там будет тебе и мотивация в виде мамки, которая будет тебя дрючить чтоб не проёбывал заплаченные за учёбу деньги, и дисциплина в виде преподов и деканата.А если хочешь чтоб дома, но не так сухо как в книгах и обычных туториалах, то поищи на ютубе уроки русскоязычного парня с ником stream. Неплохо рассказывал, хоть иногда и тупил, но для поверхностного ознакомления будет полезно.
>>439685Курсы по программированию нужны чтобы обучать, а не мотивировать. А шарп нужно знать вообще по минимуму: переменные, условия и иногда матрицы. Если тупо посмотреть все уроки и повторить, можно успеть за пару дней.>Но дома ленюсьПопробуй программировать в тренажерке
>>439687В упор не могу его найти. Поможешь?
>>439685Нафиг не нужно зубрить язык от корки до корки, мотивация стухнет(у меня, по крайней мере). Пробуй чего-нибудь сделать, подсмотри как пишут скрипты в официальных туториалах Юнити, и делай так же. Если не знаешь что-то - Гугли и сдувай алгоритм. Непонятно что-то в языке - c# Reference или Гугл подскажет.
>>439712А, он выпилился. Но есть канал с перезаливками. Там видео не по порядку, так что ищи с порядковым номером "#1" и потом иди по порядку, "#2", "#3" и так далее. Разберёшься.https://www.youtube.com/channel/UCyh-t-R60C3IwX8iId9y1Rw
>>439712>>439725Короче, вот отсюда и по порядкуhttps://www.youtube.com/watch?v=ON4styauqp8
>>439562Я недавно неплохой канал по шейдерам и эфектам нашел.https://www.youtube.com/channel/UCEklP9iLcpExB8vp_fWQseg
>>439648Ты уверен, что хочешь менять кнопочку через аниматор? Не проще ли написать скрипт? Ты походу микроскопом гвозди заколачиваешь.
>>439648>Допустим по умолчанию уи создано под вертикальную ориентацию, и как теперь быть когда нужно в горизонтальную?Можно универсальный UI запилить например>>439648>Под андроид можно 2 лейаута использовать для каждой из ориентацийМожешь и тут 2 лейаута навелосипедить>>439648>А тут то как делать?Где тут то, йоба? Мы не экстрасенсы
>>439733Спасибо, запишем.
Ютуб выдал мне в "рекомендованных", прости господи, туториал длиною в два часа, в котором школьник из ассетов лепит ХОРАР. 100к просмотров, пачка лайков, восторженные комментарии, в которых на одно слово 10 ошибок, и около 27к подписоты.Видео — это просто пиздец, как говна поел. И это я его листал, если б целиком посмотрел, то, наверное, сознание бы потерял.Я это к чему. Теперь я понимаю откуда у юнити такая репутация. Они ж реально думают что это готовая игра, билдят её и потом срут этим в сеть.Ах да, этот урок или, как его именует "автор", КУРС изначально был ПЛАТНЫМ.
>>439752https://youtu.be/xWkB3thulCk?t=10m23s
>>439754Этот "Калобок" — шедевр геймдева по сравнению с тем, что я посмотрел.https://www.youtube.com/watch?v=cnEr4P6gGWo
>>439755> видеоблять сука блять сука блять сука блять сука
Игрок - инстанциируемый, в начале сцены, префаб. Камера должна находить игрока и цепляться к нему. Этого естественно не происходитobject reference not set to an instance of an object.Скрипт для камеры:public GameObject player;private Vector3 offset;void Start () { player = GameObject.FindGameObjectWithTag("Player"); offset = transform.position - player.transform.position; } void LateUpdate () { if (player == true) { transform.position = player.transform.position + offset; }Полагаю, камера появляется первой в сцене, когда ещё нет объекта с тегом "Player". Попробовал засунуть в Update() - у камеры сбиваются координаты по Z. Где я проебланил?
>>439762> инстанциируемый, в начале сценыНахуя? Ставь его на сцену ручками. К чему этот пердолинг?
>>439763>>439621
>>439762Скрипт, который интсантит игрока, пихай в Awake, а прицеп камеры - в Start.
>>439755> апдейт выполняется то ли каждую секунду, то ли вообще каждый кадрСука, и этот человек ещё с кого-то деньги берёт за ОБУЧЕНИЕ
>>439768Благодарствую. Доделаю свою парашу, получу работу, проставлю пиво всем треду - вы охуенные.
>>439726>>439725Спасибо, господа. Какой у вас тред адекватный.
>>439752>Теперь я понимаю откуда у юнити такая репутацияРепутация БЕСПЛАТНОГО движка. Ибо ты не сможиш слепить такую игорь, чтобы пробить потолок в 50к по обороту.Ты не одиног 2bqh тут некоторые щитают, что получив свет изкорёпки от уеча, им тут же задонатят 3к
>>439059Я-таки захайрил двух подающих надежды на апуорке.а ты злой
>>439788Ну тот же уеч вроде тоже бесплатный. Но то ли там СЛОЖНА, то ли плюсы все позабыли, но там такого школотронства не наблюдается.
>>439790Уеч бесплатный до того щасливава момента, когда внезапно твою игру начнут донатить. А это значит, что 5% ты внезапно должен отстегнуть.У юнети первая гроница лежит на 100к 35$ в месяц
Хорошие вроде как видео гайдики спираченые, по дефолту курс за 200 бачей.https://rutracker.org/forum/viewtopic.php?t=5426859
>>439790>такого школотронстваВ юнети проще втянуться. Полный магаз ассетов, включая полные проекты игорь с видео-тьюториалами. И сами оффицыальные тьюториалы от создателей юнети.Не удевитильно, что школоло пойдёт проторённой дорожкой.но свет в уече лучше из коробки, дела не в крестах, а хитровыебанности игровой механики в уече
>>439792> Generally, you are obligated to pay to Epic 5% of all gross revenue after the first $3,000 per game or application per calendar quarter
>>439793> 200 бачей.Столько получит кирил из мухосранска за неделю работы на мой говнопроджект upwork dot com
>>439795>after the first $3,000Я под этим и понимал внезапноЧитай: первые 3к начего не платишь. После первых 3к отстёгиваешь ежеквартально 5%
>>439797русня ебаная, после $3,000 заработаных за квартал платишь проценты в этом квартале. т.е. с вечноговна они процент не берут. и что юнетивские 100к бачей, что анрильские 3к в реалиях /gd/ совершенно недостижимы, не волнуйся.
>>439793Выглядит неплохо. Скачаю, проверю, отпишусь, как оно для нуба зайдет.
Привет. Супернубский вопрос. Почему меши из ассетстора не ведут себя как гейм-обжект? Т.е. я настроил так, чтобы игрок не мог проходить через стены/пол и мог стрелять в них. Но загруженные модельки бестелыею1-день-в-юнити-кун
>>439809Чего блять?
>>439809гугли mesh collider
>>439809Поставь галку Convex на меш-коллайдере, если вообще нет коллайдера - прилепи какой-нибудь. Прилепи так же rigidbody на все что движется. Неподвижное - статик коллайдер.
>>439811>>439813Спасибо. Все заработало.
InverseTransformPoint предположительно пиздит... Нахуй я вообще туда полез, как будто проблема отнять один вектор от другого.
>>439816ебанашка ты хоть знаешь что такое матрицы вообще?
>>439827Ну кстати да, пизжу все-таки я. Но при чем здесь твой вопрос?
Господа, пытаюсь немного разобраться с юнити, путем разработки простенькой игры. Допустим мне нужно чтобы у меня была определенная кучка объектов которые обладают различным поведением(какие-то взрываются, какие-то стреляют), так же есть различные условия срабатывания данных действий(таймер, попадание в определенный радиус действия, или комбинация этих условий). Хочу обстряпать все так, чтобы я мог потом комбинируя данные данные характеристики получать новые виды объектов. Соответственно также нужны некие фабрики. Была идея описать данные характеристики отдельными компонентами унаследованными от MonoBehavior, собирать их в одном GameObject, и еще один скрипт вещать который координирует работу этих компонентов. Как в таком случае обстряпать фабрики. Может есть у кого схожие примеры, как реализовывали? Как вообще в юнити лучше делать подобное? Может я изначально на неверном пути?
Кстати, вдруг кто не знает, Visual Studio Code неплохая замена Монодевелопу для тех, кто по каким-то причинам не хочет ставить старшую Студию. Еще там можно сделать интеллектуальные подсказки на все функции типа FixedUpdate и на коллбеки типа OnTriggerEnter и т.д. Мелочь а приятно. В аддонах поищите по слову Unity.
>>439848> Еще там можно сделать интеллектуальные подсказки на все функции типа FixedUpdate и на коллбеки типа OnTriggerEnter и т.д.ОКАЗУАЛЕЛЕ!
Может быть, это тупой вопрос, но почему объект из сцены не хочет прикрепляться к префабу? Всегда, блядь, прикреплялись, а теперь нет, в чём может быть проблема?
>>439869Нормально объясняй. На твоих скринах ни объекта ни префаба нет, только компонент и окно поиска.
>>439871Сейчас гифку кину
>>439869Потому что к префаб знает только о тех компонентах, которые к нему самому прикреплены(или к его дочерним объектам). Чтобы взаимодействовать со сценой, нужно либо искать объект на сцене через GamObject.Find, либо через Instance(синглетон) как описано выше >>439621, либо еще как-то...
>>439874Точно, спасибо, ебать, я долбаеб, братишка, земля мне пухом
>>439874Спасибо тебе ещё раз, у меня все проблемы разом решились. И, кстать, префаб ещё знает о других префабах
>>439877Да, но именно как о префабах. Если ты инстанциируешь из них объекты, придется связывать их во время исполнения.
>>439848Добавлю для порядка, что у меня возникли проблемы с дебаггером, при попытке поставить брейкпоинты. Если что имейте в виду. Может быть не у всех это вылезает, я хз.
>>439755Прошвырнулся по ютубу, посмотрел подобные ролики (только не такие длинные, я ебал), оказывается я ещё ничё так. Показать ничего готового пока, к сожалению, нечего (потому как "сделал - удалил, сделал - удалил", тупо руку набиваю), но я просто бог моделлинга и скриптинга на фоне тех идиотов, которые просто стандартные ассеты по сцене раскидывают и готовые скрипты к объектам лепят, а им в комментах поют оды и кричат "чувак, ты крут!". А я-то думал что я дно коим я и являюсь, да.
>>439914Ну в плане ассетов их можно понять. Я вот начал недавно, и сначала как-то мало внимания обратил на проблему моделек и анимаций. А оказалось это самый большой затык для начинающего - годные ассеты стоят дохуя, да и не факт что подберешь, художники еще дороже, а самому нормально нарисовать - это нужны годы практики. В основном модели, созданные самодельщиками, это тот еще шок-контент.
>>439924> Ну в плане ассетов их можно понятьЭто "уроки", понимаешь? Чему ты научишь своим "уроком", в котором ты просто таскаешь ассеты по сцене? Ладно бы это были видео "я изучаю юнити с записываю это бэндикамом", так нет, это "смотрите как это делается и запоминайте".Ничему так не научишь.
Подскажите идиоту - как правильнее реализовывать милишный комбат? Поначалу думал нацепить триггер и махать им, аки дубиной. Вроде как самое естественное поведение и легкая подстройка АоЕ. Но триггер на большой скорости пролета демонстрирует странное поведение... На пути триггера, только часть тростинок из пучка падает, другие рандомно падают при последующих ударах(из той же точки).Хитбоксы при помощи всяких OverlapSphere - геморно настраивать форму АоЕ хитбокса, под длину и замах оружия. Не самое естественное поведение. Но работают стабильно.Еще вариант - пускать несколько штук рейкастов из основания оружия по его длине, скажем треугольником, каждый фиксед апдейт. Может это норм? Тоже легко настраивать длину.
>>439963смотря че ты там собрался делать. советую воспользоваться https://docs.unity3d.com/ScriptReference/Rigidbody.SweepTest.html
>>439799Маня не может в английский, маня игори пилит
>>439847>путем разработки простенькой игрыИ начинаешь с непонятного ни тебе, ни другим
>>440016Тут расписано. Тот злой анон был прав: 5% в случае, когда за квартал оборот больше 3000$У юнети граница в 10 раз выше (100к против 12к в год)
>>440020Ссылка отклеиласьhttps://gamedev.stackexchange.com/questions/104805/when-and-how-often-does-epic-charge-me-royalties-on-my-game
Выпросил у мамки 200 бачей на юнети.Каких ассетов загрузить посоветуете?
>>440089ZdelatPizdato.unitypackage
Оказывается, можно делать ИИ на Меканиме(StateMachineBehaviour).
>>440139
>>440143В смысле "зачем делать ИИ на стейт машине?"?
>>440139ты мыслишь в правильном направленииhttps://medium.com/the-unity-developers-handbook/dont-re-invent-finite-state-machines-how-to-repurpose-unity-s-animator-7c6c421e5785
>>440158да, зачем делать ИИ на меканиме? ну тоесь конечно можно сделать какое-то примитивное говно из пары нод и оно будет работать и это адекватно, хоть и глупо. но что-то сложное как делать то? а что если ноды требуют параметры? ебаться через StateMachineBehaviour и чтобы узнать чем нода А отличается от ноды Б надо кликать на неё? через меканим и диалоговую систему можно сделать с таким-же успехом и много чего требующего бихейвор три, но пользоваться этим можно только в очень малых масштабах.
>>440180Ты не сказал главного: какие альтернативы?
>>440182альтернативы зависят от задачи, разумеетсяи это не уклончивый ответ. уже готовых платных и бесплатных имплементаций ИИ хватает. всякие reGOAP, RAIN и прочее.
>>440185RAIN Глючное говно, которое не поддерживается уже давно. Только время зря на него потратил. Из полезных фич только простое создание зоны видимости/слышимости персонажа и случайный перебор точек маршрута.В итоге накатил Playmaker и вполне доволен. В нем есть ноды для работы со встроенным в юнити Navigator. Легко обмениваться данными с меканимом и скриптами.
>>440185Если бы вопрос сводился чисто к тому, что стоит ли велосипедить, то, конечно, нет, а следовало бы сначала примерить имеющиеся решения (RAIN бесплатен) к своей задаче.Решение через меканим подкупает тем, что1. это полноценная FSM2. наглядно дебажится3. состояния логично собираются в группы4. надо ивенты - пожалуйста
>>440190Ага, только все это есть в плеймейкере.
>>440191погромист сможет в логику плеймейкера?я пытался в блюпринтс уеча - послал к хуям. Ведь функции надо все равно знать на зубок
>>440193Если дохуя программист, то не пользуешься встроенными переменными и экшонами плеймейкера, а пишешь скрипт и экшон, который будет этот скрипт из ноды вызывать.Но если ты такой программист, который не знает все нужные для работы классы в unity api, то лучше встроенные экшоны использовать, они интуитивные, с подсказками, легко запоминаются.
И так допустим у вас есть персонаж, у него есть два слота под левую руку и под правую, и есть два типа оружия - одноручное и двуручное. Под эквип у меня сейчас запилена такая структурка и обьект типа этой струры лежит в Character:[Serializable]public struct Equipment_struct{ public HelmentItem helment; public MailItem mail; public HandSlotItem left_hand_slot; public HandSlotItem right_hand_slot;}Хенд слот итем:public class HandSlotItem : Item { public bool one_handed; public int condition; public int fatigue_cost;}public class WeaponeItem : HandSlotItem{ public int min_dmg; public int max_dmg; public bool melee; public int accuracy; public int attak_range; //public skills[] skills;}Наследую чтобы запилить еще щит потому что у него статы как у армора а берется он в руку.public class ShieldItem : HandSlotItem { public int melee_deff; public int range_deff; new public bool one_handed = true; //public skills[] skills;}Сейчас пишу функцию эквипа оружия, и при эквипе двуруча я не могу придумать не костыльный метод, пока приходит в голову только эквипать двуруч в обе руки и скипать его в одной из рук при подсчетах статов и при снятии, но это же просто пиздец костыль. Поделитесь мудростью как это лучше сделать.
>>440208На //public skills[] skills; не обращайте внимание, со временем у меня пушки будут давать скилы, но вопрос не об этом.
>>440208По идее, это должны быть два разных слота (в смысле класса), потому что разницы между головой, правой и левой рукой с точки зрения логики надевания предметов нет, а у головы отдельный класс. Хотя по-моему лучше сделать один класс SlotItem, которому добавить идентификатор конкретной части тела в виде простого enum.Я бы прикостылил требования внутрь самого предмета, чтобы он требовал наличия списка (или одного) свободных слотов с нужными айди, а в методе экипировки просто проверял, что у персонажа свободные слоты удовлетворяют требованиям предмета.
>>440208По моему эквипить в обе руки - норм идея. А что бы не скипать костыльно - не обрабатывай руки как отдельные сущности. Обрабатывай человека. А он там сам разберется что за говно у него в руках.
>>440219> разницы между головой, правой и левой рукой с точки зрения логики надевания предметов нет там есть разница в том что я так сделал чтобы даже через эдитор нельзя было засунуть в слот шлема броню, но твоя мысль по поводу идентификаторов мне нравится, спасибо за ответ.>>440250Я так и делаю, но с "он там сам разберется что за говно у него в руках" как раз и возникают костыли.
>>440370Oтклеилось
Сап, юнитаны. Есть вот эта хуйня на пикче - здание в горах, так сказать. На здание кинул меш коллайдер и ригидбади, на плеера - соответственно, тоже. Так вот, если меш-коллайдер повторяет форму здания, игрок через него спокойно проходит. Если поставить галку конвекс - врезается и отскакивает, как и положено, только вот коллайдер тогда у нас в форме куска говна (см. пик), и в здание зайти нельзя.Неужели придется городить кучу коллайдеров-паралелепипедов вокруг всех стен и углов, чтобы они повторяли форму здания? Я ж заебусь. А как с землей тогда быть? С ней та же самая проблема, а она вообще довольно сложной формы, хоть и состоит из здоровенных полигонов. Или мне эти модельки разрезать на кучу выпуклых мешей, чтобы конвекс-коллайдеры им назначить? Подскажите, плиз.Еще проблема - ебанутая скорость прокрутки мышью во вьюпорте. Могу либо с такого расстояния смотреть, либо уже внутри здания, один поворот колесика мышки на 300 метров перемещает. Это оттого что меши здания и земли (гор) у меня нехуево так заскейлены?
>>440375Не работал с 3д в юнити но в поле меш в меш коллайдере попробуй перетащить свою модельку здания.
>>440375Чем не нравится идея напихать бокс коллайдеров, куда надо? А куда не надо - не пихать. Меш коллайдер придется самому рисовать(упрощенный), я так понимаю у тебя его нет.
>>440377Он уже там, см. пик. Так как я назначаю меш-коллайдер этому мешу, естественно что он берет форму этой модельки.>>440379Долго, я думал есть варианты попроще. Да и с чересчур отзывчивым вьюпортом это будет сложновато. Алсо, открыт вопрос, что делать с коллайдером для модельки земли, см. пик. 2Единственное что приходит мне в голову с учетом открывшихся ограничений - переделать все нахуй, вообще убрать всякие там двухэтажные здания, сделать землю ровной как стол и разделить ее по уровням, и все это закидывать бокс-коллайдерами... но это кажется как-то тупо.
>>440380Есть еще такой стул https://www.assetstore.unity3d.com/en/#!/content/4596 можешь попробовать напиратить где то либо разобраться как они его запилили.
>>440380Там же есть встроенный земляной коллайдер. Можно в принципе из модели сделать terrain http://wiki.unity3d.com/index.php?title=Object2TerrainАлсо, пробовал делать коллайдер здания статиком(без твердого тела и без конвекса)?
>>440380Кстати, у тебя игрок кинематика наверное? Не кинематика не должна проходить через обычный меш коллайдер.
>>440382>Там же есть встроенный земляной коллайдер.И правда, думал что он только для созданного в юнити террейна подходит.>>440383Нет, галочку is kinematic первым делом везде проверил. В общем, с землей вроде нормально все, а здания значит буду переделывать с учетом нюансов.
>>440389У тебя коллайдер-капсула, а не CharacterController? Он странно ведет себя в связке с физическим телом. Не должна она проходить через меш коллайдер. В Standard Assets Example Project там все по этим мешам гоняет, шарики всякие, и люди.
>>440390Капсула, капсула. Ради интереса я только что создал в юньке плоскость, куб, кинул на куб меш-коллайдер, набежал на куб плеером, и о чудо! все работает! Чем ему не угодила моя моделька - не пойму. Попробую экспортировать по-другому.
>>440219Закодил как ты советовал, но всплыла противоположная проблема, что ставить одноручному оружию в требуемые слоты? Можно левую и правую и флажок что это одноручное, но это снова костыль.
>>440409Одноручное - один слот(правый или левый), двуручное - два(один из них - заглушка).мимокрок
>>440415Но у меня по необходимым слотам очищает то что уже надето, и как туда засунуть без кучи ифов еще логику или или я не могу придумать.
>>440416Не понимат. Допустим у тебя на болванчике слоты, каждый итем занимает N слотов. Скажем, если надета шапка, она не мешает надеть ботинки. Может у тебя совсем другая система какая-то.
Аноны. У меня тут возникла проблема с осознанием того, что я вообще не понимаю что такое система событий, и как ее использовать.У меня просто весь код пишется на отъебись. Допустим есть 5 объектов и на каждом висит скрипт, где в апдейте высчитывается куда было нажатие мыши. А я только сейчас понимаю, что это неправильно, и скорее всего должен быть один скрипт, где бы считалось куда кликнули мышкой, а затем уже выполнялось то или иное действие. Или нет?Ну или мне постоянно нужно высчитывать время. Так вот у меня может быть по 10 скриптов, где в каждом имеется таймер time= time+time.deltatime. А ведь это скорее всего перегружает саму игру?Или я ошибаюсь? Ну суть в том, что может вы знаете годные видео гайды или ресурсы, где про это разжевывают, именно разжевывают, что и как лучше делать, а что лучше не делать. Желательно с примерами.
>>440409Юзай что-то вроде этого для хранения данных:enum InventorySlotID { rightHand, leftHand, Jopa}struct Item { string name = "Dildak" List<InventorySlotID> requiredSlots = {0, 2}; string meshData = "Resources/Dildak.mesh"; string matData = "Resources/DildakMaterial.mat" int damage = 5; int length = 50;}bool Equip(Item item) { foreach (InventorySlotID id in item.requiredSlots) { if (!character.SlotIsFree(id)) { return false; } } character.Equip(item); return true;}Алсо, итемы можно загружать из JSON и хранить во внешних текстовых файлах, можно будет читерить себе всякое на ходу.
>>440437>где в апдейте высчитывается куда было нажатие мышиТам есть метод OnMouseOver, который отрабатывает когда мышь над объектом.>Ну или мне постоянно нужно высчитывать время.Лично я для этого навелосипедил TimeController, который считает время и дает остальным DateTime gameTime, fixedGameTime, NextFixedGameTime.>знаете годные видео гайды или ресурсыhttps://www.youtube.com/channel/UCPXOQq7PWh5OdCwEO60Y8jQ
Есть одна модель из блендера, внутри просто 2 куба, один серый, другой белый синий и полупрозрачный. Экспортирую FBX 7,4 бинарным экспортером. В юнити гружу через Resources.Load.В итоге ряд проблем.1. Все размеры кубов из блендера игнорируются, юнити рисует мне просто ёбаный куб! Какие бы размеры в блендере ни были, в Юньке просто куб каждый раз! ВТФ? Родителей у объекта нет, просто на сцене висит.2. Грузит только первый меш-куб, второго нет. Resources.LoadAll тоже не пашет. Я уже хз, что делать.При этом когда смотрю в самом редакторе папку Resources, там и размеры и сабмешы нормально показываются.
А, да! И к чему я про цвета говорил - материалы ведь тоже не импортируются! В инспекторе всё норм, а при загрузке и добавлении в MeshFilter нихренашечки!>>440492 - кун
>>440492Ctrl-a Scale делал?Материалы не экспортируются, нужно запекать в текстуры.
>>440492ctrl+j нажми, чмоха
>>440527Уебывай, мудила токсичный.
>>440560Уебал тебе за щеку
Зочем юнети, если есть бажесвеный Playmaker!Спосибо, добрый антон >>440194 за хароши саветА вы ебитесь тут с сисярпом!
Здарова, как скопировать компонент одного GameObject'а на другой GameObject, через код офк?
Ребята, я новичёк в юнити, подскажите, как плавно переместить объект в определенные координаты и с поворотом через transform.RotateAround(). Знаю, что плавное передвижение делается с помощью Lerp или Translate, но не знаю как реализовать.Так вот, нужно, чтобы при нажатии, допустим, на пробел камера облетала куб чуть выше его и остановилась в той точке, которую нам надо, а не рандомом подгонять значения для Mathf.Lerp().
>>440637> нужно, чтобы при нажатии, допустим, на пробел камера облетала куб чуть выше его и остановилась в той точке, которую нам надоНе нужен тебе ни транслейти ни лерп, используй анимацию.
>>440644Я уже и сделал анимацию, но в процессе работы понял, что мне нужна привязка к объекту, вокруг которого камера будет двигаться. А с помощью анимации такого не сделать. Или сделать?
>>440621public GameObject yoba1;this.GetComponent<YobaComponent>() = yoba1.GetComponent<YobaComponent>()
>>440621через сериализацию, гугли unity copy component to other gameobject и не слушай этого накромана >>440655Но лучше сделай по-другому, у меня за 3 года на юнити ни разу такой потребности не возникало
>>440646Сделай пустой объект, на него аниматор, а камеру внутрь. Потом добавляешь этот объект в любой другой, а анимация сохраняется относительно локальных координатАлсо, у вектора есть методы вроде SmoothDamp для плавного передвижения, почитай
Поясните за настройку управления. Хочу, чтобы как у белых людей можно было открыть меню настроек посреди игры и перебиндить кнопки движения/взаимодействия/дрочения.Все, что я нашел — это костыль на пикрелейтед. В настройках проверяются ивенты, если ивент — нажатие клавиши, то spinYoba приравнивается к ней.
Поясните за XML/Json vs ScriptableObjects для хранения инфы по итемам в игре. Возможно есть еще какие-то варианты, нашел идеально подходящий мне гайдик но там чувак делает все на хмльках, я понимаю их преймущество в том что можно легко менять статы и т д после того как игра уже скомпилена, но в скриптбл обджектах если я захочу добавить еще какое-то поле в итем, я просто добавлю его и оно появится во всех созданых ранее итемах, + их легко создавать просто через CreateAssetMenu и потом прямо в эдиторе забивать поля + можно наследовать и выстраивать из них иерархию. Вобщем нужны мысли более опытных анонов. Вот гайдик о котором я говорил - https://www.youtube.com/watch?v=FcqW5Nmh6Qs&list=PLX-uZVK_0K_7V8z0lfuC9680FnCWoYdbb&index=16
>>440666одынhttp://wiki.unity3d.com/index.php/KeyboardEventManagerдваhttp://roidz.weebly.com/
>>440668От души, пойду ковырять.Я уж подумал, что ты призываешь меня потратить 15 долларов.
Хочу запилить РПГшку в мультяшной графике (примерно как в расте). Сейчас немного знаю с++, на уровне консоли и создания простых приложений под винду. Посоветуйте движок пж - unreal или unity?
>>440692Советую сначала выучить язык получше.
>>440698Буду учить по ходу.Я просто для того и решил пилить игру, потому иначе мне как-то медленно и лениво это, а так будет желание разбираться по ходу.
>>440692А где контент для игры будешь брать, покупать, или сам моделишь и рисуешь?
>>440692да без разницы. в юнити первый результат получишь быстрей.
>>440704Буду все делать сам, супердолго, учиться по ходу.
>>440703Крайне высок шанс того, что тебе станет похуй. Это гавно вообще как качели: то пиздец интересно, то нахуй все, лучше подрочить на игры, из-за которых ты решил сделать так же, только заебись.
>>440707Чтобы такого не было, надо наметить роадмап с достижимыми шагами, и делать их один за одним. Охуеваешь от трудности чего-то одного, переключаешься на какую-нибудь задачу полегче, чтобы отдохнуть.И системы контроля версий еще помогают, потому что дают уверенность, что если нахуевертишь изменений, то можно откатиться на предыдущий чекпоинт.
>>440720> Охуеваешь от трудности чего-то одного, переключаешься на какую-нибудь задачу полегчеНе в трудностях дело, просто надоедает. Я вот могу по две-три недели часов по 14 целый день хуярить, аж дым идёт, но потом недели на полторы забиваю хуй, ибо заебало неимоверно.
>>440720спасибо за совет!пока что наяриваю туториалы на ютабе на скорости 2.0
>>440706Кстати по 3д моделлингу не меньше хуевых туториалов, чем по Юнити. Так что будь настороже. Выше кидали пару нормальных каналов, еще официальные туториалы Юнити и ворованные/покупные уроки годятся. А что по Блендеру посмотреть из бесплатного - сам вот не знаю.
>>440447Ребят, может кто объяснить нубу, что этот анон написал?
>>440722Короче не жри все подряд туториалы типа пикрелейтед. А по кодингу посмотри конвенции нейминга и написания кода, и когда видишь, что чувак пишет совсем не так, от балды, то скорее всего не стоит его смотреть. То же самое, если явно игнорирует рекомендации Юнити, и делает кривую хрень.
>>440725https://docs.microsoft.com/ru-ru/dotnet/csharp/language-reference/И далее там же.
>>440731Я просто хочу понять, зачем создавать переменные внутри функций и что значит enum и struct?
>>440732http://lmgtfy.com/?q=c+sharp+enumhttp://lmgtfy.com/?q=c+sharp+struct
>>440732> что значит enumПиздец, ты в гугле забанен?Первая же ссылка.
>>440732> зачем создавать переменные внутри функций Чтобы они хранили в себе значение.> что значит enumПеречисление.> и structСтруктура.
>>440736в смысле это только для удобства нужно? практической пользы в этом нет?
>>440738> в смысле это только для удобства нужно?Конечно нахуй не нужно. Можно вообще забить хуй на переменные и пользоваться магическими числами. И вообще код в одну строчку писать. И корутинами не пользоваться, а ебаться с флажками в апдейте.
>>440739А я то гадал, зачем нужны корутины. Хорошо, спасибо
>>440740
>>440621http://answers.unity3d.com/questions/530178/how-to-get-a-component-from-an-object-and-add-it-t.html
>>440667Юзал джейсоны, перекатился на скриптабл обджекты. Батя говорит "Молодца", тянки боятся, быдло завидует, зависимость есть. Можешь свои редакторы для скриптабл обджектов писать.
Салам, гдач! Смотри, я импортнул модельку, в редакторе отображается обьект с названием модельки, который имеет только трансформ, и его чайлды - два GameObject с MeshFilter, MeshRender всё как положено.Есть ли способ из коробки, чтобы Transform этого родительского GameObject рассчитывался таким образом, чтобы типа BoundBox вокруг этих child-mesh строился?Или самому писать?Грубо говоря, два куба стоят размером 1, один слева, другой правее. Мне надо чтобы родительский ГО свой трансформ делал типа 2,1,1. Тогда я бы смог накинуть на него куб-коллайдер и он бы принял габариты охватывающие все меши в модельке.
Завезли свежий шарп и разных ништяков. https://habrahabr.ru/company/everydaytools/blog/336714/
>>440810Ебанутый чухан, что ты делаешь?
>>440818Ты опять выходишь на связь, мудило?
>>440817Говорят, крашится часто. Ссыкотно ставить.
>>440799Я так и думал, спасибо за ответ, побежал радовать батю.
>>440817вся суть хуюнититеперь юнетидетям даже ассет таскать не нужно чтобы навесить ВАУ-ПОЦЭФФЕКТЫ. тепреь они РЕАЛЬНЫЕ ИГРОДЕЛЫ.
>>440846> не написал движок с нуля — нимужикТут люди на коленке ковыряют шарп, о каком графоне может идти речь?
>>440846Кто-то делает игры, кто-то рендерит треугольники. А теперь съеби.
>>440817Это ж ещё с июля вроде.
>>434038Лол, зашёл чтобы задать тот же вопрос.Видимо ответа пока нет, во всяком случае здесь.Тоже распаковал *assets, нашёл там файл без расширения с текстом игры (мне даже проще - весь текст в одном файле) и дальше тупик.Короче ты это я.
>>440890Вы чо совсем ебобо без доступа к Гуглу?http://www.zoneofgames.ru/forum/index.php?showtopic=36240
В Unity можно как-то сделать, чтобы от объектов на сцене отражалась нижняя часть комнаты, например пол? Как бы не пытался добавить отражения на объекты, они отражают только верх, только небо, только Аллаха.
>>440960Спасибо.
Этот вопрос знатокам прислал Макар из города Велосипедска.Хочу редактировать ивенты через кастомный инспектор. Сделал, как на пикче, все отображается, ивенты редактируются. Но есть одна проблема, не сериализуются поля ивента. То есть они сериализуются, но только если я метод заново назначаю.https://youtu.be/u2E_rLuF-PY
>>440996Ты в курсе что ОнИнспекторГуи вызывается не один, а каждый раз когда надо перерисовать панельку? У тебя там new SerializedObject при каждом чихе создается, по нескольку раз в секунду.
>>441007Да, в курсе, в любом случае инициализация проперти в OnEnable проблемы не решает.
>>440996Вроде должно сохранять, но почитай на всякий случай про EditorUtility SetDirty
Есть ли сервисы по сетапу популярных в юнити основ под ммо (либо любой другой клиентсерверной хуйни) в один клик? Для сайтов такое есть у многих хостеров - выбираешь фреймворк, оно тебе само устанавливает зависимости, генерит репо со всеми нужными хуками, и дальше ты просто коммитишь туда и в хуй не дуешь.
>>441062Нет.
Где можно глянуть реализацию простенького GameManager и SceneManager ?
>>441075Можно.
>>441034это для файлов в проекте. для файлов в сцене https://docs.unity3d.com/ScriptReference/Undo.RecordObject.html
Скачал Sdk-tools. Не понимаю где тут manager. И вообще все выглядит не так как в туторах
>>441102
>>441103Мне не смешно.
Привет поцоны. Столкнулся в юнити то ли с багами, то ли с собственной тупостью, потому что я абсолютли ньюфаг со стажем неделя. 1) После перезагрузки сцены - перестают работать элементы интерфейса (кнопки, слайдеры). При чем хоть все скрипты убирай, хоть что делай - они тупо не функционируют, не прожимаются, не крутятся. 2) Сейчас разбираюсь с 3D звуком, тещу его функции. И вот у меня случилась такая мертвая зона в игре. Я сделал три колонки (просто кубы, в которых вшита музыка). Но звук распространяется только в одну сторону от объекта, а не вокруг. Как-будто кубы стоят не по центру распространения звука, а у самого края. Но позиционка звука не настраивается же, если просто использовать как компонент к объекту. Так что я теперь нихера не понимаю, в чем дело.
>>441118> абсолютли ньюфаг со стажем неделя> разбираюсь с 3D звукомТы б основы сначала поковырял.
>>441120Так я все подряд ковыряю. Уже много чего научился делать. Я учусь по урокам Стрима, как-раз проходил звук. И вот обратил внимание на такой нюанс, и не понимаю, как это настроить. Алсо, первый вопрос отменяется - это моя тупость.
>>441121> Я учусь по урокам СтримаА, видать я тебе его на днях и кидал, лол.
>>441122Да, скорее всего. Охуенные уроки, спасибо. Круто, что не просто код копируешь, а реально понимаешь и свои скрипты пробуешь. Пока что дошел до интерфейса (пропустил анимацию, считаю ее не такой пока что важной).
>>441123Да на здоровье.Действительно хороший материал в русскоязычном сегменте.
>>441124А можешь что посоветовать не из русскоязычного? Я язык знаю.
>>441125Элементарно можешь штудировать официальные уроки на сайте юнити. Если ты совсем новенький, то много полезного узнаешь.Но они суховаты, да. Стрим более такой, "чувак", так сказать.Англоязычных таких "чуваков" не подскажу, но, думаю, за меня кто-то подскажет.
public class button_testing : MonoBehaviour { GameObject enemy; void Start () { enemy = GameObject.FindGameObjectWithTag ("FearOfSun"); } public void slay (float param) { if (enemy != null) { if (param > 5f) { Destroy (enemy); }Привет еще раз. Смотрите, что хочу сделать. Привязываю скрипт к слайдеру и к объекту с тэгом. Хочу, чтобы при значении слайдера > 5 уничтожался объект. Однако, это не работает. Что я сделал не так? Компилится нормально.
>>441134> public void slay (float param)> float paramЧто и откуда ты туда передаёшь?
>>441102Последний андроид СДК консольный, а так открывать батник
void OnCollisionEnter2D(Collision2D coll) { if (coll.gameObject.tag == "Enemy") Debug.Log("ENEMY"); }Rigidbody, коллайдеры и теги на месте, везде 2d. Но всё равно не работает. В чём может быть проблема? Вопрос распространенный.Нас даунов много
>>441135Я брал пример из урока:public void slay (float param) {transform.localScale = new Vector 3 (1f, param, 1f); }Скрипт привязывается к слайдеру, и param передается от value слайдера. Но когда я захотел что-то поменять - получилось нихуя.
>>441140Блять, откуда ты param передаёшь? Ты вообще видишь что у тебя в коде?
https://docs.microsoft.com/en-us/dotnet/standard/design-guidelines/naming-guidelines
>>441140У тебя максимальное значение слайдера не 1 случайно? К onValueChanged цепляешь свою функцию? Посмотри в дебаггере что там происходит, не равна ли null ссылка на объект.
>>441125https://www.youtube.com/user/KnnthRAhttps://www.youtube.com/channel/UCifiUB82IZ6kCkjNXN8dwsQhttps://www.youtube.com/channel/UCYbK_tjZ2OrIZFBvU6CCMiAhttps://www.youtube.com/channel/UCPXOQq7PWh5OdCwEO60Y8jQhttps://www.youtube.com/user/CercopithecanВот у этих чуваков находил то что мне было нужно и вроде как довольно таки ровно запиленое.
Чуваки, я тут после работы взялся моделить всякую хуйню.Пикрилейтед - попытка винтажного холодильника. Завтра доделывать\красить, но вот вопрос. Если не для графонистой хайполи игры, а сорт оф икском, нужно ли делать ретопологию, или вообще похуй?Не сглаженная 768 полигонов, на сглаженной 6100.
...
>>440996Если кому мнтересно, решил проблему с помощью SerializedObject.ApplyModifiedProperties.
>>441164И ещё.
>>441164>...Че сказать-то хотел? Сити генератор? Самописный? А дальше что?
>>441159А не много для коробки?
>>441185Согласен, немного убрать можно. Но немного. Много лупов для корректного смуфа, и чтобы вообще сетка по пизде не пошла. Я начинал делать на отьебись, чтобы в минимум полигонов убраться, но в финале столкнулся с тотальным пиздецом, что пришлось переделать с нуля.Но таки интересно за юнити.И еще есть пара вопросов юнити. Допустим я в максе настрою маты на отражения, на ржавчину и тд. Юнити это переварит, или там отдельно надо настраивать? Я просто хз как это все устроено.
>>441186> Допустим я в максе настрою маты на отражения, на ржавчину и тд. Юнити это переварит, или там отдельно надо настраивать? Не совсем понял чё ты хочешь. Юнька отдельно хавает карту нормали, спекуляр и так далее. Так что красишь свой холодильник, всё запекаешь в текстурах и свободен.
>>441177> Сити генератор?Пак зданий.
>>441186> Допустим я в максе настрою маты на отражения, на ржавчину и тд. Юнити это переварит, или там отдельно надо настраивать? в максе вообще ничего не крась, макс ебанутый и озалупился со своими ебанутыми материалами. у него даже нормали через жопу отображатся, и это не просто Y+/Y- а что-то иное. красить модельки нужно в специально предназначенных для этого приложениях.
Чому в шапке треда нет Clustertruck, SUPERHOT, Firewatch? Уж эти тайтлы круче, чем блицкриг какой-то.
>>441214> у него даже нормали через жопу отображатсяНе пизди мне тут.> и это не просто Y+/Y- а что-то иное. красить модельки нужно в специально предназначенных для этого приложениях.Не слушайте его, он - ебанашка. >>441186>И еще есть пара вопросов юнити. Допустим я в максе настрою маты на отражения, на ржавчину и тд. Юнити это переварит, или там отдельно надо настраивать? Для спека, хейд мап, ао- отдельно будешь настраивать в самом unity.3ds max тебе разве что автоматически сгенерирует дифуз/альбедо и нормал мап.
>>441227Добавлю.Вообще, ты можешь моделировать хоть в сие царском, королевском 3ds max. Ну или blender, maya.Главное, сделай норм модель и развёртку.Что бы можно было в пейнтере текстурировать.
>>441227> Не пизди мне тут.нет это ты не пизди мне тут.> Что бы можно было в пейнтере текстурировать.> красить модельки нужно в специально предназначенных для этого приложениях.зачем ты повторяешь что я сказал? ты попугай?
>>441229> нет это ты не пизди мне тут.нет это ты не пизди мне тут>зачем ты повторяешь что я сказал? ты попугай?Нет это ты попугай
>>441230> нет это ты не пизди мне тутнет это ты пиздишь> Нет это ты попугайнет это ты попугай
>>441231>> нет это ты пиздишьНет это ты пиздишь> нет это ты попугайНет это ты попугай
>>441231>>441232Харош щитпостить, заебали.
>>441232> Нет это ты пиздишьнет это ты пиздишь> Нет это ты попугайнет это ты попугай
>>441233Нет это ты заебал
>>441233скажи кто пиздит а кто попугай, мы и закончим.
>>441235а ты попугай
>>441234> Нет это ты пиздишьНет это ты пиздишь> Нет это ты попугайНет это ты попугай
>>441236Он пиздит и попугай.
>>441237Нет это ты попугай
>>441239нет это ты пиздишь и ты попугайпопугай
>>441241нет это ты пиздишь и ты попугайя не попугай
>>441243ты пиздишь что ты попугайпопугай
>>441244ты пиздишь что я попугайя не попугай
>>441245ты не попугай и не пиздишьпиздун
>>441246да я не попугай и не пизжу.я красавчик
Поясните по юнити. Реально с нуля за неспешные полгода в одиночку наваять несложную ламповую игрушку, способную получить зелёный свет в стиме?
>>441249> зелёный свет в стимеНаркоман ебучий, гринлайт ещё с июня новые проекты не принимает.
>>441249за джве недели
Что вы тут за херню развели?
Тупой вопрос такой тупой. Делаю простое зеркало через камеру + рендер.текстуру. Зеркало получается обратным - персонаж идет направо, в зеркале движется налево. Как поправить?
>>441278Я дебил, простите.
>>441278По иксу в -1 ебани.
>>441278http://wiki.unity3d.com/index.php/MirrorReflection4а твои махинации применением камеры это костыль.
Как сделать расположение интерфейса, скейлящееся под разрешение? В юньке все нормально, когда билдю игру - все элементы интерфейса сбиваются в кучу. Алсо, звуки, которые звучали с нормальной громкостью в редакторе - в готовой игре звучат ОЧЕНЬ тихо.
>>4412831. Не проебываешь анчоры на канвасе2. Правильно выбираешь относительный, либо абсолютный размер ui элементов.3. ????4. Профит
>>441283Якоря для кого, блджад?
>>441249>Поясните по юнити. Реально с нуля за неспешные полгода в одиночку наваять несложную ламповую игрушку, способную получить зелёный свет в стиме?Зависит от того, что ты хочешь.
>>441249Гринлайт всё. Теперь это называется Steam Direct и туда принимают любое говно, надо только заплатить взнос в размере $100 и пройти проверку на вирусы.Вопрос только в том, сделаешь ты вообще что-то или нет.
КТо-то итт юзал DevXUnity ? Чё, реально можно распаковать билд обратно в проект?30$ лично мне жаль на проверку.инби4 разраб DevXUnity
>>441311Ты долбоёб? Вот только честно.
>>441312Ты нормально объясни, чего ругаешься сразу. Все ж мы люди.
Поясните ньюфагу:гугл на вопрос об иоке мне говорит "юзай зенджект, сука", но в нем конфигурация только через код, а я хочу через хмл/джсон/йамл. Насколько сложно подключить левый нетовский контейнер, есть ли какие-нибудь подводные?
Как заново перезапустить анимационный клип?
Пилю скролл-шутер в ГП по вечерам. Сделал геймплей. Мыслить стараюсь реально, поэтому хочу ПОЧУВСТВОВАТЬ СЕБЯ ГЕЙДЕВЕЛОПЕРОМ и получить прибыль с рекламы хотя бы на полторашку большой кружки. Значит нужно удержать игрока для показов. Пока пришел к магазину с кораблями. Разница будет в хп, скорости, вооружении. И вот тут пошли вопросы. Как это реализовать? Сделать для каждого корабля свой скрипт? Так отличие в паре строк. Юзать один скрипт и менять параметры через свичкейз в зависимости от корабля? Куда копать. Алсо, есть тут успешные девелоперы в ГП, которые могут дать советы кроме очевидного: НЕ ЛЕЗЬ ДЕБИЛ СУКА по продвижению проекта?
>>441343> но в нем конфигурация только через кодЯзык учи.
>>441352Читать учись.
Пацаны, можно ли в юнити в сцене использовать видеофрагменты? Mov?
>>441356Все, поостерегусь в следующий раз задавать вопросы, предварительно не залезая в гугл. Извините.
>>441355Читать я научился когда ты ещё у папы в яйцах чесался.Но если ты упираешься в код, то учи код.
>>441359Значит хуево научился, учись еще.Подсказка: конфиги (и все константы вообще) выносят в отдельные файлы без лишнего синтаксиса не потому что упираются в код, а потому что это удобнее.
>>441367Странно, с идиотским вопросом врываешься ты, а чёто там хуёво читаю я, ага.
>>441311Вот где я наебался - эта киллер фича стоит у разраба 200$.> - Generate Unity3D project (from win, mac, APK) (scenes, sripts, resources) - Currently not full implementation (Is being finalized)! Бесплатный вьювер показывает ресурсы игры офигенно, я будто смотрю проект в юнити (загружаю во вьювер exe игры, остальное прога подтягивает сама).Но 200 баксов лишних у меня конечно нет. Как и кейгена.
>>441371Блядь, вот что надо было делать, а я-то всё думал, как лучше всего на юнити-лошках бабла срубить. Как всегда все самые прибыльные идеи реализуют до нас.
>>441427Почему ты такой токсичный? Этот тред создан для высмеивания? И этот же вопрос я задавал постов 70 назад и никто не ответил, если ты такой знаток то поделись.мимопроходил
>>441427Хуй знает что ты хотел этим сказать.Программки для работы с *assets (просмотр, распаковка, перепаковка) - их есть 2-3 штуки как минимум, неплохих и бесплатных.DevXUnity стоит на много уровней выше, это как хуй с пальцем сравнить. По твоему легко реализовать такое: > Generate Unity3D project (from win, mac, APK)100% оно коряво это делает и всё потом нужно доделывать руками, но хоть что-то.Сделай аналог дешевле, разбогатеешь. С другой стороны хорошо, что у школьников нет возможности получить проект из чужой игры.
Как переместить объект, у которого включена анимация, при этом не выключая её?
>>441449Не то, чтобы я в принципе использовал анимацию, но почему она должна выключаться, если ты её просто перемещаешь каким-нибудь Rigidbody.velocity
>>441452Не равботает
>>441454У этого парня всё работает https://www.youtube.com/watch?v=CAPVBTKk3Ww
>>441455Может таймкод дашь?
>>441455Сделал всё, как он, но не работает, стоит мне выключить анимацию, сразу начинает двигаться
>>441457ёбай онимку на чайлд, а не на сам тот геймобжект что двигаешь
>>441371Чот хуево у них с маркетингом - залили бы чтоли видосов с левого аккаунта с реальными играми, чтобы показать текущие возможности, а то пруфофконцепт две сотни не стоит.
Не знаю, глупый это вопрос или нет. Но допустим у меня есть объект, состоящий из нескольких объектов с разными компонентами и скриптами. Могу я, не копируя тот объект, отобразить его копию на сцене?
>>441475> допустим у меня есть объект, состоящий из нескольких объектовНе может у тебя объект состоять из объектов. Он может быть родителем других объектов, но это всё равно самостоятельный объект.
>>441476Ок, но как мне сделать копию его изображения?
>>441477Добавить вторую камеру и рендерить с неё на текстуру, а текстуру прилепить куда тебе надо.
>>441479Звучит, как костыль. Я слышал, что камеры не лучший способ оптимизировать игру
>>441481>Я слышалНу если ты слышал, то тогда конечно. Послушай еще, может услышишь другое решение для твоего ебанутого случая.
>>441475блять, нормально ситуацию объясняй. как вы заебали, сначала костыли выдумываете, а потом спрашиваете А КАКОЙ КОСТЫЛЬ ЗДЕЛАТЬ ЧТОБЫ МОЙ ДРУГОЙ КОСТЫЛЬ ЗАРАБОТАЛ
>>441485Какие костыли? У меня 2д-шный дебил бегает, у него руки, ноги, голова и у всего этого коллайдеры, ригидбоди и скрипты. Мне просто нужно скопировать картинку без всего этого.
>>441487>>441487Клацни по нему райткликом, сделай дубликат, убери все ненужные компоненты, перетащи в папку с префабами. Потом в коде где то где удобно сделай переменную в класе типа GameObject захуярь туда свой префаб. Потом через https://docs.unity3d.com/ScriptReference/Object.Instantiate.html добавляешь его на сцену.
>>441487я не про то. какова цель коприрования? обьясняй ситуацию в подробностях с предысториями
>>441469> Чот хуево у них с маркетингомРазработчик русский же.
>>441494Вообще мне нужно, чтобы худ игрока (UI) уехал в одну сторону и выехал из другой. Хочу запариться с пространством свободным на экране. В общем тут показывать надо.
>>441496Просто хочу создать 1 объект, копирующий второй, вместо двух объектов
>>441498Понятно, ещё один.
>>441499Что плохого в оптимизации?
>>441500Костыли — это не оптимизация.Ты игру сначала сделай. Слышал про вайтбоксинг, не? Прототипирование там, все дела.Ты не тем занимаешься.
>>4415001 обьект который копирует второй это два обьекта.
>>441502но он не будет выполнять скрипты
>>441503Кто "он", блять? Скрипты выполняет не объект.
>>441504но скриптов то всё равно больше будет выполняться. они же привязаны к объекту
>>441505Парень, подучи азы сначала, а потом приходи. Ты хуйню несёшь.
>>441504хуле тебе не ясно. есть объект, на нём скрипты. ставим объект на сцену, скрипты выполняются. ставим больше объектов - выполняется больше скриптов
>>441507>>441508
>>441508Перестань, я ж соседей разбужу.
>>441510ещё скажи, что не так
>>441511Три раза уже сказал. Не умеешь читать — кодить не берись.
>>441512ты мне скажи, что тебе не нравится, умник
>>441513Короче, пидор. Это можно сделать шейдером, если твой пидор это цельный скиннед меш. Но ты слишком тупой для этого, так что просто иди нахуй.
>>441517> цельный скиннед мешОн таких слов не знает, пощади.
>>441517Да, только у меня ui и ничего цельного
>>441517Это ты сам написал?>>441517Найти то не проблема, но похоже это не будет работать
>>441521>фикс>>441521Это ты сам написал?>>441518
>>441523>блять, фикс>>441517Это ты сам написал?>>441518
>>441521>>441523>>441524Иди поспи, у тебя уже руки трясутся.
>>441525Они у меня всегда трясутся.
>>441517Ладно, спс за идею, анон, я спать.
>>427717 (OP)Award Winning IdeaАноны, никто и вас до такого бы не додумалсяhttps://www.youtube.com/watch?v=_4ISYP3P9IU
>>441548
>>441548Более того - старо как мир. В первый раз подобную штуковину фигачили в интернет-редацкии Times, в виде съемок панорамных видосиков. Около года назад. В итоге чуть-ли не треть пресс-релизов были по поводу этого самого empathy generation. Остальное это философствования по поводу места человека в VR-пространстве и виртуальных изнасилованиях, травле в виртуал-спейсе и других sotial-vr платформах, anti-harasming bubbles.P.S Короче - в "Кремниевой Долине" полный пиздец и разработчиков VR/AR меньше, чем всяких журналистиков, пихологов, евангелистов, теоретиков, исследователей экспириенса и прочей шелупониP.S.S я бы с удовольствием показал ей свой код, покопался бы в ее, и научил всяким приемчикам.
>>441548>утю-тю какой милый беззащитный щеночек>почему он вырос в волкодава>почему он меня не слушается>почему он откусил мне руку>почему я под шконкой
Ребята, которые в шейдорах понимают, тут же были такие, помогите.Захотел я для стора модели пилить, а чтобы была ФИШЕЧКА решил сделать простой шейдор, который как стандартный, только по альфе диффуза можно цвет менять.Получился пикрелейтед. Но я, вот, боюсь. А вдруг он не у всех работать будет? Или, может, сломается после какого-нибудь обновления унити?
Посоны, вопрос: очень заебывает ждать пока юнити соизвилит скомпилировать скрипт для редактора. Еще нихуя не понятн скомпилировал он его заново или нет, так что приходится делать тестовый вывод в духе "compile_version = 33" и пердолить при каждом изменении. В юнити нету кнопки скомпилировать скрипты редактора. А то заебало сидеть ждать каждое изменение.
>>441620> Еще нихуя не понятн скомпилировал он его заново или нетЧего блять? Если ты скрипт сохранил и перевалился в редактор, то он его начинает компилить, что даже визуально видно по вращающемуся кружочку.
>>441624нихуя, это для обычных скриптов така когда делаешь какие-то изменения для скриптов редактора (Editor) то они хуй когда скомпилируются и нихуя это кружечком не показываетсячто и бесит дико
>>441625пкм+refresh
>>441619Ну помогите. Меня смущают эти стандартные штуки.
В VS блоки кода под "ненужные" платформы #if ... #endif становятся серыми, обычным текстом, как эту хуйню отключить? Мне надо чтоб подсвечивалось все как обычно.
у меня вопрос. А могу ли я проверить работает ли сейчас корутин?
>>441727ну пусть от тебе в концоль пишет, пока работает.
>>441728Не я хочу запускать его только тогда когда он уже закончил работать
>>441727bool rabotaet;...IEnumerator blabla{rabotaet = true;... //korutinarabotaet = false;}
>>441730Да, у меня все получилось. Спасибо
>>438944Если у кого была такая проблема, решение тут https://docs.unity3d.com/ScriptReference/CompositeCollider2D.html
Через скрипт геймманагера создаю геймобджекты как хранитель, внутри геймобджекты как сущности и раскидываю им компонентом скрипт класса. Затем хочу создать в другом скрипте массив указателей на эти компоненты, чтобы легко к ним обращаться, как это сделать?Неужели надо каждый раз получать эти обджекты из сцены чтобы при необходимости изменить?И ещё как сделать переменную в классе, в которую я смогу положить любой существующий класс, что-то уровня void?
>>441778В юнити есть базовый класс object для любых unity объектов.
>>441716Да не ссы ты, все нормально. Не нужно бояться шейдеров.
>>441778Шизик ебаный, ты сам то понял что написал?
>>441778>Затем хочу создать в другом скрипте массив указателей на эти компоненты, чтобы легко к ним обращаться, как это сделать?без задней мысли, создал да передал.>как сделать переменную в классе, в которую я смогу положить любой существующий классзачем?
В чем преимущества и недостатки EventSystem по сравнению с простым рейкастом, в плане взаимодействия с миром? На ум приходит то, что можно не следить за слоями. Есть какие-то подводные?
Как запустить анимационный клип(пикча) сначала?
>>441965anim.Play("CubeAnimation", <layer#>, 0f);
>>441970Как понять, какой слой использовать?
>>441970А, всё, я определился, спасибо тебе огромное
>>441350> Как это реализовать? Сделать для каждого корабля свой скрипт? Так отличие в паре строк.ScriptableObject жи.
>>441965Я конечно не настаиваю, но может тебе изучить аниматор? Переходы там, параметры, эвенты. StateMachineBehavior тоже пригодится. Клип как правило должен запускаться из state machine, а не из рандомного места в коде. Ты рискуешь получить большие трудности с дебагом(если сподобишься соорудить что-то сложнее хеллоуворлда).
Почему некоторые значения в трансформе выделены жирным? В некоторых объектах норм, а в некоторых вот так.О чём это он мне сигнализирует?
>>441979Жирным выделены значения, отличающиеся от дефолтных в префабе.
>>441983А, вон оно как.Спасибо, братишка.
>>438156
Кто-нибудь решал проблему с толпой NavMeshAgent'ов, мешающих друг другу пройти в точку на карте? Они беспорядочно дрыгаются, не хотят стоять спокойно.Что я пока придумал - сканировать переднюю полусферу лучами/триггером, проверяя направление пути. Если путь направлен в сторону forward, и триггер сработал - останавливаемся.И еще вариант - отключить автоматическое обновление позиции агентом, и двигать основной объект, только если дистанция между ними больше некоторого порогового значения(lerp,ом). Это убирает мелкие дрыганья.Плюс включаю NavMeshObstacle и отключаю Navmeshagent по достижении цели. А нет ли случаем "красивых" решений?
Совсем новичок в юнити. Запилил хп персонажу по слайдбару. И такой скрипт. public class Fire : MonoBehaviour private float health = 100; GameObject player;В апдейте if (player != null){ float distance = Vector3.Distance(transform.position, player.transform.position); if (distance < 1.5f){ health -= (50f * Time.deltaTime); slider.value = health; if (health <= 0) { Destroy(player);} ....Собственно, этот скрипт висит на каждом препятствии и противнике милишнике. Но дело в том, что для каждого препятствия/врага хп персонажа существует параллельно. Т.е. каждый проверяет состояние хп, которое было при последнем контакте именно с объектом, на который висит скрипт, а не с глобального параметра хп. Как переписать?
>>442020Ебать ты задом наперед все сделал. Скрипт игрока сам может следить за своим здоровьем.Если игрок один, сделай синглтон. А так навесь него что-то типа:void OnHit(float damage){health -= damageif (health < 0){OnDeath();}}В противниках у тебя теперь просто будет:if (distance == ...){player.OnHit(50 * Time.deltaTime);}Слайдер хп тоже прописывай в игроке, очевидно же. И максимальное значение не проеби.А вообще коллайдеры поковыряй.
>>442023Спасибо, сейчас попробую.Я сам подозревал, что что-то совсем нелогично, но использовал скрипт из урока, сам пока что еще совсем слабо. Сделал подобные врагам. Чтобы их могли тоже препятствия коцать, вроде все работает. Но сейчас поковыряю. Опыт в юньке неделя.
>>442024У меня повреждения через интерфейс public interface IDamageable { float CurrentHealth { get; } void TakeDamage (float amount); }потом любая дамажащая хуета проверяет(при попадании лучом или коллайдером в колалйдер)var hp =otherCollider.GetComponent<IDamageable>();if(hp != null) {hp.TakeDamage(число);}И еще вариант сделать повреждения через базовый класс Health - какой вариант лучше, это уже на любителя(есть конечно и другие варианты кроме этих).А как получать дамаг(или не получать), какие эффекты/звуки проигрывать, дамажимый объект решает сам.мимоанон
>>442024> Опыт в юньке неделяНе, тогда не ковыряй ну или ковыряй, я тебя не остановлю. Полистай что-нибудь по шарпу из /pr/ (C# Player's Guide попробуй — еще захочешь), заметно уменьшишь количество новых велосипедов в коде.>>442025Двачую, сам так сделал (правда, под предлогом того, что на всякие коробки и табуретки бессмысленно вешать весь класс NPC).
Чому у вас юнити-тред новый не делают?Полгода назад накодил себе основу для пошаговой стратегии, я тут писал немного и велосипедил. Лето прошло, можно снова садиться за код, и, в общем, решил начать с девконсоли - чтобы в самой игре можно было в нужной точке призывать нужных юнитов, площадки и т.п. Глянул туториалы по этому делу, помедитировал, и понял, что хочу сделать свой велосипед. А для своего велосипеда нужно делать свой велосипедный input field. Ради бога не спрашивайте зачем. Оно и без слов понятно, что из готового можно стяпляпить что-то рабочее и эффективное, просто у меня наполеоновские планы К тому же если я хочу замену определённой последовательности символов на произвольную картинку, то всё равно придётся что-то похожее с нуля кодить. Ричтекст же не работает всё ещё?Собственно, вопрос: как лучше всего ловить нажатия клавиш? Я знаю про кейкоды и геткейдаун/ап, но я спрашиваю про принцип за ними. Как эта система с переключением языков, шифтами и т.п. вообще работает? Допустим, я напишу класс, в который будет ловиться нажатие клавиши через геткеи и переводить её в нужный формат. Это же совсем пиздец?
>>442029да
>>442032А поподробнее можно? Нельзя мне куда-нибудь в коде прицепиться, чтобы уже преобразованный текст использовать?
Хотел быстренько отредактировать модель в блендере, сохраняю в fbx, и вот такая хуета с анимациями. Раньше все работало без проблем. Пытался во все форматы сохранять - бесполезно. Блять, и смех и грех. Как пофиксить? Можно конечно взять другую модельку для прототипа, но что за хуйня-то?
>>442038В голос в этого рептилоида, спасибо, анон.Без обид.
>>442038Нашел сам как пофиксить, вдруг кому интересно.>>442039Оно еще и анимированное.
> Made with Unity
>>442041дай мне!
Делать систему HP/Damage через EventManager - нормальная практика? Простой платформер с быстрым темпом игры
Анон, я все сломалСделал несколько панелей, написал скрипт. Закинул его в кнопку, там это. Я даже не сразу понял, в чем дело. Пошел проверил старые кнопки, а там такая хуйня. Теперь рядом с названием шестеренка, а не иконка с# и нет никаких функций. Что делать, как чинить?
Подскажите, как сделать поиск путя для вражины? 2D, вид сверху.
>>442106рейкаст и путь идет к последней точке, где тебя видел/зарейкастил
Есть ли альтернативные физические движки, в которых все действующие на объект силы всегда доступны наружу, или они все как и дефолтный на черной магии работают и дают читать только конечный вектор?
>>442041Чувак, как стать богом?
ПЕРЕКАТhttps://2ch.hk/gd/res/442120.htmlhttps://2ch.hk/gd/res/442120.html
Аноны, хелп! Писал на юнити игру с февраля 2017, значит все собрал, все работает и решил я накинуть плагинов с рекламой и достижениями. Выбрал плагин от аподила и плагин от гугла с достижениями. И они вместе никак не хотят работать. Вылетает ошибка unable to convert java dex format. Проблема в том что в папке plugins слишком много плагинов и андроид не может собрать апк. Подскажите, может кто-то с таким сталкивался. Пытался собрать через градл, но там полетело еще больше ошибок. Хочется чтоб и ачивки были, и копеечка с релкамы.
>>442121>>442657
так что это. как тут общаться можно? вопросы задают тут или только за стримерш дрочат? вопрос: почему в unity отрабатывает ДЕАКТИВИРОВАННЫЙ В ИНСПЕКТОРЕ, но висящий на объекте скрипт?
>>453121Платиновые вопросы? Галочка вы инспекторе выключает только выполнение Srart, Update и прочего.