Это копия, сохраненная 18 марта 2016 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
УРОКИ: http://unity3d.com/ru/learn
прошлый тред >>204121 (OP)
Какой движок мне выбрать для создания 2D/3D игры?
Unity твой выбор. У него огромное комьюнити, много уроков, много готовых решений и он прост в освоении.
Unity бесплатный?
Да. Для всех платформ. Если вы заработаете на игре более 100 тысяч долларов, то обязаны будете купить Pro-лицензию.
Качай, всяко лучше UE параши.
Вряд-ли положительно, но только если заметят.
Если ты будешь на этом зарабатывать, то за яйца схватят. Придюк сам говорил, что лучше с компа знакомого, у которого есть лицензия, зарелизить, чем с пиратки.
Если для тебя зашквар использовать лучший движок в индустрии - да, зашкваришься
Если будет дохуя заработка, то тебя просто в сторе заблочат.
Олсо, юнитаны, вопрос. Реально ли, не хакая лайтинг систему, сделать так, чтобы источник света освещал объекты только в одном слое, но при этом отбрасывал тени от от этого слоя на все остальные слои?
Правда глаза режет?
Один раз- не пидорас.
Как в юнити сделать, что бы команда Ctrl+` начала работать? Это когда в вижул студио юнитском выделяешь какое-то слово и автоматически кидает на сайт с документацией, где уже найдена эта функция Язык по умолчанию английский.
Единственное преимущество УЕ - улучшенная графика. В остальном он отсасывает по сравнению с Юнити.
Если сделать их с наложением друг на друга, выходит светлая полоса в месте наложения.
Если отодвигать их по нанометру пока белая полоса не исчезнет, то получится тоже заметный разрыв.
>В остальном он отсасывает по сравнению с Юнити
Блюпринт (не просто визуальная скриптинг, а большая годная система для связывания одного с другим), визуальный редактор материалов, продвинутая система частиц. Это так, из основного.
В настройках спрайтов попробуй отключить сглаживание. Там должно быть что-то вроде pixel perfect.
Ничего такого не нашел. А пиксель перфект это для UI.
>Единственное преимущество УЕ - улучшенная графика.
Хватит уже это протухшее говно повторять. Еще ни один кирилл не смог повторить графон из демок уе, а те кто пытались матерились как же это пиздецово сложно.
Этот графон - результат работы людей, а не заслуга движка.
да
Пишешь на чём удобнее. Бомбит по поводу юнитискрипта тут только у уёбков, которые кроме #сей ничего освоить не могут и считают это илитным.
Вы только посмотрите на этого дауна-неосилятора, жрущего жс дрисню.
https://unity3d.com/ru/learn/tutorials/projects/roll-a-ball/moving-the-player?playlist=17141
Бамп вопросу (на 4:55 показывают как работает)
В очко себе свой блюпринт засунь.
Вон как пиздато бэтмобиль на блюпринте катается, просто охуеть.
Уебан ты тупой. Всю юнитискрипты и жабаскрипты наследуются от монобихевиора, тупица ебаный.
Да, серьезно. Тот кто умеет в шарп за пол часа сумеет и в js.
>>208407
Совсем не то же самое. Любой код на жс дрисне больше 30 строчек превращается в нечитаемую парашу.
Ебать, гражданин не может 30 строчек на жс прочитать и что-то еще доказать пытается.
Берешь такой захламляешь сцену полигонами, а потом крутишься под сабатон и смотришь на память.
Отбой. Нашёл способ. Дебильный.
Всё просто: качаешь и делаешь любой туториал с 2д, типа https://www.youtube.com/watch?v=KF0jepqDAtw&index=5&list=PLX-uZVK_0K_6VXcSajfFbXDXndb6AdBLO и, если ничего не понял идёшь сюда, мы тебя пообзываем.
Для меня оказался неплохим вариантом рисовать в чём угодно, резать, что нужно в фотошопе, а потом всё делать в Spriter Pro. Тем более, что купил его на стимчике за 250 рублей.
В рам грузится, не рисуется, но сортировка жрёт гпу. Не рекомендую держать очень много лишнего в сцене.
Это присуще всем игровым движкам, или только унити? Я это чому спрашиваю. Пробовал играть в rust. И, к моему удивлению, игора на максималках жрёт по 4,5-6гб оперативной памяти, что меня очень удивило, учитывая таксешное визуальное качество игры. Учитывая, что ААА-игоры на том же УЕ4 и то меньше жрут.
Если пилил уёбок, то да, всё так и будет, так и должно быть. Нужна предварительная сортировка.
Пишет all compiler errors must be fixed first, я без понятия где там какая ошибка.
В среде программирования должна высвечиваться ошибка, в которой говорится номер строки и описание ошибки.
Петухи пишут только на плюсах. Шарп и JS - нормальные языки.
Такой то разрыв шарпомакаки.
Посмотрите на этого жс-дибила, который не понимает разницы между вычить и сделать
на сколько хорошо нужно знать c#, чтоб начать кодить на юнити?
Если отличаешь if от while, то уже можно обмазываться туторами.
Если не включён deffered - включи. Он поможет с источниками. Иначе режь отражения, делай их запекаемыми.
Если запечь, то неестественно освещен терейн. А так спасибо за совет, опробую.
Хуёво запекаешь значит. Вообще поддвачну анона с деффередом, он для этого и создан. Только в этом режиме хардварный мсаа не работает.
>>208697
Уе вообще ни для чего не годится.
https://forum.cgpersia.com/register.php
Фейкопочта
DeLoreanSp{;"amANUSyand%bbexPUNCTUMr1?#u
С меня как обычно
Возможно, масса соединенных тел слишком отличается. Или они сталкиваются, а ты коллизию между соединенными телами не отключил.
Ну а если знать как, с джоинтами можно работать нормально? Или это нормально, что на них объекты дёргаются (коллайдеры выключены)? У меня просто опыта нет, вот сейчас тренируюсь. Пытаюсь колёса прихуярить к цилиндрическим стержням через хиндж джоинт, а цилиндры к корпусу тарантаса через просто фиксд джоинт. Это я к чему, три, блджад, колеса обычно стоят нормально, а четвёртое изгибает в пространстве по мере вращения колеса. Это я криворукий, или шарнирные узлы не подходят для таких дел?
А как тогда реализовать возможность "разрушения" колес, ну то есть шоб они отваливались после приложения определенной силы? И вообще, когда и где лучше использовать джоинты?
Не вижу проблемы. Детачишь объект, учитываешь это в своём кар контроллере. Либо просто инстансируешь объект "оторванное колесо" и выключаешь колесо на машине.
>когда и где лучше использовать джоинты
Регдолл. А так хуй его знает, лучше вообще не связываться.
>лучше вообще не связываться.
Ты так говоришь, потому что у тебя был большой опыт использования джоинтом, или наоборот, потому что опыта не было?
Второе. Все задачи успешно решаются без джоинта. Может, если бы я ебался с 2д он бы мне и пригодился для персонажной анимации, но там свои джоинты, если не ошибаюсь.
У меня есть управляемый герой - шар. Когда кнопка движения не нажата он останавливается, я хочу чтобы он продолжал движение по инерции грубо говоря. управление реализовано через стандартный characterController/
https://play.google.com/store/apps/details?id=com.Survivors.venusgames
Вроде, нет. Там реестр нужен. Плюс, юнити использует папки аппдата, а если у тебя прав нет, то и всё.
50 установок за почти месяц - провал.
Тупой ты даун, поставь окна иерархии и инспектора так, чтобы их всегда было видно.
Да и ту хуйню, что ты заебашил, можно было спокойно мышкой накрутить.
Короче, либо ты зеленый, либо тупой.
И ты тупой даун, т.к. шарповая часть у тебя будет лезть в нативную часть -- это еще больший оверкилл, так что саси дальше, умник.
>ту хуйню, что ты заебашил, можно было спокойно мышкой накрутить
но ведь смысл в том, что мышка не нужна
inb4:а чем я буду таскать ассеты?
есть только сцена и на ней объект гея. все остальное - задачи скриптопараши
>тупой
нет ты, а я cg-артист, ололо
попробуй SharpDevelop Portable в доступное место поставить, если на машине .NET присутствует. шпермореестр не нужен
https://onedrive.live.com/?id=E27F7F936A58B3E1!45172&cid=E27F7F936A58B3E1
Можно делать, что угодно, только при таком подходе получишь залупой по гландам.
А то постоянно устанавливать одни и те же руками, во множестве файлов со множеством анимаций - задолбался.
Пик стронгли рилейтед.
Гугли по тегу asset preprocessor. Вот ссылка в документации на препроцессор анимаций:
http://docs.unity3d.com/ScriptReference/AssetPostprocessor.OnPreprocessAnimation.html
вот примеры препроцессора на меши и аудио:
http://www.cliffordroche.ca/manage-default-asset-import-settings-in-unity/
дальше сам разбирайся
Пилить на уече.
Ты сначала опиши, что у тебя говно, а дальше разберемся.
Нанять художника
Благодарствую!
Начни с того, что перестань пиздить движки с ассетами
Сделай 3д юнита и 2д юнита. Какой красивше получается то и делай. Тут все от твоих навыков зависит, во что лучше умеешь. Ну и трудозатраты сравни, запили дерево в 3д и в 2д, время замерь. Как-то так.
Грубо говоря, в компьютере, отличие 3Д от 2Д в том, что для 3Д-графики координаты всяких объектов трансформируются матрицами переходов (поворот, масштабирование, перемещение). Вангую, что для 2Д в юнити просто отключается эта трансформация.
Хуевый из тебя вангователь. Для 2д объектов не существует поворота, масштабирования, перемещения?
>>209945
Не слишком. Разница для процессора между 2д и 3д в размерности матрицы модели (можно сэкономить на 5 умножениях на вершину из 9), но она применяется не каждый кадр, а по мере необходимости и разницы в производительности ты не заметишь (особенно для 2д игры).
Нет, даже не пытайся.
В анус себе повангуй, а потом открой исходник ШЕЙДЕРА для спрайтов и жмакни по пункту в SceneView ShadedWireframe и лети в жопу.
Помогите с вопросом пожайлуйста.
Есть ли команда для проверки на пересечения двух коллайдеров? Что бы нажал на кнопку и он проверяет пресекаются 2 boxCollider или нет.
(OnTriggerEnter не предлагайте, так как объект может просто исчезнуть и OnTriggerExit не сработает)
Хмм. я знаю как сделать с помощью него костыльно.
Даже если сделать
void OnTriggerStay2D(Collider2D other)
{
flag = false;
if (other.name == "Player")
{
flag = true;
}
}
flag - не будет false (хотя будет работать если тригер будет перескать еще что нибудь).
В данный момент херачу так
void Update()
{
//v1 и v2 - образуют нужный квадрат
Collider2D[] colliders = Physics2D.OverlapAreaAll(v1, v2);
flag = false;
for (int i = 0; i < colliders.Length; i++)
{
if (colliders.gameObject != gameObject && colliders.tag == "Player")
flag = true;
}
}
Хмм. я знаю как сделать с помощью него костыльно.
Даже если сделать
void OnTriggerStay2D(Collider2D other)
{
flag = false;
if (other.name == "Player")
{
flag = true;
}
}
flag - не будет false (хотя будет работать если тригер будет перескать еще что нибудь).
В данный момент херачу так
void Update()
{
//v1 и v2 - образуют нужный квадрат
Collider2D[] colliders = Physics2D.OverlapAreaAll(v1, v2);
flag = false;
for (int i = 0; i < colliders.Length; i++)
{
if (colliders.gameObject != gameObject && colliders.tag == "Player")
flag = true;
}
}
сколько пискселей на картинке занимает одна единца измерения на сценке (создай квадрат в 100 пикселей и поймешь)
точно не скажу, погугли.
Но вроде читал что scale производительность жрет. надо что бы на большинстве объектов scale был равен одному.
>надо что бы на большинстве объектов scale был равен одному
Люди которые пишут такое делают игры? Нет пути.
Про аналог не скажу, но ты можешь просто использовать [ExecuteInEditMode] (над названием класса) и if (Application.isPlaying) return; в нужном месте. А еще есть
#if UNITY_EDITOR
.
.
.
#endif
Так в том то и суть. Что отрисовка линий есть, но работает она только при запущенной игре.
Ты странный. Я тебе только что привел рабочие примеры того, как я у себя в редакторе использую Drawline. Используя это можно заставить работать в редакторе любой код.
[ExecuteInEditMode]
public class GridWireframe : MonoBehaviour {
private void LateUpdate ()
{
#if UNITY_EDITOR
if (!Application.isPlaying)
{
Debug.DrawLine(new Vector3(-0.5f, -0.5f, 0.1f), new Vector3(-0.5f, LevelInitializer.levelInitializer.height - 0.5f, 0.1f), new Color(255, 155, 0));
}
#endif
}
Вот тебе пример работающего в редакторе кода.
При этом if (!Application.isPlaying) там лишний, хватает одного #if UNITY_EDITOR, который исполняет код только в редакторе.
Зарегистрируйся. Тогда комьюнити версия активируется.
Статиками сделай
Я Юнити знаю почти от и до, а анрыл до примерно такого же ровня надо полгода ебать. Динамическое GI там вроде бы такое же, потому баги будут идентичны. Удалось экспериментально установить что источником проблемы является ambient lighting от неба. Это значит что закрытые и открытые уровни не могут смешиваться.
Ну или запечь всё к чертям.
УЕ4 не использует Enlighten. По правде говоря, там динамического GI нет вообще, у них эта хуйня ещё с тройки тянется. Только вот к тройке бист подкинуть можно было, а с четвёркой такой фокус скорее всего не пройдёт. Твоя проблема скорее всего решается созданием параметров лайтмапера.
>ambient lighting от неба
Ну так можно его выключить к хуям.
Это что-то вроде
void DrawLine (x, y)
{
if(bGaem == true) RisuemLiniu(x,y);
}
А ты предлагаешь
if(bGaem == false) DrawLine (x, y);
Ну все же на ноль делится.
Похоже выключать галочку Baked GI не стоит, даже если всё освещение динамическое.
>>210671
Можно-то можно, но освещение от неба это важная часть. Без него свет будет не ГРАФОНИСТЫЙ.
Ты не прав. DrawLine рисует линии не только при запущенной игре.
>Похоже выключать галочку Baked GI не стоит
Вообще никогда. Enlighten нельзя сравнивать с классическими лайтмаперами, он почти всё делает рилтайм
>Enlighten computes the effect of indirect lighting in real-time. By precomputing the surface-to-surface visibility of the static geometry in the scene
Только что использует для этого precomputed данные. И вообще, трогать настройки этого глючного говна я бы сильно не советовал.
И вообще, я честно говоря не очень понял, с чего ты вдруг взял что он отрисовывает только при запущенном приложении. Даже тут - http://docs.unity3d.com/ScriptReference/Gizmos.html - написано следующее:
>Gizmos are used to give visual debugging or setup aids in the scene view.
А в описании конкретно DrawLine'а ни про какие ограничения не написано.
Ну я просто еще неофит и пока еще сильно стесняюсь своих глупых неочевидных названий.
Диванон по скриптам.
В sprite renderer смотри Order in layer. Выстави всем 0, тогда будет именно по z определять слойность.
У всех и стояло по 0. Все равно не отображалось. Поставил гг 1 в Order in layer, он стал сверху. Пускай так будет. Спасибо.
Тогда как называется это сраное сине-красное оконтуривание во всех этих анрыловских сринах котороми так любят тыкать в нос графоноебы?
нужна помощь по разбору говнокода на С#
код - полная копипаста из книги Unity in action (Joe Hocking).
скрипт вешается на "противника".
с его позиции пускается луч вперёд.
что противник должен делать:
1.идти вперёд.
2.делать SphereCast (не знаю как правильно сказать по-русски, простите) радиусом 0.75 и если она задевает объект -- чекать есть ли у объекта компонент PlayerCharacter.
если таковой имеется -- спавнить с prefabs "фаерболл". к "фаерболлу" прикреплен скрипт, который двигает его вперёд, чекает столкновение и тд.
3.если дистанция до препятствия меньше некоей заданной поворачиватся на рандомный угол (от -110 до 110)
что он не делает:
он не спавнит "фаерболл". просто бесцельно ходит, при этом нагло толкая меня когда я стою у него на пути. скрипт PlayerCharacter при этом на "игроке" висит ес-но.
ЧЯДНТ?
Возможно fireball не равен null, ведь именно в этом блоке он спавнится. Ставь брейкпоинт и дебажь.
Грязный трюк - натыкать в разных ветках условий отладочный вывод и смотреть что реально происходит. Я и не то по логам дебажил.
Ну а вообще такое и есть причина почему делать всерьёз на MonoBehaviour ничего нельзя. Надо делать всю логику в стороне, изолировать юнити за чёткими интерфейсами и покрывать всё тестами.
Да. Префаб назначил.
>>210853
Я немного новенький в этой теме. Если объекта нет в сцене (его нет в иерархии в момент, когда идёт проверка) - его значение null, правильно?
fireball не появляется в иерархии. совсем.
>>210857
Где можно почитать/посмотреть как это реализуется? Спасибо.
>>210856
Так и сделал. Вот что получилось:
1.1.Вставил Debug.Log перед началом каждого действия и в его конце.
1.2.Запустил и побегал перед "противником".
1.3.В консоль выводятся только три сообщения. Проверка if (hitObject.GetComponent<PlayerCharacter>()) даёт false и не выполняется.
(скрин: красным - работает, синим - нет)
2.1.Закомментил эту проверку. Ничего не дало.
3.1.Закомментил проверку if (_fireball = null) в которой основное тело нужного кода и он УРА! заработал (теперь fireball появляется постоянно)
3.2.Снова открыл проверку игрока перед врагом if (hitObject.GetComponent<PlayerCharacter>()) -- всё отлично и fireball спавнится только когда враг наводится на меня. (скрин№2)
Но fireball спавнится постоянно. Что может быть не так с условием if (_fireball = null)?
Ещё раз спасибо. Практически починил.
Найди строчки где дрочится переменная _fireball. _fireball = Instantiate..., после этого фаерболл уже не будет равен null, но в твоем случае где то до этого уже была инициализация фаербола. Если переменная public то посмотри чтоб в редакторе на переменной ничего не висело.
Условия проверяются двойным знаком равенства if(_fireball == null), сейчас фаерболлу просто присваивается null без проверки. Будь внимательнее. Варнингов в консоли не было?
https://www.youtube.com/watch?v=1wvMXur19M4
https://www.youtube.com/watch?v=jlr-NLPNi0Q
И гугл на тему разделения сущностей, тестируемости и т.д. Это огромная тема.
>>210865
> Проверка if (hitObject.GetComponent<PlayerCharacter>()) даёт false и не выполняется.
Вот. Значит в объекте с которым столкнулся нет такого компонента. Теперь задача определить с каким объектом мы столкнулись. Выведи в консоль hitObject. Если это игрок - то посмотри на тему наличия PlayerCharacter на нём. Ещё может быть что столкновение происходит с каким нибудь объектом в иерархии под игроком, где есть коллайдер.
it looks like another unity instance is running
>Что может быть не так с условием if (_fireball = null)?
>Найди строчки где дрочится переменная _fireball. _fireball = Instantiate...,
>Вот. Значит в объекте с которым столкнулся нет такого компонента.
void OnDrawGizmos() { Gizmos.DrawLine(new Vector3(x, min.y), new Vector3(x, max.y)); }
и никаких костылей с [ExecuteInEditMode]
Он и в статике смотрится хуево, а при движущейся/меняющей масштаб камере это смотрится еще хуже.
Советовали перемещать камеру только по целым значениям, а не float. Но это не вариант.
Может кто знает как решить?
ctr+shift+esc -> процессы -> unity.exe -> правый клик -> завершить дерево процессов -> ок.
>Что может быть не так с условием if (_fireball = null)?
> if (_fireball = null)
Пиздец.
>>210921
Весь динамический GI в уе4 - это интерполяция статического GI.
https://docs.unrealengine.com/latest/INT/Engine/Rendering/LightingAndShadows/IndirectLightingCache/index.html
Если объект не движется - то сделать светящуюся поверхность, поместить в слой невидимый камере и дать GI сделать всю работу. Иначе только точечным источником.
>Весь динамический GI в уе4 - это интерполяция статического GI.
Это же лайтпробы! Вообще динамический GI это когда можно двигать лампочки и это будет действовать на непрямое освещение.
В ассет стор вали, идиот.
Годнота. Спасибо.
Дали тебе детейл меши, нет, блядь, хочу жрать говно! Хочу и всё тут. Пидоры, блядь.
>>211004
>это когда можно двигать лампочки и это будет действовать на непрямое освещение
В общем, читай по ссылке. Это не динамический GI, это фейковый динамический GI, что даже на форуме эпиков писалось, лол.
>you have fully dynamic lights which do not have any global illumination.
Ещё и при загрузке сцен с запеченными тенями начинается пиздецкий расход рам, зависание редактора и чёрные террейны. Чёрные, блядь, террейны! Пришлось удолить запеченные тени. Пиздец.
спасибо
в чем угодно, главное чтоб сохранить в .fbx можно было.
Нашел ответ сам. Зделал через OnGUI(). Всем спасибо за советы.
а я же блядь знал что должен быть какой-то контроллер, но он у меня не установлен
спасибо, анон
Я просто смотрел, вроде как самую графонистую техно-демку, от разрабов юнита, Блаэксмит, так вот там совсем среднего качества был графон((
Возможен ли графон НЕРЕАЛЬНОГО ДВИГАТЕЛЯ на ОПЕНЖИЭЛ?
Я просто смотрел, вроде как самую графонистую техно-демку, так вот там среднего качества бы графон((
>графон НЕРЕАЛЬНОГО ДВИГАТЕЛЯ на ЮНИТЕ
Но зачем? У юнити графон лучше, зачем этот даунгрейд?
https://www.youtube.com/watch?v=l40BKM6qTyc
Ну про лучше, это ты конечно махнул, писюном особенно учитывая, что это всего лишь кишкапустая, да и в ней использовано только 3 повторяющихся материала, да и ненормальные мерцания по граням всех объектов, но для мобильного телефона-планшета да, таки выглядит не плохо.
Впрочем, ты наверное не разбираешься в графике.
>>211767
Не очень понял, что ты?
Поискал тут графонистого УЕ4, вот это нравится. Хотя это конечно не технодемка, которые всегда выглядят лучше, а как раз реальный игровой продукт.
https://www.youtube.com/watch?v=A3sBZ5Nr4hc
Ну, если бы в графике разбирался ты, то понял бы, что блексмит в разы лучше того же елементал демо. Технологичнее и качественнее.
Графоноебы в своем репертуаре. Нахуйя тут такое дикое количество бликов?
Откалибруй монитор, уебок.
Надо сделать камеру как в Demon's Souls. Она управляется отдельно от чара, одним из стиков, а чар (с другого стика), движется всегда относительно нее, а не по собственной системе координат. Если в сторону - то перпендикулярно ее направлению.
Выбери текстуру и поменяй фильтрацию на point. На еретика что то пока не очень похоже.
Сжатие текстур поменяй на true color.
Сколько игр не встречал на этом движке - все как одни -гавно ебаное
Такое управление делается довольно просто - камера считается вращающейся по сфере вокруг персонажа, движения левого стика модифицируются направлением камеры в движения в мировом пространстве. Тривиально. Можно сделать в двухмерном пространстве, без матриц вообще.
А вот камера, чтобы сделать её хорошо, это ебля на ну очень долгий срок. Вот это зацени: https://www.youtube.com/watch?v=C7307qRmlMI
>>211963
Ты хотел пиксели? Ты получил пиксели. Там могут быть мипы. Или гамма. Или свет.
А не, все норм
Надо наверное сделать так, чтобы AI включался только у персонажей, находящихся недалеко от игрока. А в остальных случаях их похождения будут просчитываться в фоновом режиме, без симуляции всех действий. Куда направился, с кем сразился, какие новые шмотки выбил или купил и т.д. Только как это возможно?
повезло тебе. а я даже и игр не встречал
Ты змейку сначала сделай.
Как? Руками, как. В таких случаях симуляцию отделяют от представления.
>Как? Руками, как. В таких случаях симуляцию отделяют от представления.
Ну ка быстро запили мне модельку для игори с анимацией пользуясь тачпадом и руками. Уровня например первого Квейка.
Не тот пот дружище.
>графоний
сразу видно дебила, немогущего ни во что, кроме мышетаскания ассетов, который даже процедурный шейдер написать не в состоянии
>на тачпаде?
ну почти
на анусе твоей мамаши
А если сделаю свою модель в блендере, то ее анимацию надо будет прорабатывать там же, или ее можно настроить уже после экспорта в юнити?
Я как бы говорю про Model-View-Controller. Анимация это представление, view. В модели (model) у тебя будет геометрия уровня и бегающие по уровню капсули, где то глубоко в памяти. А потом ты берёшь и делаешь к этому представление какое нужно. Хоть с тачпадом в качестве control.
Color Correction Curves действует и на UI элементы.
Что кого куда?
У меня нет ни текстур земли, ни деревьев
Где продать свою игру? В стиме недавно видел инфу нужно теперь внос 100 баксов делать, иначе не допустят, а я хочу с первой игры эти самые 100-200 баксов заработать хотя бы, так как планирую всего месяц-два делать ее.
не получается продать свою игру? спизди и продай чужую!
Это защита от дурака. Не можешь установить юнити - значит посиди еще немного на анриле
Извини, но этот тред почему-то у меня скрыт, поэтому иди нахуй.
Itch.io Но там таких игр миллион. Зато ничего не просят.
Substance Designer
3200 рублей там нужно платить. Нынче это далеко не 100 баксов. И да, это плата не за один сабмит одной игры, а за безлимитный доступ к сабмиту
NIKOLLAY (или как там тебя), ты что ли? На гейдев.ру всех заебал и сюда пришёл? Чтобы сделать платформер просто раздели задачу на кусочки и сделай каждую из них. Если ты не понимаешь как это - то иди туда откуда пришёл, мандаринами на рынке торговать.
Графон + алгоритмы - вот задачи. Как их выполнить ? Я вообще никогда не гейдевил
>Чтобы построить замок на облаке просто раздели задачу на кусочки и сделай каждую из них. Если ты не понимаешь как это - то иди туда откуда пришёл, мандаринами на рынке торговать.
>Чтобы стать миллиардером просто раздели задачу на кусочки и сделай каждую из них. Если ты не понимаешь как это - то иди туда откуда пришёл, мандаринами на рынке торговать.
>Чтобы стать непобежденным чемпионом по боям без правил над жерлом вулкана просто раздели задачу на кусочки и сделай каждую из них. Если ты не понимаешь как это - то иди туда откуда пришёл, мандаринами на рынке торговать.
>>212360
>>212361
Няши-срамняши, это называется выражением "декомпозиция задачи". Стартовый этап в разработке чего угодно.
>>212345
Тогда начинай не с платформера. Платформер на самом деле имеет кучу механик о которых ты даже не подозреваешь. Сделай Fallpy Bird или арканоид. Потом уже дивигайся к платформерам.
Обучалок чему? Может ты ещё и мануал к туалетной бумаге требуешь, в двух томах с списком опечаток? У тебя есть например арканоид. Ты делаешь так чтобы шарик отскаивал от стен. Потом чтобы от ракетки. Потом чтобы ракетка двигалась. И так далее, и так далее. Декомпозируй, разделяй на элементы, смотри как они взаимодействуют. Потом сделай. Обнаружишь что неправильно. Поймёшь что сделал неправильно. Сделаешь снова, уже лучше. И так до упора.
А если ты хочешь чтобы я сделал тебе игру - то учти что я не работаю меньше чем за 100к рублей в месяц, и это ещё дёшево беру.
Братан, я прекрасно понимаю, что мне нужно сделать, но я не знаю как это делать !
Вот поэтому начинай с малого. Не знаешь с какого бока подходить к C#? Напиши Hello World и изучи основные моменты. Не знаешь как сделать сцену на Юнити? Сделай так чтобы по пробелу куб двигался вперёд. И так, постепенно, ты во всём разберёшься. Потом что нибудь сложней. С этого все начинали. Абсолютно все.
Идёшь в книжный магазин и покупаешь там книжку типа "C# для структурированного углерода". И пока не поймёшь там всё - не идёшь дальше.
> готовые строки задач
Башка твоя тебе зачем? Апельсинами на базаре торговать? Вот и торгуй.
Махнешь на них обучалки?
Time.timeScale = 0.0F;
Sup, /gd/, только начал сам писать код.
Что делать? Хочу заставить вертолёт балансировать, но не получается. Вот код.
http://pastebin.com/tK2A1252
На деле получается следующее.
Я не юнитист, но ты уж постарайся привести этот код в порядок. Суть в том, что есть два состояния. Когда состояние==1, вращение прибавляется, и как только достигает 0.3, переключается на состояние 0, при котором вращение отнимается. Такое вращение не будет плавным, конечно.
public void FixedUpdate()
{
if (состояние==1)
{ if (transform.localRotation.z > 0.3)
{
Moveit(-1);
}
else{состояние=0}
if (состояние==0)
{ if (transform.localRotation.z < 0.6)
{
Moveit(1);
}
else{состояние=1}
}
Чтобы вращение было плавным, тебе нужно изменять скорость прибавления к вращению. Например, у нас есть RotationSpeed=0; //или в юнити это будет выглядеть как RotationSpeed(0)?
//первое состояние, вращение против часовой стрелки
if (состояние==1)
{ if (transform.localRotation.z > 0.3)
{RotationSpeed(-.1);}
else{состояние(0)}
//нулевое состояние, по часовой
if (состояние==0)
{ if (transform.localRotation.z < 0.6)
{RotationSpeed(+.1);}
else{состояние(1)}
//прибавляем к вращению вертолёта нашу скорость.
Moveit(RotationSpeed)
//Как ты заметил, я прибавляю к скорости дробное значение. Тебе нужно будет поэкспериментировать с этим. Дело в том, что когда состояние будет переключаться, вертолёт ещё будет поворачиваться в сторону предыдущего состояния, так как скорость вращения в этот момент не будет равна нулю. Этого не избежать, так как это делает вращение плавным. Ты можешь поэкспериментировать - измени значения 0.3 и 0.6, или ограничь максимальную скорость вращения (первое время вертолёт будет вращаться очень быстро, если поставить большие значения или ограничить). Ну или ты можешь поставить в своих условиях зависимость не от transform.localRotation.z, а непосредственно от скорости вращения
Попробуй кинь в апдейт вот этот код:
var rotation = transform.localRotation;
rotation.z = 0.3f + Mathf.PingPong(Time.time, 0.3f);
transform.localRotation = rotation;
Для изменения скорости можешь умножать Time.time на какое-нибудь значение, например 0.25
что только не придумают, чтобы тригонометрические функции не использовать
Они тригонометрию прогуливали и смеялись надо ботанами говорящими смешное слово "нормаль".
Нет, не правда
Нульчеблядь, ты?
Зато у них были тян, а ты сидишь на дваче.
чтобы снять багун, повторить про себя три раза ТНН ТНН ТНН
Спасибо за ответ.
Quaternion, Lerp, Euler angles.
Есть торрент с ассетами? А то один ассет как ползарплаты стоит.
> u3d.at.ua
Спасибо, алсо я, пидор, только сейчас обнаружил бесплатные Unity Samples: UI и standart assets в которых теоретически должно быть то что мне нужно.
А можно ли скачать все ассеты, установить их в юнити, а потом перенести юнити на другой пека, который помощнее но без интернета?
ассеты скачиваются в формате *.unitypackage или как там мать его. так что, ты можешь скачать их, потом закинуть на флэшку, ну и потом уже на ПК помощнее после установки юнити установить ассеты с флэшки. по поводу переноса юнити на другой пк ничо не знаю. возможно, нужно еще ключи из реестра переносить. а может и не нужно.
> Просвятите меня, в каких ситуациях лучше использовать эти ваши корутины.
Как понадобится, сам поймешь
Тебе нужно выполнить какое-нибудь действие отложено. Например, ты хочешь подождать несколько секунд или ты хочешь дождаться, пока клиент соединится с сервером. Какие твои действия в этом случае? Тебе придётся завести таймер, тебе придётся насрать в методе Update, делать там проверки, либо ты можешь всё это красиво вынести в отдельный метод и запустить его через корутину.
Да кому ты нужен? Используй. Думаешь, он будет заказывать экспертизу для твоей игры, будет подавать в суд?
>Думаешь, он будет заказывать экспертизу для твоей игры, будет подавать в суд?
В отличии от пидорахолэнда, в цивилизованном мире закон об авторском праве примерно соблюдается. Стим и аппсторе, к слову, - часть цивилизованного мира.
Однажды ты просто обнаружишь что твою игру сняли с стора, а тебя во всю ищут злые адвокаты в дорогих костюмах.
А если я куплю лицензию потом, как приду к успеху?
Откуда у создателя ассетов на них деньги? Сам подумай. Одно дело, когда ты пиздишь контент из популярной игры у какого-нибудь близзарда. У них там целый штат юристов, которые задрочат тебя до смерти (и то, они ещё подумают, а стоишь ли ты затраченных средств и попытаются решить всё через третью сторону, например стим), а другое дело, когда ты пиздишь какой-то там ассет у нонейма.
А потом выясняется, что в украденном тобой со стора ассете есть ворованные у близзарда нотча ассеты. И ему похуй, где ты их взял, они есть у тебя в игре и его ручной негр уже около твоей двери.
Ах да, имя только не забудь перед этим сменить.
Чтобы кнопкой была сама картинка и нажатие на ее прозрачную область игнорировалось.
https://www.assetstore.unity3d.com/en/#!/content/28601
Неужели все настолько плохо, что без стороннего асета не обойтись? В уе4 такое парой кликов делается.
Он же просто скрывает часть. А коллизия кнопки все тот же прямоугольник.
У меня была такая же проблема с событием OnMouseDown(); никак не решил, пришлось пользоваться апдейтом.
Дестрой срабатывает не сразу, очевидно же. Скорее всего, у тебя где-то ссылка есть на объект. У меня дестрой вообще нормально не работал, пока объект хранился в списке.
Используй SetActive (false)
>Что же делать?
Не ябу что ты делаешь не так. У меня Destroy в OnMouseDown естественно, как ему и положено, удаляет объект.
> Ссылки на объект не имеют значения
И сразу нахуй. У меня ГО не удалялся буквально сегодня
>>213164
Заюзай DestroyImmediate(Object obj, bool allowDestroyingAssets = false);
Если уничтожит, но вывалит ошибку в консоль - проблема в ссылках. Если не удалит - у тебя с событием пиздец. Кстати, процедурно моусклик событие на кнопку не вешаешь? Не вешай, не работает. Я обошёл навешиванием на кнопку скрипта. Костыль пиздец, но лучше, чем ничего.
Специальный коллайдер для мышки? Не видел такого.
Ладушки, завтра попробую.
чупакабры, кто покупал картборд для девелопинга? без проблем же будет ебашить игры для мобил, и с парой эмуляторов для пеки?
Пример чего, рук из жоп? Destroy может не работать только если он не выполняется.
Пизда, читай доки по тамингам, там все разжевано.
Можно ебануть анимацию в блендере и ебаться в жопу импортировать все в юнити без головных болей.
Повесь на объект тридэшный коллайдер и в рантайме нажми на объект и про скрипт с маусдауном не забудь.
Даунов полон тред.
Нет, они растут, ебанько.
Но, курва мать, ты сракой читаешь?
> только начал сам писать код
САМ ПИСАТЬ КОД. Я НЕ ЗНАЮ, КАК ПОЛЬЗОВАТЬСЯ ТРИГОН. Ф-ЦИЯМИ В ЮНИТИ.
И да, многочлен.
inb4: ортографической камерой
Я ниибу чем он отличается, но то что есть 2д коллайдер, это факт. Ты упомянул именно про 3д коллайдер, и логично было предположить, что для работы дестроя нужен именно он. Впредь выражайся яснее, если хочешь подсказать, а не просто газануть в воду.
2д коллайдер присутствует на объекте и присутствовал всегда при попытках заставить работать события мыши. Но пока что все равно болт.
Как же заебало мудачье, не могущее ни в гугол, ни в ингриш
http://docs.unity3d.com/ScriptReference/MonoBehaviour.OnMouseDown.html
>OnMouseDown is called when the user has pressed the mouse button while over the GUIElement or Collider.
http://docs.unity3d.com/ScriptReference/Collider.html
See Also: BoxCollider, SphereCollider, CapsuleCollider, MeshCollider, PhysicMaterial, Rigidbody.
http://docs.unity3d.com/ScriptReference/BoxCollider.html
http://docs.unity3d.com/ScriptReference/SphereCollider.html
http://docs.unity3d.com/ScriptReference/CapsuleCollider.html
http://docs.unity3d.com/ScriptReference/MeshCollider.html
Сделай просто нормальное UI. А не насилуй целую сцену под это.
Спасибо. Вроде разобрался.
Теперь переведу для всех остальных на нормальный нубский русский:
Чтобы работал Destroy() на каком либо объекте, в этом объекте должен присутствовать коллайдер, потому что тычки мышкой будут регистрироваться именно в области этого коллайдера, а не самой текстурки объекта. То есть если допустим вы кинули на поле кружок, создали ему коллайдер, и не посмотрели в каком месте создался коллайдер, или случайно сбили его положение, то объект удаляться не будет, потому что вы просто не попадаете по коллайдеру, который хуй знает где. Как только коллайдер будет чотко совпадать с границами текстурки, все должно работать. Проверял только что с событием OnMouseDown(), 2д коллайдер.
>Чтобы работал Destroy() на каком либо объекте, в этом объекте должен присутствовать коллайдер
Школотрон, не пудри мозги другим школотронам. Destroy уничтожает любой GameObject
Маня плиз. Дочитай до конца, а не только первую строчку.
столько хейтеров как в этом треде я ещё нигде не встречал. мамок ваших пер, а папкам по губам водил. это пиздец
Ебантяй, когда я тебе писал про тридэшный, я не знал, что у тебя под 2д точишь.
Алсо, маусдаун -- тупая тормозная поебень, используй физик рейкастер и реализуй интерфейс какой угодно в своем монобехе, хоть даун, хоть драг, и т.д.
>>213438
Ты тоже в доки не умеешь, Маня. Коллайдер - это базовый класс, для всех тобою перечисленных. Пади подмойса, в общем.
>>213450
И ты школотрон, Destroy уничтожает только указанный объект, а не геймобджект.
Вечно ваш мимоПРОбыдлодевелопер.
Послушай сюда, необразованное хуйло.
Я гроб твоего деда на хую вертел, тупорылый пидор. Если ты еще раз спизданешь такую же хуйню, как в своем посте про дестрой с коллайдерами, я лично тебя найду и выверну тебе очко наизнанку, ебаный кирилл. Ленивым уебанам вроде тебя нужно вообще запретить постинг до тех пор пока вы от корки до корки не прочтете документацию. Тыкает он блядь по текстуркам. А по бамп мапам ты не тыкаешь, хуесос? Дестрой вообще никак не связан с коллайдерами, подшконочное ты говно.
Просто.
Съеби.
Из треда.
Вот тебе песня в дорогу.
https://www.youtube.com/watch?v=tJzx4PTvXis
>А по бамп мапам ты не тыкаешь
Если бы не тыкал, то ты бы не родился
Дестрой связан с коллайдерами, когда идет обработка события по клику мыши. В 4й раз тебе повторяю. Ты наверно и доки 4 раза читал?
Ты немного нелогично пишешь, поэтому он троллит. Естественно, дестрой не связан с наличием коллайдера, но тебе коллайдер нужен исключительно для получения объекта, на который ты кликаешь (так ведь?).
Конеш.
Есть желание и небольшой опыт(к сожалению всего лишь AS3.0), подыскиваю подходящую платформу для реализации.
Это хорошо.
Есть тулкиты, руководства и что нибудь подобное конкретно про РТС, или идти и дрочить документацию сразу?
Документацию
ты это можешь сделать на чистом сисярпе, к чему использование игрового движка?
Проблемы будут, куда без них?
окосеешь, уебок для начала сделай хоть что-нибудь, а потом сюда заходи и да, ровные пацаны кардборд сами делают, так что вали и штопайся
мимо-ПРОбыдлодевелопер
Эмуляторы для пеки? Что несёшь? Юнити поддерживает стереоскопический рендеринг и позволяет деплоить один и тот же проект на разные платформы, включая мобильные. Никаких проблем быть не должно, вся документация существует.
Твой кардборд тут вообще не причём.
Вангую, парень хочет чтобы эффектики были, графоуни и ровная работа со звуком, но скорей всего он ООП-макака, либо вообще с сисярпом не знаком, поэтому у него ничего и не выйдет.
Хочу, if - else писать умею, что еще нужно?
В голову приходит сделать класс статуса персонажа, не наследованный от монобихейвиора, и сохранять ссылку на него где-нибудь.
А какой способ считается лучшей практикой?
Кто юзал SImpleCCD скрипт для ИК-анимации?
У меня с ним проблема - ограничители поворота сустава (колено/локоть) почему-то выставлены задом на перёд.
В чём м.б. трабл, как пофиксить?
Как скачать, что б в офлайне читать? Только грабером?
Не обязательно. Можно UI кнопками прямо из гуя делать много всего, в том числе включать выключать объекты.
Все, разобрался.
>>214429
Спасибо тебе, Няша, ты мне очень помог.
>>213925 - кун
>>214499
Спасибо. Буду курить документацию. Её кстати скачать для офлайна можно? Вроде >>214442
кажется, тебе нужен метод dontdestroyonload()
вчитайся. вопрос о том, чтобы хуярить игры для той же пеки, но тестить их на картборде. ясен хер что с окулусами годнячими на носу все будет чуток лучше. но в целом рез-тат можно ожидать примерно тот же?
У меня ограничители изгиба выворачивает в другую сторону, в чём причина может быть?
>Тебе же документацию предлагают постоянно накатить.
Справка в самой юньке? Я про скачать на флешку и почитать на левом компе без интернета.
Не, ну я серьёзно.
Ограничитель локтей вроде с горем пополам стаёт как надо.
А вот с коленями пиздец - никак не получается выкрутить ограничитель в правильное положение.
Ну и наоборот то же самое - это смотря в какую сторону стартовая позиция перс-жа.
Причём в официальном примере у них ограничители выставлены как надо и нормально работают.
А повторить не получается.
Так что, получается?
Посмотрел асетстор - нет нормальных асетов с ИК-ограничителями,
ни платных, ни бесплатных ?
Application.LoadLevel(Application.loadedLevel);
SceneManager.LoadScene("Main");
>Сап, двач, нажимаю на кнопку включения на системном блоке, а компьютер не работает. из за чего может не работать и как это исправить?
Если бы ты не был ёбаным лосём, ты бы набрал в Scripting Reference в поиске Application.LoadLevel
>C:/Program%20Files/Unity/Editor/Data/Documentation
Все верно, она там есть, но только на английском. Беда - печаль.
>Ты тоже в доки не умеешь, Маня. Коллайдер - это базовый класс, для всех тобою перечисленных. Пади подмойса, в общем.
Я тебе слово давал, чухан ебаный? Перед тобой юнити бог, самый тру юнити девелопер на этой параше. Кого ты, блядь, животное, поправлять лезешь, говно?
http://docs.unity3d.com/ScriptReference/Collider2D.html
>базовый класс для всех тобою перечисленных
А, эта обезьяна просто не одупляет, оказывается, что до нее хотят донести. Мой тебе совет: не пости больше в моем треде, пидор
А вот повороты хуй знает как делать, если написать вместо мовемент вектор трансформ.ротейшн, то нихуя не происходит, и я не ебу как оно все должно вообще работать. Ни у кого нет готового скрипта, чтоб присоединить, кнопки в инспекторе привязать, и летать туда-сюда?
В скриптах из стандарт ассетс есть готовые скрипты для машины, самолетика, и человечка, но там куча доп возможностей которые не нужны, вроде обзора мышью, и опять-таки непонятно как привязать кнопки. А переработать их под себя мне мозгов нехватает. Документация на английском в основном, и там нихуя не понятно блядь, да и я не программист так-то.
float angleVelocity = 45f;
if(КНОПКА_А) {
Vector3 angle = transform.eulerAngles;
angle.z += Time.deltaTime * angleVelocity;
transform.eulerAngles = angle;
}
Лол, чем же тебе не нравится этот метод?
можешь кости кидать перед монитором и записывать результаты
>какого разрешения рисовать спрайты
кратного степеням двойки. ещё, насколько я помню, для нормальной отрисовки нужны квадратные рисунки.
Я понимаю что файл должен иметь разрешение, кратное степени двойки, но спрашивал про другое. Скажем есть объект переднего плана, занимающий одну пятую экрана по высоте. Для 1080 экранов, это будет около 200px, но какого разрешения должным быть этот объект? N x 200? или больше, чтобы иметь запас? Или же наоборот меньше, но увеличен со сглаживанием? Просто никогда не рисовал не пиксель арт для игр, вот и спрашиваю такую банальщину.
Хочешь максимально качественную картинку - под каждое разрешение надо отдельные спрайты, т.к. даже если ты нарисуешь с "запасом" (т.е. размером больше, чем надо), то при даунсайзе может также произойти потеря качества, какие-то нужные детали картинки пропадут, какие-то ненужные - останутся.
>>216944
На самом деле разные размеры крайне редко делают, т.к. ручной арт - дико затратная штука. В Брейде, например, персонаж нарисован просто чуть в большем размере, чем он используется в игре на обычных средних мониторах.
На мобилках стоит обратить внимание, что есть планшеты, а есть смартфоны, диагонали в среднем раза в 2 отличаются, и тут-то было бы неплохо сделать два варианта спрайтов - побольше и поменьше. Однако надо заметить еще, что плотность пикселей на них обычно больше, чем на стационарных мониторах (между смартфонами и планшетами не знаю как различается этот параметр).
Пиздец нахуй, нашёл причину - риджидбоди на ГО засыпает, и нужно его периодически будить wakeUp()'ом. Схуяли вообще риджидбоди засыпает? Типа если нет движения определённое время?
Не знаю. Но я вот пару недель в юнити аутирую и не представляю себе, как там можно умудриться не запилить визуальную новеллу.
Все правильно парень говорит, неуч ебучий. Карточкам проще обсчитывать квадраты кратные двойке нежели прямоугольники кратные размерам твоей мамаши.
мимоПРО
В анусе твоей мамаши.
Расширение фаила -- не всегда является форматом, даун.
>>217096
Легко. Берешь и без задней мысли пишешь (либо хуячишь в аниматоре) диалоговую систему. Глянь, как пример, в ассет сторе был бесплатный проект про шефповара со шпагой.
>>217203
Можно, только надо смотреть на иерархию объектов и компонентов, чтобы точней сказать.
мимоПРО
Я бы умудрился не использовать для сраной презентации целый, мать его, юнити. Тащемта, например.
Посмотрите на этого ПРО долбоеба.
1) для карточек может быть важно только то, чтобы размеры сторон у текстура были кратны степеням двойки. Квадрат это или нет - абсолютно насрать (ОБОСРАМС 1)
2) Про атласы долбоебушка никогда не слышал? (ОБОСРАМС 2)
3) Про то, что из любой текстуры можно сделать текстуру со сторонами кратными степени двойки тоже не знаем? (ОБОСРАМС 3)
И на последок - все эти заебы уже давно переложены на плечи движка и нормальные гей девелоперы о такой хуйне не думают.
Огромная благодарность тебе, анон.
В моей недоказуалочке есть убывающая кала времени. Сделал её из слайдера, но эта сука дёргается при убывании, такими микро-рывками, а хотелось бы чтоб плавненько.
Как этого добиться? Может вообще в пизду этот слайдер ебаный?
Ну я как бы по Official Tutorials делал. Как раз по аналогии с healthbar.
https://youtu.be/lNdhNHNwpjI?t=456
Палю годноту. Делаешь из картинки, картинке делаешь тип "filled". Потом дёргаешь только филл эмоунт и радуешься жизни.
Смарите, мамкин дивилопир пилил бы только крузисы)))0
Есть пара ассетов в сторе, которые ищутся в поиске.
Не хочу использовать полностью ворованные ресурсы, но и обращаться к художникам пока не готов, так как не понятно на сколько затянется разработка. Знакомые предлагали перейти в 3D, так как концепт располагает, но я пока не хочу этого делать. Есть здесь тот, кто может рассказать да подсказать?
Как у тебя биллборды спрайтов устроены, Lookat-праша или шейдерная магия? Если шейдер то как решил проблемы с батчингом (если вообще решил)?
Посоны, есть один коллайдер.
Как отправить ему запрос на проверку столкновения с чем-либо?
Т.е. я отправляю запрос из другого скрипта, коллайдер в следующем физическом тике проверяет этот факт ОДИН раз и отсылает ответ назад. Всё. Больше этот пидорас ничего не делает.
Инфибо: запили булевую переменную и онтриггерэнтер в рантайм и бери переменную. Нет, блядь, просто иди нахуй, у меня этих триггеров в сцене больше сотни
Где искать, аноны?
опа, спасибо, слышал о таком, но не использовал некоторые профессиональные книжки даже приходилось покупать по работе/учебе
>мое лицо когда я узнал, что маски в unity ui не могут в альфа-канал
И зачем они такие вообще нужны?
Пока что я только начал свой путь, запили камеру перемещающуюся в сторону края экрана, к которому подвели курсор, сделал коробку(барак) по клику плодящую капсулы(юнитов), в общем немного.
И вот я решил заставить свои капсулы двигаться как юниты в РТС. Прикрутил к ним NavMeshAgent'ы, запек им NavMesh на пока пустынной карте и все бы хорошо, но когда юнитов становится три и больше они не тихо и мирно подходят к точке клика, а толкаются и мешают друг другу. А если их сделать хотя бы с десяток начинают водить хоровод вокруг таргет-точки. Господа опытные юнитиводы, подскажите как решить проблему.
А пока плохая фотка плохого концепта юнита для одной из запланированных фракций.
>подскажите как решить проблему.
Ассетом за 50$. Я серьезно. Нормальная навигация в стратегии это тот еще гемор.
Насколько я знаю, для стратегий не использую чистый НавМеш. Ещё используют Steering Behaviors. Это тебе позволит создать довольно реалистичное движение при котором юниты будут избегать друг друга.
http://gamedevelopment.tutsplus.com/series/understanding-steering-behaviors--gamedev-12732
я так понял, тебе нужно чтобы они не натыкались друг на друга, т.е. соблюдали некую дистанцию
Текст ошибки:
NullReferenceException: Object reference not set to an instance of an object
сheracter_rotator.LookToMouse () (at Assets/сheracter_rotator.cs:17)
сheracter_rotator.Update () (at Assets/сheracter_rotator.cs:31)
Сам скрипт:
using UnityEngine;
using System.Collections;
public class сheracter_rotator : MonoBehaviour
{
private Ray ray;
private RaycastHit hit;
public Vector3 target;
public Transform сheracter;
void LookToMouse()
{
ray = Camera.main.ScreenPointToRay(Input.mousePosition);
if (Physics.Raycast(ray, out hit, 100.0f))
{
target = hit.point;
}
Vector3 dir = target - сheracter.position;
dir.z = 0;
dir.Normalize();
Vector3 headDir = сheracter.up;
сheracter.up = Vector3.Lerp(headDir, dir, 10 * Time.deltaTime);
}
void Update()
{
LookToMouse();
}
помогите плз
Текст ошибки:
NullReferenceException: Object reference not set to an instance of an object
сheracter_rotator.LookToMouse () (at Assets/сheracter_rotator.cs:17)
сheracter_rotator.Update () (at Assets/сheracter_rotator.cs:31)
Сам скрипт:
using UnityEngine;
using System.Collections;
public class сheracter_rotator : MonoBehaviour
{
private Ray ray;
private RaycastHit hit;
public Vector3 target;
public Transform сheracter;
void LookToMouse()
{
ray = Camera.main.ScreenPointToRay(Input.mousePosition);
if (Physics.Raycast(ray, out hit, 100.0f))
{
target = hit.point;
}
Vector3 dir = target - сheracter.position;
dir.z = 0;
dir.Normalize();
Vector3 headDir = сheracter.up;
сheracter.up = Vector3.Lerp(headDir, dir, 10 * Time.deltaTime);
}
void Update()
{
LookToMouse();
}
помогите плз
а, всё я дибил у мейн самері тег мейн камера не проставлен біл
Не понял той хуйни, начиная с третьей строчки. Думаю, тебе интересен void OnCollisionEnter(Collision info).
Они не натыкаются друг на друга, когда они всей толпой достигают точки клика, то те, что ближе всего к ней(т.е. внутри стопинг дистанс) останавливаются, а другие продолжают пытаться попасть как можно ближе к этому стопинг дистансу Вследствие чего получается толкучка и "хороводы". Нужно чтобы они вели себя как в нормальной РТС.
void OnCollisionEnter(Collision info)
{
if (info.collider.tag=="unit")
//останавливаешь анимацию или чем там является двжение по навигационной карте
}
не?
Почяны помогите есть скрипт для стрельбы
// Высчитываем позицию корабля
float posX = this.transform.position.x;
float posY = this.transform.position.y;
// Создаём лазер на этой позиции
Instantiate(laser, new Vector3(posX, posY, 0), this.transform.rotation
);
нужно добавить разброс, то есть луч должен вылетать не четко по курсу , а с отклонением в пару градусов
погите
Они во время движения тоже сталкиваются, это норма. Я конечно могу остановить навмешагент при столкновении, но тогда высока вероятность что они будут останавливаться не доходя до точки.
void OnCollisionEnter(Collision info)
{
if (info.collider.tag=="unit"&&gameObject.transform.position.x-destinationPoint.x<2&&&&gameObject.transform.position.x-destinationPoint.z<2)
//останавливаешь анимацию или чем там является двжение по навигационной карте
}
не?
void OnCollisionEnter(Collision info)
{
if (info.collider.tag=="unit"&&gameObject.transform.position.x-destinationPoint.x<2&&gameObject.transform.position.z-destinationPoint.z<2)
//останавливаешь анимацию или чем там является двжение по навигационной карте
}
не?
не дохуя, если у тебя 6к на скалу и 30к на пещеру в ней с БАХАТОЙ ОБСТАНОВКОЙ
дохуя, ало. про ретопологию не слыхал?
добавляй рандомную величину к координатам вектора
Как научить несколько скриптов "дружить" друг с другом? Т.е. как сделать систему взаимодействия между скриптами?
Есть у меня, например, скрипт для интерфейса и скрипт для ударов. И из скрипта ударов я хочу вызывать метод из скрипта UI.
Как сделать взаимодействие между этими скриптами?
Нарыл статью, но в примеры ничего по существу не дают, что можно было бы использовать.
https://habrahabr.ru/post/212055/
Ещё и в комментариях назвали эти методы в хуй не нужными и сложными.
Так как быть?
Запилил пока через редактор юнити, но мне кажется, что это ну не очень хороший способ и вообще не труЪ.
добавьте уже в шапку, что js дрисня не нужна
Серьезно? Выглядит, по скринам, очень неплохо. Сейчас попробую поставить на мобилку.
GetComponent<Renderer>().material.color = Color.Lerp(...
Каждый шаг она обращается к GetComponent, поэтому хотел сделать ссылку и далее уже использовать типа этого:
Color c = GetComponent<Renderer>().material.color
c = Color.Lerp(...
Но в таком виде код не работает, будто ссылка не ставится
пикрелейтед - честно спизженый код движения
Тысячу лоль тебе, анон.
Краска странно слезает
Вообще хуй знает, мимопроходил. Но, если подумать логически, вроде как можно сериализовать все игровые объекты и сохранить их, и, соответственно, десериализовать после загрузки.
Типа того. Но ты, это, особо к моим словам не прислушивайся, я не слишком умею в геймдев.
Спасибо, бро, всё работает.
Ебнутый ты пиздопидор.
Если хочешь от юнити барской гибкости работы с текстурами, будь добр рисовать в квадратах кратным двойке. Нет, ты конечно же можешь прямоугольниками ебашить, но когда к тебе придет продюссер и скажет надо делать порт на иос -- будь добр залупы отведать на рендеринге, т.к. PowerVR не умеет в прямоугольники и ты хуеву тучу видеопамяти проебланищь.
При набивке спрайтов в атлас, лишняя альфа будет игнориться .
Нормальные гейдевелоперы ебутся со своими движками, у нас же тут юнити.
Гугли Observer.
Чувак, Color -- это структура, она value type.
Реализуй МОДЕЛЬ у своих объектов.
И сохраняй именно модели объектов в свой сейв. Почитай в общем про MVC, если не понимаешь, что такое модель.
мимо-ПРОбыдло
Я вот хочу создать геймобжект и в него скопировать префаб, что бы получить все компоненты, которые я понапихал в префаб.
Может, как то можно легче всё это запилить?
Сам наговнокодил следующее:
showDammage = new GameObject("showDammage");
showDammage = UnityEditor.AssetDatabase.LoadAssetAtPath("FontPrefab.prefab", typeof(GameObject)) as GameObject;
И конечно же обосрался - нихуя не копируется.
Не все компоненты можно скопировать в скрипте. Я бы на твоём месте инстанциировал ГО из префаба, и менял координаты или что нибудь типа того.
>>219308
Попробовал так и опять соснул. Ругается, что инстациируемый объект = null
showDammage = Instantiate(UnityEditor.AssetDatabase.LoadAssetAtPath("FontPrefab.prefab", typeof(GameObject)) as GameObject);
Насчёт конструктора с параметрами. Хуйзнает, как там внутри самого редактора, но в скриптах у меня точно нет.
Насколько я помню, инстанциировать можно то, что находится в папке Prefabs корне проекта. И при этом вроде не обязательно писать всю ту ебалу, которую ты пишешь в Instantiate. Можно обойтись просто %ссылка на твой ГО% = Instantiate(%имя префаба, находящегося в папке Prefabs%)
>Нормальные гейдевелоперы ебутся со своими движками
Фух.. я уже было подумал, что ты игры делаешь. Спасибо что снял эти опасения.
В общем решил проблему.
В классе создал:
public GameObject fontPrefab;
В редакторе натянул свой префаб на поле в скрипте.
Далее так да, через инстациирование:
showDammage = new GameObject("showDammage");
showDammage = Instantiate(fontPrefab);
Спасибо за помощь! На шаг ближе к миллиарду долларов с сего шедевра.
Привет, анчоусы. Объясните тупому, который в программировании полный ноль. Что легче в освоение для создания сайдскролл шутера Unity или Construct 2, в плане программирования?
Констракт гораздо проще, но он не полноценный движок, слишком ограничен своими шаблонами, лучше сразу учиться программировать, например в юнити если туго пойдет освоение c# или java, то постигай основы на геймейкере, , если и с гейммейкером туго, тогда постигай в констракте.
Уже не надо. Я не успел.
Можно так сделать: при щелчке, для каждого юнита создается мнимая точка, которая отличается от реальной координаты клика на величину равную его порядковому номеру в группе + его размеры. Как-то так. Будет похоже на то как пехота в ск2 движется.
Можно ли привязать питон к юнити? Хорошо могу в питон, а в остальные языки хуже могу.
Научи меня, пожалуйста:
Есть вектор (Vector3 Q) в пространстве.
Есть объект (transform T) в пространстве.
Как получить вектор V, получающийся если рассматривать вектор Q не относительно World координат, а относительно оси координат объекта T (т.е. где вместо Vector3.up будет T.up и т.д.)?
Наркоман, ты в глаза ебешься?
AssetDatabase работает ТОЛЬКО в редакторе.
Делай так:
public GameObject m_MyPrefab; // в редакторе появится поле в которое кинешь префаб
void Start()
{
GameObject container = new GameObject("myContainer");
GameObject prefabInstance = Instantiate(m_MyPrefab);
prefabInstance.transform.parent = container.transform;
}
пишу с мобилы, могу накосячить
мимоПРОбыдло
Кидай код, дальше будем поглядеть.
Есть простейший скрипт движения квадратика по экрану с 2 анимациями (move и idle).
Как сделать так, чтобы юнити понимала, что квадратик стоит на месте и включала ему idle анимацию? А то все эти скрипты с else if выглядят как уебанство какое-то.
Пишешь 2 метода.
void StartMove()
{
animator.SetBool("Moving", true);
// код движения объекта
}
void StopMove()
{
animator.SetBool("Moving", false);
}
А вообще, вы дауны тупые, пилите блядь код, а то нихуя не понятно, что вы там творите.
мимоПробыдло, которое не дочитало тред
Там модельки простые, а вот текстуры и движкозависимые фичи 10/10.
Графон можно еще и лучше. Но придется ебаться с шейдорами и текстурами. Однако ты не думай, что дайсы не ебались.
Это копия, сохраненная 18 марта 2016 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.