24 декабря Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!
Котоны, там от майкрасофта новая студия с поддержкой расширений, бесплатная. Можно в юнити кодить. Ну комьюнити едишан. На случай если кто не в курсе. http://go.microsoft.com/fwlink/?LinkId=518338
>>140908 бампану. чем больше роюсь, тем меньше нахожу адекватных решений. а я всего-то хочу сохранять массив объектов который бы мог сохранять ссылки. друг на друга, или на класс с массивом.
Кароч, почаны, план такой: шляпа падает на персонажа, персонаж становится парентом для этой шляпы. Я намутил такой вот скриптец, но он не работает. [code] #pragma strict
Посоны, до диез (C#). Есть два класса, один наследуется от другого. Класс-потомок примотан изолентой к GameObject'у. Так вот, как включить в Editor'е унаследованные родительские поля? Я хочу редактировать их прямо там, а потом сохронять в префабе.
Классы в разных файлах жи есть.
[code] public class Unlockable : MonoBehaviour { int minScore = 0; int cost = 0; };
public class Frame : Unlockable { public Sprite sprite; public float speed; } [/code]
>>140966 Если кидаешь скрипт на шляпу то парентом становится зашляпленный.
function OnTrigger2D(other : Collider2D)//other - это с кем столкнулась шляпа { if(other.gameObject.CompareTag("Player")) { other.transform.parent = transform; //яигрок.ктомнехозяин = шляпа }
Алсо, как в юнити редактировать подклассы? У меня есть public class Stage : MonoBehaviour { Frame[] frames; } public class Frame { Sprite sprite; float speed; }
Создаю объект, кидаю на него Stage, но фреймы можно только выбирать. Хотелось бы прямо в стейдже проставить спрайты и скорость.
Алсо хочу спросить, почему всё такое bouncy? Объекты проходят один сквозь другой до середины, хотя везде стоят твёрдые коллайдеры, такого же не должно быть по идее. И шляпа проходит через персонажа, как-то погружается в него, ныряет, хотя и там и там стоят коллайдеры + в опциях джоинта указано, мол коллайдеры коллайдируются. Что с этим делать? Мне нужны твёрдые объекты, а не это мягкотелое говно. видеорилейтед http://youtu.be/aINvJtj51c0
Чуваки. Такая беда есть фигура которую вращаем вокруг родителя:
block.transform.parent = pivot.transform; pivot.transform.localEulerAngles = new Vector3(0,0, 90);
Все вращается заебца, угол устанавливается как надо, а вот координаты вращаемой фигуры, те которые в юнитах нихуя не меняются. Как их поменять то? А то получается фактически фигура в одном месте, а координаты ее хуй пойми где
Потсоны, делаю дженерик шутан. Хочу зделоть прицел, суть такова: берется пушечка, по направлению из нее луч, если physics.raycast !=0, то в место попадания перемещается спрайт прицела. Но как именно отправить луч именно из пушечки и по направлению? Разъясните популярно, пожалуйста.
>>141233 По идее, нужно взять координаты пушечки и ее направление, из этого кинуть луч, взять координаты места попадания и изменить координаты спрайта на эти.
Наверное, в юнити-среде это уже платина, но как захуярить нормальное небо? Cкайбокс я пока что отложил в сторону. Прихуярил скайдом. Но из-за искажений fov и развёртки явно видно, что "небо" - пластиковая хуёвина над головой. При этом, меня не устраивает ни один тип развёртки. Не выглядит эта хуйня, как небо. Есть ещё вариант забить хуй на скайбоксы и -домы, сделать светлоголубой общий фон и несколько мешей с ебучими облаками. Это, как минимум, смотрится объёмно, а не как плоская крышка гроба. В общем, жажду советов годных.
>>141315 Что в твоем понимании нормальное небо? Дали ему скайбокс - нинравится, дали ему скайдом - не хочу, крышка гроба. Хочу делать облака мешами - будет риалистично. Охуеть просто. Ты понимаешь что ты поехавший?
Хитрый шейдер на спрайты облаков тогда уж прикрути.
>>141325 >Что в твоем понимании нормальное небо? Эта хуйня не должна выдавать, что является ебучим мешем на самом деле, чтобы это не был ебучий небесный свод, до которого чуть ли не допрыгнуть можно. Ебался со смешиванием трёх текстур по маске прозрачности + два канала развёртки, но я слишком мало знаю о ебучих шейдорах и такое чувство, что опять уебу три дня на десять строк кода. Тяжела судьба кирилла.
>Хитрый шейдер на спрайты облаков тогда уж прикрути. Альфа бленд? В душе не ебу, что там можно хитрого прикрутить. Просто мне показалось, что несколько низких, более тёмных облаков будут создавать охуенную перспективу и объём. Может, конечно, и хуй забью на это всё. Блядь, я слишком много ругаюсь
>>141330 >Эта хуйня не должна выдавать, что является ебучим мешем на самом деле, чтобы это не был ебучий небесный свод, до которого чуть ли не допрыгнуть можно. Прикручиваешь этой хуйне движение за твоим персонажем и фиксируешь расстояние по y до него: transform.position.y = player.transform.position.y + 50;
>>141335 >Прикручиваешь этой хуйне движение за твоим персонажем За это спасибо, только те же искажения перспективы видны даже без движения, просто бошкой покрутил и всё, видна крышка. Как сделать человеческий парралакс хуй его знает, так что натыкаю мешей. Благо, на полигонаж более менее похуй. Смешивать дохуя текстур оказалось идеей хуёвой, на пике видно. >Если уплывает за пределы видимости камеры - создаешь с противоположной стороны новое облако, и все епты. Вот это не до конца понял. Код-то для скайдома спасибо, кстати, но я в код более-менее могу, а пишешь про облака.
Кто-нибудь может дать/написать мне пример скрипта, где автоматически добавляется джоинт(любой) с connectedBody. Сам джоинт я добавить могу, но не имею ни малейшего понятия, как добавлять connectedBody. Гугл не сказал ровным счётом нихуя, так же, как и официальная документация юнити.
var otherBody:Rigidbody2D; gameObject.AddComponent("DistanceJoint2D");
>>141335 Ну охуеть теперь. Подпрыгнул - облачка подпрыгнули вместе с тобой. Реалистичность во все поля. Ахуеваю с вас, кириллы.
>>141330 Ну вообще - я тоже хз что там можно прикрутить шейдерами. Но мельком где-то видал ассеты, в которых несколько спрайтов облаков, назначенные горизонтальные на билборды, один за другим. Каждый имел анимацию - тупо текстурка двигалась туда-сюда, можно шейдером двигать (можно оффсетом текстурки) - это типа одно облако. Тут главное подогнать текстурки красиво, и придумать анимацию - как что и в какой степени смещается. Затем всю эту группу тоже смещаешь - это типа движение облаков по небу.
>>141370 А вот ты уже заебал даже меня своими джоинтами, сука. Как ни зайду - он тут со своими джоинтами плачется. Коннектед боди ему нужен, скрипт ему написать, охуеть просто. Почитай справку уже что-ли, посмотри видосики, чего ты такой тупой.
>>141370 >нихуя, так же, как и официальная документация юнити Аутист ебаный, набираешь connectedBody в разделе Scripting API и куришь пример с джоинтом.
>>141371 >Подпрыгнул - облачка подпрыгнули вместе с тобой. Реалистичность во все поля Ты зря смеёшься. Мне очень нравится небо скурима, а там именно такая херня. Огромный скайдом, до которого не допрыгнуть даже с tcl.
>Но мельком где-то видал ассеты, в которых несколько спрайтов облаков, назначенные горизонтальные на билборды, один за другим. Ну я вон чуть выше прихуярил таким образом на скайдом текстуры. А сами облака так делать не хочу, террейн не плоский, билборды будут не очень смотреться. Кстати, кто в курсе, как генерятся туманности в space engine? Очень красиво и именно то, что надо - они не выглядят, как меш. Подозреваю 3d текстуры, уж больно пиздато смотрится.
А есть ли какой-нибудь пошаговый туториал для ну совсем конченых аутистов? Может, какое-нибудь "юнити для чайников"? Анон, я полез на официальный сайт за уроками, и не смог.
>>141373 >>141371 >Почитай справку уже что-ли, посмотри видосики, чего ты такой тупой. Я написал, что не нашёл нихуя. В справке только var connectedBody: Rigidbody2D;. Ну прихуярил я его, в эдиторе перетащил нужный объект в скрипт. А при запуске пикрелейтед. В гугле/ютубе все эти джоинты через эдитор спокойно хуярят, а мне это не подходит. Да, не умею я в код, нуфак я, окей, но вместо того, чтобы игнорить меня, могли бы помочь. Корона не упадёт, если лишнюю строчку кода нуфагу напишете. Плюс к тому же, очевидно, что я съебу сразу же, а не буду здесь дальше эту хуйню разводить. Если бы я сам мог найти инфу, то я бы тут и не спрашивал, не надо думать, что я не пытался всё тщательно загуглить, прежде чем сюда идти. Как будто мне самому приятно у злых и агрессивных питурдов помощи просить.
>>141412 Дело в том, что если ты не можешь сделать такую простую вещь - тебе никакая помощь и подсказки не поможгут.
Ты так и будешь бегать по форумам и просить подсказать каждую мелочь. Знаю я таких пидорков. Одному я как-то помогал по доброте душевной в скайпике. Так он меня доебал каждую мелкую хуйню спрашивать. А я у мамы добряк, не могу человека послать просто так сразу.
>>141421 блять, до этого же как-то справлялся. У меня игра уже почти закончена, осталось только это говно прикрутить и всё. Я сейчас уже десятую страницу гугла скроллю, нихуя нет нигде.
>>141422 connectedBody у джоинта это Rigidbody2d. Берешь нужный геймобъект любым доступным тебе способом и его ригидбоди пихаешь в свое connectedBody, джоинт.connectedBody = объект.rigidbody2d;
Что там в новом гуе, кроме "удобства разработки"? Дракулы-то хоть экономятся? Начал хуярить хуй на старом апи, пока сижу на 4.5, дк до самой жопы растут. С другой стороны, их один хуй дохуя и затыка нет.
>>141381 >Ex Machina roguelike с физикой spintires Лол. Застрял в говнах, вокруг орды зомбарей.
Господа. Расскажу небольшую историю. Сейчас работаем над мобильной игрушкой, которую уже почти допилили. И вроде все хорошо, только одно но - она лагает просто ппц. И буквально вчера я открыл для себя страшную вещь. Нельзя использовать GameObject.Find() и Instantiate. Осознав это, я быстренько набросал свой файндер и пул. И знаете, как ни странно, это сработало. Я знаю, что все про это уже давно в курсе, но для меня это было откровением (ибо файнд юзал почти везде).
Посоны, здесь кто-нибудь теребил Шейдер Форж? Не понимаю, как в нём реализовать ползунок для регулировки shininess спекюлара. У меня вот так, но оно не работает как надо. Я хочу, чтобы регулировалось как в стандартных шейдерах.
Сейчас проявился досадный глюк - если нажать кнопку "открыть шейдер в Шейдер Форж", то все объекты сцены у которых стандартные шейдеры, при включённом свету становятся затемнёнными. Проходит, если закрыть-открыть Юнь.
Юнити-тред, помоги. У меня есть float[], цифры в котором служат для указания шанса с которым может выпасть индекс этогого веса. Я хочу int[] на выходе размер которого я предварительно указываю. Как можно похитрей написать?
Дорогие юнитигоспода, поясните мне за LineRenderer. Можно ли заставить это говно хотя бы рисовать плавные линии? В идеале заставить оставлять пикрелейтед.
>>141733 Хоть какой-то пример можешь привести, когда это может привести к поломке?
И сходу вопрос. Как вы боретесь с рябью на cutoff шейдорах? Транспарент не рябит, но там проблемы с з-буфером. В уе4 вопрос решили, долго не думая - просто замываливают раз в пять сильнее всего остального, но на кого мне потом ссать, когда в игре будет блюр на блюре и дофом погоняет?
>>141844 Ты видать шейдеры по хардкору не писал. Занулить пару каналов - обычное дело. Вычесть желтый цвет для этого - тоже. Можно еще clamp дать. А тут охуение - я вычитаю не единицу, а какой-то nice color.
>>141845 Ты прав, не писал. Как-то не подумал, что у тебя там единицы и найс колоры. Себе так хуярил >o.color.a = v.color.r; когда канал нужен был. Хотя трёх всегда хватало. В принципе, согласен. В редких случаях может быть неприятно.
>>141844 >ранспарент не рябит, но там проблемы с з-буфером. В уе4 вопрос решили, долго не думая
Как раз таки думая много и долго. И еще тестируя. Попробуй без блюра убрать рябь, и чтобы при этом тормоза не повылазили на high end картах при графоне уровне slender.
>>141844 Например ты пишешь шейдор, который цвет маски подменяет на призвольный цвет. Это может пригодится в стратежках у которых надо красить наплечники урков в цвет игрока.
И тут внезапно художник решил использовать для маски желтый цвет т.к. все простые цвета уже заняты. Погромист с чистой совестью зашлет в шейдер пару параметров (MаskColor = Yellow, PlayerColor = SomeColor) и словит глюк с покраской юнитов т.к. проверка на совпадение сработает неверно.
FinalUrcColor = tex2d(VertexInput.UV); if (VertexInput.Color == MaskColor) { // красим в цвeт игрока FinalUrcColor = PlayerColor }
Пример с потолка, но так может произойти с любой условной отрисовкой по цветовой маске.
Возможно вопрос уже был, тогда укажите ссылку и обоссыте, только не бейте. Аноны, хочу UI на unity отделить от работы с сетокой, поэтому хочу держать на машине клиента отдельную сборку на .net которая общается с сервером, хранит какие-то данные и отвечает за их обновление. Вопрос: как организовать взаимодействие этой йобы с uinity? Были попытки просто ее подцепить как reference, но почему-то не вижу половины классов (сборка .net 4.5). Могу свою сборочку запускать отдельным процессом, но тогда встает вопрос: как проще организовать межпроцессное взаимодействие? Какие еще варианты есть?
>>141848 Пример на самом деле хуёвый, проще брать и умножать текстуру на нужный цвет, чем сначала убирать какой-то цвет, а потом запиливать новый. Но я уже согласился, что иногда это может и мешать.
>>141847 Да нихуя они не думали. В том же крае вместо блюра лёгкий дов и нихуя не рябит. Хотя и без него ряби нет. Наверное, у них просто рендер не через жопу.
>>141874 >В том же крае вместо блюра лёгкий дов и нихуя не рябит.
В крае рендер еще пижже, чем в уе, но почти в 2 раза тяжелее. Крайжн начиная с первой версии является "бенчмарком", ставящий на колени вообще все, кроме пары топовых моделей карт. Анрил немного "демократичнее" всегда был.
>>141879 >В крае рендер еще пижже, чем в уе, но почти в 2 раза тяжелее. Шта? Сравнивал уе 4.1 и край 3.5, нет возможности обновиться. Край с охуенным уровнем и всей пиздотой жрёт примерно столько же, сколько пустая сцена в уе4. Первая версия края-то, может, и бенчмарк, но только трёшка даже на иксящике заводится. В любом случае, кроме мыла у меня выбора не осталось - рябят ещё и тени, а я в дуже не ебу, где их редактировать и что с ними вообще можно сделать. Катаут материалы, кстати, охуенно заменяются на альфа блендед, избавляет от ряби и лесенок. Но в юнити у этой эболы проблемы с тенями.
>>141880 Что сказать-то хотел? Я ебусь с юнити, но смотрю, как сделали в других движках, чтобы побороть некоторые недуги.
Потребовалось добавить в Unity спрайт, постоянно повернутый к игроку. Как указать для него изображение с харда? (оно PNG, с прозрачным фоном) А то нигде не видна кнопка открытия инспектора текстур.
>>141885 >хули ты вообще с юнити связался? Да по той же причине, почему на винде сижу. Есть свои минусы, но при минусах остальной херни, лучше уж буду спермоблядком, чем пидором или красноглазым. Меж тем, край довольно сложный и много времени уходило на то, чтобы с ним совладать. В юнити всё делается просто, но хуевастый рендер пока что. В уе4 всё хуёво, зато рендер более-менее. Я же не поехавший сектант-культист, чтобы признавать всё, кроме одного движка, ебучей ересью.
>>141893 Ты просто с какими-то долбоебическими вопросами. Сделай свою либу для юнити и не еби людям мозг.
>>141935 Привет, поехавший. Создавай билборд, присваивай ему материал. В свойствах материала есть текстура. Ну ты понел.
>>141951 Cамое смешное, что разработка 4.6 и 5 ведётся параллельно и 5 могла выйти даже раньше 4.6. И, скорее всего, в них даже гуи апи различается, не говоря уже о всём остальном.
>>141959 А что тут смешного? Версия 4.x имеет обратную совместимость с ранее написанным кодом. Версия 5 уже будет с другим API и другими возможностями. По идее.
>>141965 Сегодня дрогнула рука и обновился до 5. Апи тоже обновилось, а эта умница-красавица сама заменяет устаревший код в скриптах, по нажатию спец.кнопки. И никаких obsolete
>Cколько весит, 1.5 гб? > пояснить можешь? Скачай уже с cиджиперсии, да посмотри.
А вообще, если всем устраивает - новый не нужен. Тем более сейчас там еще много багов. Плюс не знаю как себя покажет новый гуи на больших проектах с тучей динамичских интерфейсов.
Но мне пока норм. Понравилось таскать ассеты визуально его настраивать. Быстрее менюшки клепать можно, плюс опять же нет проблем с позиционированием, а раньше задалбывало писать методы расчитывющие размеры и положения кнопок для разных разрешений. А NGUI принципиально не юзал - не люблю сторонние решения от левых хуев.
>>142094 Анон, если тебя устраивает старый гуи, то раскрой невероятно тайную тайну. Как, блять, узнать порядок отрисовки окон? Перетаскиваю я такой предмет в окошко для перетаскивания предмета. if(rect.contains(event.current.mousePosition)) заебись знаю в какое окошко сую а тут хуяк и курсор над двумя возможными местами для сования. как узнать куда сунуть можно, а куда нельзя?
>>142106 >Скачай уже с cиджиперсии, да посмотри. Не могу, я и капчую-то с трудом, интернета не предвидится.
>плюс опять же нет проблем с позиционированием, Мне наоборот нравилось клепать хитрые изъебоны с делением на ноль.
>>142142 Где-то в недрах юнити это есть, но толком не допилили. Можно изъебнуться через гуи.тултип, потести его поведение с парой окон и всё поймёшь. Если же нужен именно порядок отрисовки, есть гуи.дептх. А если под мобилки пилишь - выключай нижние слои просто.
Уважаемые юнитигоспода, в особенности те, кто юзает свежеворованную пятую версию сего поделия. При переносе проекта помимо прочих глюков, появился один глюк, машинку, содержащую в себе вот такие вот конструкции (одна ось на колесо в качестве мотора, вторая на ведущую ось для поворота колеса), начало некисло так пидорасить. Если проще, через секунду после старта детали машинки оказывались в километре друг от друга. (иногда случалось другое - машинка появлялась вроде нормально, но развивающийся стремительно пидорасинг разрывал машинку на части через секунду)
После долгой еботы, глюк удалось минимизировать. Теперь машинку просто подкидывает через себя при старте, дальше все идет нормально. Если сделать кузов кинематиком и разморозить его через некоторое время после старта, то все норм.
Юнитигоспода, внимание, вопрос! Что за ебота? И как с ней бороться?
>>142363 Если юнити не в состоянии вывозить одну машинку о четырех колесах и шести осевых джоинтах, на что-то более продвинутое рассчитывать и не приходится. Я конечно понимаю, что все современные "физические" движки способны хорошо моделировать тоолько движение одного сферического коллайдера в вакууме без воздействия гравитации и все надо писать скриптами, но все же хочется сделать кое-что повеселее. В 4.6 кстати эта же машинка ездила нормально, только вот фиксированнй джоинт по степени фиксации напоминал сопли, разбавленные малафьей. Теперь же другая крайность, судя по всему.
>>142327 Лол, вроде решил проблему. Если копипастить этот узел и разворачивать его на 180 градусов, то пидорасит. Если загрузить из префаба и приделать, то нет. Пиздос какой-то. Ладно, не привыкать. Запомню этот ритуал.
>>142436 >С выходом пятёрки ценовая политика будет пересмотрена. Да и раз платят - значит стоит. Да не, цена в 1500$ меня вполне устраивает, просто я охуеваю от текущего курса, ведь вроде вот совсем недавно это было 45 тысяч рублей, а теперь вот почти в два раза дороже.
>You can also use unicode characters if you want to set the displayed text from scripting. The Javascript and C# compilers fully support Unicode based scripts. You have to save your scripts with UTF–16 encoding. Now you can add unicode characters to a string in your script and they will display as expected in UnityGUI, a GUIText, or a Text Mesh.
Анон, хочу сделать turn-based простенькую игру под мобилочки, с онлайн режимом (много игровых комнат, короткая сессия), со своим сервером. Сервер хочу иметь возможность держать на обычном хостинге (amazon, digitalocean, мб еще что, пока только разбираюсь), в идеале хочется сделать "по-хорошему", руками, на сокетах, с каким-нибудь java-сервером. Но вижу, что ".NET Socket Support" отключен под вероиды во фри версии. Что вообще можно сделать во фри версии под андроиды в плане нетворкинга? Я сравнении планов я вижу только "Access to Web Data through WWW Functions", то есть http-запросы. Больше никак иначе? Photon и прочие сервисы, которые не дают создать авторитарный сервер не на клиенте - не хотеть. Я понимаю что никому мою игру с 3.5 скачками взламывать не надо, но интересно сделать по нормальному. С другой стороны, есть "Native Code Plugins Support", но держать сокет на нем это совсем костыльно. Мне просто нужны советы, какие технологии, хостинги и прочее можно использовать под мою задачу (потому что с сервер-сайдом под игры и хостингами я по сути не работал и просто не знаю из чего можно выбирать), разобраться дальше и закодить - не проблема.
>>142513 В догонку. Если все же передавать ход игрока через http-запрос (в юнити же можно post-запрос отправить таким методом? Ну или хотя бы get) с получением json'ов, на чем писать сервер, чтобы: - можно было захостить на каком-нибудь digitalocean, то есть фактически на виртуалке с убунтой, например. - сервер мог держать состояние текущих игр в оперативке, а не дергал постоянно БД. Потеря 3.5 игр при ребуте - пока не страшно. - чтобы либо сервер сам обрабатывал запросы последовательно, либо была возможность лочить одновременный доступ к данным с отдельных потоков
А давно 4.6 то вышел, а то я как то прослоупочил? Есть годные гайды под юнити гуй с аспектом в сторону мобильничков, а то там пиздосная ебистика с их разнодпи и разноэкранами?
>>142513 А чем тебя http запрос не устраивает для тюрн бейса-то? Сделай лонг полинг и все, в любой момент тебе с сервера может инфа прийти (так в вк, жмейл поячте обновления сделаны).
>>142515 >(в юнити же можно post-запрос Есть, WWWForm >- сервер мог держать состояние текущих игр в оперативке, а не дергал постоянно БД Мемкеш + пхп. Мемкеш - key-value хранилище, сериализация автоматическая, можешь хоть экземпляры классов там хранить. Для пхп - любой простенький фреймворк или библиотека с маршрутиризацией прикреяченной. >- чтобы либо сервер сам обрабатывал запросы последовательно Да нафиг тебе мудхаться с этим, php+memcached, все. Ну и база, конечно. Если хочешь "средний" фреймворк, то обрати внимание на kohana, в инетах даже супер подробный русский мануал валялся. 2дмид.
это будет сложно объяснить, но еще сложнее понять, но я постараюсь.
if (block.gameObject.name == "red") { red = true; renderer.material.color = red_color; } if (block.gameObject.name == "yellow") { yellow = true; renderer.material.color = yellow_color; }
if (block.gameObject.name == "blue") { blue = true; renderer.material.color = blue_color; } if (block.gameObject.name == "red" && blue == true) { blue = true; renderer.material.color = blue_color; }
к примеру я стукнул по предмету blue и переменная blue стала true. теперь я хочу еще раз изменить цвет, то есть blue + красный. я пытаюсь сделать это так, чтобы к примеру теперь уже красный + синий = фиолетовый
if (block.gameObject.name == "red" && blue == true) { purple= true; renderer.material.color = purple_color; }
НО это работает не верно! Нужно, чтобы первая проверка if не проверялась, если последняя проверка верна, то есть если blue == true, то первое if не выполнялось, а получается, что оно выполняется и перебивает последнее, а если не равно.
полный пиздец, я пробовал и через else, и if в if'e делать, гавно какое-то получается.
ЛОГИКА СКРИПТА ТАКОВА: тыкаю на красный = красный теперь красный = правда. тыкаю по синему, он видит, что красный = правда и перекрашивает в фиолетовый, если синий = false, то он его так же в красный красит.
>>142680 >renderer.material.color Нахера тебе столько проверок? Можно задать аналитически же.
Делай так: тыкаю на красный: если (цвет.красный = 255) цвет.красный = 0 иначе цвет.красный = 255 тыкаю по синему: если (цвет.синий = 255) цвет.синий = 0 иначе цвет.синий = 255 В итоге получаешь фиолетовый.
Если тебе нужно узнать какой цвет текстом введи метод уровня если цвет[0,0,0] = "чорнный"; цвет[255,0,0] = "красный" цвет[255,255,0] = "фиолетовый" и т.д. но лучше заведи эталоны и сравнивай с ними покомпонентно.
У меня дежавю от вопроса - кажется кто-то уже делал игру про перекраску шаров для прохождения ворот лабиринта.
Мой вопрос: дана поскость через три точки. Найти проекцию на эту плоскость для любой другой произвольной точки.
>>142668 Да, в принципе все ок. Тут просто вопрос стоит на чем это делать, потому что я таким не разу не занимался, просто не знаю какую технологию выбрать. Про то что есть такая вещь как лонг полинг я вообще не вспомнил до твоего поста, спасибо. >>142669 >WWWForm Да, уже сам нашел. >мемкеш+пхп / кохана Понял, буду смотреть, спасибо. >библиотека с маршрутиризацией Что под маршрутизацией понимается? Это как в каком-нибудь асп.нете по контроллерам распределение запросов и подобное?
>>142686 Бля, нехуя не понял. Цвета я нормально настроил в Inspectore. Мне нужно, чтобы if'ы между собой нормально работали. То есть если я перекрасил в синий, потом жму на красный, получается фиолетовый, но потом, когда опять на красный, то красный, так как purple = false и должен выполняться первый if, я хз, это сложно объяснить.
да, я делал, забил потом,щас вернулся, вчера только код работал, после установки юнити 5 всё наебнулось, хз почему. работало по обычной схеме.
if (block.gameObject.name == "red" && blue == true) { purple = true; renderer.material.color = purple_color; }
то есть когда перекрашиваю, он перекрашивался, а сейчас тупо сразу в красный(не красит вообще в фиолетовый), либо потом с фиолетового(или любого другого) опять в красный не могу.
>>142691 Анон правильно тебе говорит. Почти. При клике на цвет смотришь, если этот цвет (красный/зеленый/синий, естественно) 0 - ставишь в 255. Если этот цвет уже и так 255 - обнуляешь все остальные цвета, оставляешь только этот.
if (block.gameObject.name == "red") { if(red == 0) { red = 255; renderer.material.color = red_color; } if(purple == 255) ТУТ ПРОБЛЕМА, ЭТОТ ЦВЕТ ПОЛУЧАЕТСЯ ПРИ СМЕШЕНИЕ, Я ОБНОВЛЯЮ ВСЕ ЦВЕТА, И ТУТ СРАЗУ ЖЕ НАЧИНАЕТ ВЫПОЛНЯТЬСЯ IF СВЕРХУ, RED == 0 И СТАНОВИТСЯ КРАСНЫМ, МАТЬ ЕГО!!!! { blue = 0; purple = 0; red = 255; renderer.material.color = red_color; } if(blue == 0) { red = 255; renderer.material.color = red_color; } if(blue == 255) { red = 255; purple = 255; renderer.material.color = purple_color; } }
Может я скорее всего не так понял 255 этот, пытался менять цвет через renderer.material.color = hexColor(255, 255, 255, 255); и через renderer.material.color = ConvertColor(255, 0, 0, 25); и оба варианта выдают ошибку. блять, я вахуе, такой элементарный код, работал только вчера, а сейчас какой-то пиздец настал.
>>142700 [CODE]if (pressedRed) { if (red == 0) { // Добавляем красный к текущему цвету red = 1; } else { // Делаем чисто красным green = 0; blue = 0; } }[/CODE] И аналогично с синим и зеленым. В конце color = new Color(red, green, blue); http://docs.unity3d.com/ScriptReference/Color-ctor.html Таким образом ты можешь сделать все возможные комбинации цветов (3 чистых + 3 смешанных + белый), кроме черного, который [0, 0, 0]. Если нужен черный, то вставь в else: [CODE]if (green == 0 && blue == 0) red = 0; // если только этот цвет был включен - обнуляем его, оставляя черный[/CODE]
Анончик, подскажи, какие халявные плагины-шмагины есть для удобного построения 2D-платформера в Unity. Насколько я понял из одновечернего изучения, в стандартных средствах нет возможности делать тайлмапы, например. Может, еще что-то стоит поискать сразу? Графика и анимация для игры делается в другой проге, импорт в Юнити уже налажен. Осталось дело за построением уровней и игровой логикой, тут я пока ноль, поэтому прошу совета.
>>142701 да у меня проблема не со сменой цвета, я могу их в инспекторе забить, тем более я попробовал это сделать, менял ргб на оранжевый, а он всё равно был ярко желтый.
>>142707 короче я сделал, вроде, ну пока работает. через ontriggerexit отчищаю переменные, если интересно, можете тут глянуть. http://pastebin.com/XW487pkN
Тысяча ифов это конечно признак крутого стиля у ПХП макак, но для сложных условий есть таблицы. Программа тогда сводится всего к одному ифу.
Также не ясно зачем тебе (int red = 0) и еще пять таких же условий - блжад проверяй! отдельные! компоненты текущего цвета. Или еби их через акссесоры если надо проверить сразу два компонента.
Хочу запилить небольшие трешевые покатушки, но почему-то телега переворачивается на скорости. Кто подскажет, как лечить? Вес 1500, вес колеса 2, центр массы вгоняю под почву хуй знает куда - похуй.
>>142801 Спасибо, но не помогло. Реально с физоном пизда какая-то. Корыто на месте отплясывает. Никогда не пилил гоночки на юнити и, походу, нихуя не судьба.
>>142817 Да заебёт потом в чужом коде ковыряться. Короче вся хуйня из-за motorTorque, буквально 10 делаю и пиздос. Очевидно, что с физоном нужно быть очень острожным и не ебаться об него. Лучше уж велосити.
>>142820 Массу колес сделай пропорциональной массе машины. Че? Реализм? Где то колеса по 2 кг видел? Где ты видел машины без подвески? Разгони телегу до 40км\ч ирл и при резком повороте она ебнется. Короче, ебал мамку твою.
>>142829 > Че? Реализм? Где то колеса по 2 кг видел? Колёса по 10 кг вообще не крутятся. Больший крутящий момент? Корыто улетает нахуй сразу же. С переворотом уже похуй, мне кажется, что надо дрочить скрипты, чтобы погасить хуёвость вил колайдеров. Просто подбрасываю корыто без скриптов - оно начинает дрюкаться и улетает нахуй.
>>142889 Википидоры пишут, что пятая вышла ещё в марте. Неужели до сих пор не могут допилить? Похоже, сейчас весь early access так делается: вот тебе неработоспособное говно, коим оно будет оставаться ещё много лет, а ты плати деньги прямо сразу, будет на 5 рублей дешевле.
Ананасы, подскажите как залезть из одного скрипта за переменной в другой скрипт у которого классы внутри класса? Юнити предлагает Class1.Class2.var, но таким макаром оно выводит ошибку error CS0120: An object reference is required to access non-static member.
Юнити-тред. А что, я не могу добавлять Wind Zone через скрипты? Такого обжекта мне не дают сделать. Как мне поля то менять если захочу сделать ветер меняющимся?
>>143120 http://diditwith.net/2006/10/05/PerformanceOfForeachVsListForEach.aspx В юнити наверняка такая же фигня, возможно разброс более сильный, но не глупые люди там сидят, чтобы совсем что-то ужасное с foreach натворить. Возьми да и проверь же. Необходимость зависит от относительного занимаемого времени. Где-то это может помочь, в основном - нет
>>143120 Иногда с foreach происходит упаковка-распаковка объектов на каждой итерации. Это довольно дорого.
foreach осуществляет доступ через итератор, в начале (в net'e <= 2.0) они были нетипизироваными и в каждой итерации было приведение objecta к фактическому типу обьекта. С типизироваными итераторами (<T>) это замутку вроде одолели, но есть исключение - это типы-значений. Суть в том, что если тип-значение реализует интерфес(в случе итератора IEnumerable), то доступ к нему осуществляется через объект интерфейса - тогда происходит одна лишная неявная упаковка-распаковка типа(Double->Enumerator->double) вместо(Double->double). В случае с прямым for можно от одной операции приведения типа избавится. пресказал напев Рабиновича
>>143123 Вот. Народец рекомендует во все тонкости не въезжать, а выкинуть лишний синтаксический сахарок и хреначить старыми добрыми форами, у которых все преборазования на виду.
Как сделать таймер в игру, привязанный к реальному времени? Т.е. как Real Racing 3 сорт оф. Т.е. я выдаю задачу игроку, на неё у него есть джва часа реального для доп. бонусов. Взял в 14 00, изволь до 16 00 сделать либо соснуть. Думал привязываться к часам, но игрок может их просто перевести. Еще думал делать запрос к серверу времени, но игрок может тупо вырубить инет. Что же делать? Курутина не подойдет, она приостановится при закрытии / сворачивании игры.
Сап, анон! Начал читать про юнити и сам пробовать, столкнулся с такой проблемой - Есть скрипт, в нем куча всего, управление героем, удаление объектов, поле с количеством "собранных" сердечек. Привязан к игровому объекту, ГГ игры. И он работает. Вношу изменения - например название поля, сохраняю его. Запускаю игру в юнити - поле называется по старому. Меняю имя удаляемого игрового объекта на несуществующее, опять сохраняю, запускаю игру в юнити - сердечки все равно собираются. Помогло выполнить reimport all, но это же неправильно каждый раз так делать? Где-то, видимо, я ошибся, но не пойму где.
При этом бывают случаи, когда все изменения применяются, например после reimport all я вернул значения обратно и сохранил, после запуска игры все было, как в скрипте.
Хочу сделать 2d сетку для пошаговой игры. Я правильно понимаю, что оптимальный способ это: Создать префаб тайла. Создать префаб карты. Написать код, который нахуячит мне экземпляров префабов тайла в карте рядом друг с другом. Стоит ли делать все объекты на карте дочерними от карты?
>>143205 >оптимальный способ это: Создать префаб тайла. Иди ты нахуй с такими оптимальными способами. Карта 10 на 10 квадратов уже даст 100 гамеобжектов, пускай даже если они ничего не делают. Оптимальный способ это генерить меш. Хуячишь квадратики, их вершинам даешь нужные текстуные координаты тайлов.
>>143217 Иди нахуй, дебил. Он говорит о проблеме с оптимизацией. Карта 100х100 уже дает 10к объектов, что дохуя для такой простой вещи как плоская земля из квадратиков.
>>143218 Ну вообще да, но работать с геймобъектами более просто, чем строить меш - не нужно разбираться с массивами вертексов, их uv-координатами и прочей херней.
>>143205 подход с кучей геймобжектов так себе. для простого отображения тайлов лучше все-же использовать один меш целиком. если хочешь чтобы они мигали там при наведении курсора, то да, проще использовать кучу мелких квадратиков. но это должны быть обжекты которые не активны если на них курсор не наведен и служить просто для клевых анимаций.
>>143251 Ага, и не вздумай прикручивать то что >>143232-хуй насоветовал >если хочешь чтобы они мигали там при наведении курсора, то да, проще использовать кучу мелких квадратиков. но это должны быть обжекты которые не активны если на них курсор не наведен и служить просто для клевых анимаций. Ох уж эти советы уровня гд, К сгенерированной мапе присобачишь один коллайдер, когда надо кидаешь луч Camera.main.ScreenPointToRay(Input.mousePosition); координаты пересечения с коллайдером есть, округляешь значения чтоб получить координаты самого квадрата, там и рождай или перемещай на это место хрень, символизирующую подсветку или курсор.
Парни, я начал работать с 2d. Поясните мне по хардкору, как обеспечить правильное отображение игры на экране(то есть чтобы все элементы помещались на экране и не "уходили за экран", пусть даже с уменьшением размеров) в разных этих ваших Android'ах(с iOS более менее понятно все). Как это максимально просто и эффективно реализовать?
>>143127 > Думал привязываться к часам, но игрок может их просто перевести. Еще думал делать запрос к серверу времени, но игрок может тупо вырубить инет Даже у кашпировского времепроблемы. Изволь соснуть. Сука, еще донат в свое говно пихнуть хочешься, аж трясет
>>143372 Тогда привязывать к постоянному онлайн и немедленно заваливать задачу, если игрок отключается. Хотя пытаться переиграть гипотетического игрока по-моему пустая трата времени.
>>143357 В юнити параметр size ортографической камеры = высота экрана в юнитах. По умолчанию 5. Соответственно можно высчитать ширину экрана в юнитах. Разрешение по высоте делим на 5 и получаем количество пикселей в 1 юните, теперь ширину экрана делим на полученное значение. И всё, можешь спокойно расставлять кнопки.
>>143382 Там можно оторваться, потому что вы не сможете выиграть игру, оторвавшись от нее. В тетрисе, чтобы не мухлевали, на паузе фигуры с экрана пропадают, этого оказывается достаточно.
Сап, юнитач, как сделать охуительный бэкгравунд, как на пикрилейтед? То бишь с небольшим засветлением посредине и затемнением по бокам? Мне придётся рисовать эти текстуры в пхотошопе или можно как-то побыстрее справиться в самом юнити? И ещё вопрос: как сделать относительно плавную смену бэкгравунда?
Собираюсь делать простенький 2д мультиплеерный платформер с прицеливанием курсором мыши. Думаю сервер взять на смартфоксе. Т.к. в серверном программировании я пхп-макака, и лишь в универе песал лабы на серверной яве, то хотелось бы не понаступать на грабли. Поэтому такой вопрос - как и когда отправлять на сервер данные о движении персонажа? Я так понимаю: 1 отправлять данные нужно не на каждом кадре, а не чаще раз 15 в секунду, для экономии. 2. отправлять только нажатие/отпускание клавиши 3.передавать координаты мыши, только если угол под которым "смотрит пушка игрока" смешается на определенный угол, скажем не меньше 10 градсов (проверял в ку3, там проиграывает анимация поворота пушки в руках в другого игрока только если он повернет мышкой на определенное значение, а не сразу). Интерполяция дял плавности. 4.Я читал немного про протоколы передачи данных по сокетам, и выяснил, что для игр используется какой-то шустрый протокол, но в котором нет проверки целостности, т.е. теоретически может потеряться какая-то часть данных, и на сервер персонаж будет все ещё идти, а наклиенте остановится - поэтому раз в секунду отправять для синхронизации координа персонажа, его вектор скорости, состояние клавишь ввода. 5. Опционально проверка игровой физики на сервере - т.е. на сервере запущу ещё один клиент юнити, на котором будет только проверка всей физики без графона, что бы наказывать потенциальных читеров. Какие есть поправки-предложения?
>>143511 Да хоть горшком назови, ты мне поясни, как сделать, чтобы на всех устроиствах одинаково отображалось мое поделие, пусть даже вытянуто, примерчик кинь
>>143513 Ты заебал. Юнити вписывет игру в высоту экрана. По высоте нихуя не обрезается при любом разрешениии, по ширине только. Растянуться могут только ГУИТекст если он не pixel perfect и ГУИТекстура если у нее не заданы параметы w и h. Уже бы давно взял и методом тыка выяснил, ты че блядь, боишься СЛОМАТЬ ПРОЦЕССОР? Разрешение в редакторе выставляй разное и смотри как всё выглядит.
>>143515 Парень, остынь, поясняю. Делал я игру под разрешение одно разрешение, все окей. Потом, запустил ее на экране по пропорциям таком же, но разрешение в джва раза больше и игру по ширине обрезало, то есть не было видно часть. Игра 2д, гуи как раз таки не похерило, только обрезало саму игру. ЧЯДНТ?
Чуваки, помогите нубу. У меня есть префаб игровой карты, представляющей собой плейн с присоединенным к нем скрипту и парой гуй-текстов в чилдренах.
Я пытаюсь добавить ее динамически в сцену (сишарп): [code]CardGraph newCardScript = GameObject newCard; newCard = Instantiate (CardPrefab.transform, transform.position, transform.rotation) as GameObject;[/code]
После этого я пытаюсь получить доступ к скриптовому компоненту CardGraph: [code]CardGraph newCardScript = (CardGraph)newCard.GetComponent (typeof(CardGraph));[/code] И юнька возвращает мне Null Refferrence. Я пробовал добавлять этот компонент к инстанцированному геймобжекту, но тогда чайлды работают неправильно. Что я делаю не так? Как правильно получить доступ к чилдренам и компонентам динамически созданного объекта?
>>143551 Апдейт Оказывается, инстанцированный геймобжект у меня null, что я выяснил нехитрым кодом на пикрилейтед. Это при том, что графически он отображается в игре нормально.
Кстати, как юнити относится к указателям? У меня, например, в отдельном классе перечислены юниты со всеми характеристиками, и мне надо какой-то конкретный юнит отобразить в виде карты. Нормально ли будет, если я сообщу карте указатель на данный юнит?
Кто шарит в фотоне? Расскажите, что это значит. Что значит OnPhotonSerializeView / stream.SendNext и прочее? Делаю по тутору иностранца, а русской инфы на эту тему найти не могу, буду благодарен.
Ребятки, это снова долбоеб с карточками. У меня в классе колоды есть список объектов класса Card — карточек. Теперь я создаю объект моно-бихевиор класса CardGraph, как на пике Мне нужно вновь созданному объекту, внутри которого есть публичная переменная типа Card (называется Unit) передать карточку, которую он будет отображать. Я пытаюсь сделать это линией на пкрлдт Компилятор кушает нормально, но когда я пытаюсь подтянуть данные о карте изнутри вновь созданного объекта CardGraph (класс на второй картинке), я получаю null. Скажите мне, какой я дурак, и как умные люди делают такие вещи проще.
>>143603 Ладно. 1. Отправляй столько сколько нужно. Чем динамичнее игра тем чаще. 15 раз в секунду весьма дохуя. 2. Да. Как то пилил танчики по типу Battle City с пересылкой только нажатия и отпускания клавиш без синхронизаций, в городской локалочке заебись работало, без лагов. 3. Координаты мыши можно не передавать, рассылай углы поворота башки вместе с синхронизацией позиции, например. 4. UDP называется, данные могут не достичь адресата или один пакет данных может обогнать второй. Придумай какой-нибуть костыль, как то: порядковый номер пакета данных, время пакета, или клиент шлет серву один и тот же пакет пока серв не подтвердит факт получения. 5. Хуй знает.
>>143603 Ну а что тебе ответить? Ты поясни сперва что за игра-то, что за модель взаимодействия. >Собираюсь делать простенький 2д мультиплеерный платформер Вот это ноль инфы. Факторов много разных. я вот сам написал собственный сервер для ммо с базой, логикой, синхроном и всякими ништяками. А потом понял что хостить мне его негде. Потому что клиент серверная модель с логикой на сервере подразумевает большую нагрузку на сам сервер и при увеличение онлайна придется докупать сервера пропорционально. Игра у меня сессионная как дота типа, игроки собрались в лобби и создали игру, серв им логику провайдит. Ну офк есть и опенворлд локации и хабы, не суть. В общем теперь переделываю все это. Сервер у меня будет только обеспечивать базу жанных и опенворлд места. А игровые сессии из нескольких игроков будут хоститься самими клиентами. Маршрутизацию, то есть поиск хостов будет провайдить сервер конечно. Плюс логика будет в клиенте, античит тоже в клиенте. Вся кор механика моей игры это кооператив, и клиенты просто сами друг друга проверяют и репортят. То есть если в пати попал хаккер остальные клиенты его зарепортят на сервер. Конечно есть атака когда 4 злоумышленника не дают играть нормальным людям. Но это скорее вандализм чем игровой хак, решается логами. Хз не вижу в этом проблемы, плюсов у такого подхода больше. И самое главное, уже после написания собственного сервера я узнал что в юнити есть встроенный. Разумеется для клиент серверной модели он непригоден, ибо закрытая коробка. Но вот для модели с хостами самое то. Мой сервер находит 5 игроков например, выбирает из них самого нормального по коннекту и говорит ему: хости, а остальным говорит: джоньтесь. Все довольны, и ненадо проплачивать неопределенное количество серверов.. Офк это все под капотом от юзеров.
Ты вот мне распиши подробнее про игру свою, я поясню дальше. Важен ли пинг, на столько рассчитан человек мильтик, кооп это или пвп, проходной или сессионный. В общем самое хорошее что может получиться это система хостов без всяких внешних серверов и поиска случайного партнера. Ну то есть кто-то захостил к нему присоеденились друзья из стима и в таком духе. Для такого мультиплеера в юнити есть все из коробки и ничего делать не надо, но конечно модель такая считается весьма устаревшей.
В целом ты все верно мыслишь, но есть просто тонна камней и разных НО зависящих от конкретной ситуации. А про проверку на сервер через приложение юнити. Теоретически ты можешь сам сервер использовать юнитевский то есть два проекта один клиент другой сервер, там все эти синхроны и тики из коробки. Но коробка закрытая и это печально. В плане если начнутся проблемы с перфомансом ничего будет не сделать. Я бы не рекомендовал такое в общем, сам не пробовал но уверен что минусов больше чем плюсов.
Там более в твоем случае физика-то явно бичевская, платформер же. Самому написать парс сцены и проверку чтобы игроки не прыгали через колайдеры вообще изи бризи. Физики по сути и нет в этом.
Пасаны, я не пойму чего-то. В юнити не может существовать экземпляр компонента без геймобъекта с этим компонентом? Я хочу сделать массив из компонентов и хранить его в памяти, но сами геймобъекты нафиг не нужны. Для этого загружаю префаб, беру с него ссылку на компонент, в цикле прохожусь, и присваиваю элементам массива этот компонент.
В итоге при обращении к элементу массива получаю Null. Как быть геймдевелопаны?
>>143624 Короче, класс — это как вид штуки, например, ХлебобулочноеИзделие. Объект, принадлежащий к классу — это сама штука, например, Хлебушек. Ключевое слово new создает новый объект заданного класса с помочью функции-конструктора, описанной в нем. то есть такой код: >ХлебобулочноеИзделие Булочка1 = new ХлебобулочноеИзделие; залезет в класс и запустит процедуру выпекания будочки, а результат назовет Булочка1. >You are trying to create a MonoBehaviour using the 'new' keyword. This is not allowed. MonoBehaviours can only be added using AddComponent(). Тут говорится, что ты пытаешься таким образом создать объект, наследующий класс MonoBehaviour. Юнити этого не любит, потому что для выпекания таких булочек у нее есть отдельная функция, поэтому, чтобы у тебя все работало хорошо, она просит тебя вместо такой строчки использовать метод AddComponent()
>>143620 Не может. В этом сама суть компонентно ориентированной модели. Ты чего-то не понимаешь в концептуальном плане. Но подробностей нет, поэтому не могу сказать что не так.
Не используй компоненты как объекты это разные вещи. Компонент это совокупность логики, операций над конкретным объектом и данных привязанных к конкретному объекту. Предназначен каждый компонент для определенной узкой задачи. Объект это совокупность компонентов, более глобальная сущность которая может хранить много разной даты и делать много разный операций дан собой, и даже взаимодействовать с другими объектами.
Если тебе нужны объекты в памяти но не на сцене -- используй объекты без рендеров. Это бест практис, повсеместно используются пустые объекты для менеждеров и прочих чисто архитектурных сущностей.
Есть еще класс ScriptableObject можно наследовать и запиливать объекты без привязки к ГО, обычно используют именно для хранения даты.
>>143620 Ты не компоненты получаешь, а ссылку на эти компоненты. Когда ты удаляешь геймобжект с компонентом LevelCell, то все ссылки, соответственно, указывают в никуда и становятся Null. Как вариант ты можешь создать геймобжект, на который наклеивать один и тот же компонент много раз и ссылку на каждый конкретный компонент закладывать в свой массив двухмерный.
Карочи, вот я и пытался избежать создания множества объектов, а хотел наполнять массив только компонентами. Потому-что инстантиэйт и особенно удаление объектов - очень долго. На моей пекарне создание сетки 100х100 идет 1,5 секунды. Что вроде бы не критично - один раз на старте это делать, но бесит.
Пока оставил как есть, позже буду оптимизировать, если получится что-то годное.
Анриал пиратить довольно сложно. Имел возможность пользоваться как пиратской версией, так и лицензией. Могу сказать что лицензия на порядок стабильнее. Можно конечно собрать из исходников, и тогда всё будет нормально. Но это же надо собрать... > Я не шарю в С Во-первых там С++. Во-вторых, по факту он там почти не используется, а используется внутренний "язык" BlueprintAPI. Во всяком случае, блюпринтами можно реализовать всё, что теоретически делается на С++. Производительность ниже, но удовольствие компенсирует это, позволяя экономить на отдыхе.
>>143717 У унреала нет фри версии. Там есть студенческая, которую раздают преподаватели. Если сможешь доказать что ты преп - бери лицензий хоть до второго пришествия. Но самим студентам эпики ничего не дают.
В общем делаю кайнд-оф-2д-платформер для мобилочек. Встал вопрос о тач-управлении: нужно, чтобы персонаж шёл вправо, когда я касаюсь правой части экрана и наоборот. Казалось бы, всё просто, но я не хочу юзать олдскульные огромные скрипты, а хочу заюзать новомодный UI прямиком из 4.6. Нагуглил только 1 вариант - прихуячивать к ui.image евент триггер с двумя евентами: pointer down и pointer up и к ним соответствующие функции. Это всё, что можно сделать или есть варианты попроще, а то этот смотрится как-то неправильно? Алсо персонаж останавливается не сразу, а с задержкой, но я тестил только в эдиторе, так что хз, как будут дела обстоять на мобилке
>>143775 > Нагуглил только 1 вариант - прихуячивать к ui.image евент триггер с двумя евентами: pointer down и pointer up и к ним соответствующие функции Я так и сделал, вроде бы норм.
Такой вопрос. Можно ли уровнем света в сюрфейс шейдере управлять цветом и альфой? Попробовал LightingBasicDiffuse, но он задает цвет отражения кажись. Просвечиваю UI.Image в канвасе, канвас прикручен к камере.
Нужно в итоге переводить уровень света в альфа канал черного полотна. Т.е. где света нет прозрачности нет, и наоборот, где есть то пропорционально. Зачем? Чтобы не делать глобального освещения.
>>143831 Тебе нужно Size камеры менять в зависимости от экрана. Да и ты какую то хуйню нарисовал, в высоту картинка выглядит одинаково, если у тебя ортографическая камера. Параметр Size как раз высоту и задает. А тебя гг разный в высоту.
>>143834 И что? Size всегда отвечает за высоту в любой ориентации. Предположим ты верстаешь на 960:540, где 960 - высота. Тогда твой Size должен быть originalSize ((verstkaHeight/verstkaWidth) / (currentHeight/currentWidth)) не забудь работать с float Вроде бы так. И опять же, при сохранении пропорции и увелечении размеров твоя ортографическая камера должна выдавать одну и туже картинку.
>>143838 Так. Теперь понял за Size, но черт, я настолько идиот, что не понял, что мне блджд сделать чтобы нормально отображалось? Ну вот допустим, у меня отображается на (чисто ради примера) 800х600 все окей, а на 960х480 херится по краям и часть игры не видно. Как я понимаю, мне нужно запилить скрипт, который будет на старте проверять размер экрана и подгонять камеру? Но как, если Size зависит от высоты?(допустим я в альбомной ориентации) Как мне подогнать ширину, если Size высоту меняет? Ебаться с Viewport Rect? Конечно я уже заебал, но может есть статья/видео/готовый ассест?
>>143839 > 800х600 все окей, а на 960х480 Соотношение сторон 1,33 и 2, вот и пидорасит. Если менять с 800х600 на 1600х1200 то неспидорасит. > который будет на старте проверять размер экрана и подгонять камеру Size = originalSize Х ((verstkaHeight/verstkaWidth) / (currentHeight/currentWidth)) Текущие значения тащишь из камеры.
>>143841 Вот, я про то и говорю, что пидорасит. Пусть его там как шакала пережимает, но чтобы норм было, хз. Может стоит вообще делать с запасом сцену и сразу под максималки? Verstka/height/width это что в данном случае?
Посоны, помогач. Делаю обычную стенку кирпичную, пилю нормалмап в Crazybump, кидаю его на материал, и освещение инвертируется, блики получаются со стороны обратной тому, куда дирекшонал лайт светит. Как сделать чтобы было норм?
>>143775 Да, кстати, столкнулся с проблемой, персонаж двигается какое-то время, а потом останавливается, даже если я всё ещё нажимаю кнопку. public void Move(float dir) { movement = rigidbody2D.velocity; movement.x = dir maxSpeed; rigidbody2D.velocity = movement; }
Это скрипт, который вызывается на Pointer Down, ЧЯДНТ?
Алсо это хуйня действительно как-то топорно работает, может можно вообще без кнопок обойтись, если мне, допустим, влево-вправо ездить надо? Как-нибудь точку нажатия отслеживать и, если она правее середины экрана, то вправо катиться, и наоборот.
>>143892 Альфа в шейдоре не учитывается если в настройка девайса не поставлен рендер стейт альфы(хз есть в юнитекостыле доступ к нему или нет). А еще ее надо фигачить отдельным проходом для правильного смешивания.
>>143958 1. Тому что расчетов освещения на дохуя больше, освещать 1 объект всяко лучше чем несколько 2. Скорей всего буду делать не совсем черный по краям, а прозрачный где-нибудь на 80%
>>143958 К тому же дефолтные шейдеры освещения отражают свет, а не делают освещаемую поверхность прозрачной. Sprite-Diffuse дикая параша, которой светишь чуть больше чем надо и получаешь белое дерьмо вместо спрайта.
>>143968 >расчетов освещения на дохуя больше Маня, почитай-ка про производительность полупрозрачных объектов, и как сильно может упасть фпс, если выводить их в большом количество на экране одновременно. А у тебя судя по всему так и будет.
>Скорей всего буду делать не совсем черный Это аргумент, согласен.
Короче, запили маску с формой пятна от своего "фонарика", пихай ее в альфа-канал материала на объекте, делай рейкаст из светильника, вычисляй место попадания в объект, двигай uv маски, можно увеличивать скейл в зависимости от расстояния если нужно.
А вообще, все равно ты кирилл какой-то. Я не знаю что у тебя за задача и что у тебя за хеймплэй такой, но наверняка ее можно решить как-то по другому, не прибегая к таким извратам.
>>143971 > Короче, запили маску с формой пятна от своего "фонарика", пихай ее в альфа-канал материала на объекте, делай рейкаст из светильника, вычисляй место попадания в объект, двигай uv маски, можно увеличивать скейл в зависимости от расстояния если нужно. Примерно понял о чем ты. Но почему нельзя так: есть полупрозрачный спрайт черного цвета. Когда на него попадает свет, он нихуя не отражает, но сам становится прозрачным, а если не попадает, отображается как есть.
>>143978 > Ты не нашел способа передавать в шейдер переменную "количества света"? >>143786 Ну это не количество, а качество. Главное же есть свет или нет.
Попробовал побаловаться с finalcolor:functionName, но там тоже хуита получается.
Если у кого есть время, будьте так добры объяснить работу скрипта. [CODE]using UnityEngine; using System.Collections;
[System.Serializable] public class BendingSegment { public Transform firstTransform; public Transform lastTransform; public float thresholdAngleDifference = 0; public float bendingMultiplier = 0.6f; public float maxAngleDifference = 30; public float maxBendingAngle = 80; public float responsiveness = 5; internal float angleH; internal float angleV; internal Vector3 dirUp; internal Vector3 referenceLookDir; internal Vector3 referenceUpDir; internal int chainLength; internal Quaternion[] origRotations; }
[System.Serializable] public class NonAffectedJoints { public Transform joint; public float effect = 0; }
public class HeadLookController : MonoBehaviour {
public Transform rootNode; public BendingSegment[] segments; public NonAffectedJoints[] nonAffectedJoints; public Vector3 headLookVector = Vector3.forward; public Vector3 headUpVector = Vector3.up; public Vector3 target = Vector3.zero; public float effect = 1; public bool overrideAnimation = false;
segment.chainLength = 1; Transform t = segment.lastTransform; while (t != segment.firstTransform && t != t.root) { segment.chainLength++; t = t.parent; }
segment.origRotations = new Quaternion[segment.chainLength]; t = segment.lastTransform; for (int i=segment.chainLength-1; i>=0; i--) { segment.origRotations = t.localRotation; t = t.parent; } } }
void LateUpdate () { if (Time.deltaTime == 0) return;
// Remember initial directions of joints that should not be affected Vector3[] jointDirections = new Vector3[nonAffectedJoints.Length]; for (int i=0; i<nonAffectedJoints.Length; i++) { foreach (Transform child in nonAffectedJoints.joint) { jointDirections = child.position - nonAffectedJoints.joint.position; break; } }
// Handle each segment foreach (BendingSegment segment in segments) { Transform t = segment.lastTransform; if (overrideAnimation) { for (int i=segment.chainLength-1; i>=0; i--) { t.localRotation = segment.origRotations; t = t.parent; } }
// Desired look direction in world space Vector3 lookDirWorld = (target - segment.lastTransform.position).normalized;
// Desired look directions in neck parent space Vector3 lookDirGoal = (parentRotInv lookDirWorld);
// Get the horizontal and vertical rotation angle to look at the target float hAngle = AngleAroundAxis( segment.referenceLookDir, lookDirGoal, segment.referenceUpDir );
// Get direction lookDirGoal = Quaternion.AngleAxis(segment.angleH, segment.referenceUpDir) Quaternion.AngleAxis(segment.angleV, referenceRightDir) segment.referenceLookDir;
// Make look and up perpendicular Vector3 upDirGoal = segment.referenceUpDir; Vector3.OrthoNormalize(ref lookDirGoal, ref upDirGoal);
// Interpolated look and up directions in neck parent space Vector3 lookDir = lookDirGoal; segment.dirUp = Vector3.Slerp(segment.dirUp, upDirGoal, Time.deltaTime5); Vector3.OrthoNormalize(ref lookDir, ref segment.dirUp);
// Look rotation in world space Quaternion lookRot = ( (parentRot Quaternion.LookRotation(lookDir, segment.dirUp)) Quaternion.Inverse( parentRot Quaternion.LookRotation( segment.referenceLookDir, segment.referenceUpDir ) ) );
// Distribute rotation over all joints in segment Quaternion dividedRotation = Quaternion.Slerp(Quaternion.identity, lookRot, effect / segment.chainLength); t = segment.lastTransform; for (int i=0; i<segment.chainLength; i++) { t.rotation = dividedRotation t.rotation; t = t.parent; } }
// Handle non affected joints for (int i=0; i<nonAffectedJoints.Length; i++) { Vector3 newJointDirection = Vector3.zero;
// The angle between dirA and dirB around axis public static float AngleAroundAxis (Vector3 dirA, Vector3 dirB, Vector3 axis) { // Project A and B onto the plane orthogonal target axis dirA = dirA - Vector3.Project(dirA, axis); dirB = dirB - Vector3.Project(dirB, axis);
// Find (positive) angle between A and B float angle = Vector3.Angle(dirA, dirB);
// Return angle multiplied with 1 or -1 return angle (Vector3.Dot(axis, Vector3.Cross(dirA, dirB)) < 0 ? -1 : 1); } }[/CODE] До того как кто-нибудь ответит я постараюсь сам разобраться.
Помогите, плиз. Цепляю скрипт на камеру. Запускаю тест. Во время теста появляется вот это: NullReferenceException: Object reference not set to an instance of an object
Сам скрипт: [CODE]using UnityEngine; using System.Collections;
public class CreateRay : MonoBehaviour // на камеру { int Item;
RaycastHit hit;
void Update() { Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); if (Physics.Raycast (ray, out hit, 10) && hit.collider.tag == "Item") {Item = 1;} else {Item = 0;} } } [/CODE] В чем ошибка?
>>144206 В том то и дело что оно не вылетает. Камера зовется PlayerCamera. Выдает ошибку на этой сторочке Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
Планирую пилить битемап. Сам я художник-аниматор, агитирую братюню заняться кодингом. Что ему дать почитать, чтобы обеспечить быстрый старт? Ну или, на худой конец, посмотреть. Я так понял, по юнити есть два вида книг - сишарп и жаваскрипт ориентированные. В чём разница? И в чём лучше начать разбираться экшенскриптеру? Заранее спасибо, анончики.
Как заставить Юнити понимать 3д модель дерева как дерево в программном смысле, мне надо реализовать рандомный поворот при размещении на сцене, рандомный масштаб в заданных параметрах и размещение кистью.
>>144237 Там еще есть некий Boo, который хуй знает что такое. Рикаминдую сишарп, потому что во-первых там какая-то своя реализация джаваскрипта, которую я больше нигде не видел, и плюс офф туториалы все с сишарпом
>>144255 Спасибо, бро. Накачал уже книжек с рутрекера. Terry Norton - Learning C# by Developing Games with Unity 3D Beginner's Guide - 2013 Thomas Finnegan - Unity Android Game Development by Example Beginner's Guide - 2013 Jeff Murray - C# Game Programming Cookbook for Unity 3D - 2014 Dave Calabrese - Unity 2D Game Development - 2014 Бегло просмотрел. Попробую предложить первую (или сам упорюсь, если откажется). Что скажешь?
Offtop: Шестнадцатый тред, братюни, запилили бы шапку по основам, чтобы подобные мне вас не отвлекали от разработки ААА тайтлов.
>>144265 Ну, это самый правильный путь, но мне нужно увлечь человека, для этого там должно быть просто и понятно написано. И чтобы с первого тыка что-нибудь пыщь-пыщь делало. Вот, кстати, главный герой.
Православного туториала по locomotion system нет? Гугл находит только ассет, где документация представляет собой "положите левую руку на яйца, а второй таскайте скрипты на модель".
Анончики, а в чем лучше делать локации? Мне нужны всякие катакомбы, но просторные. Лол. Вот думаю, 3D Max учить или может быть есть несложный моделлер какой?
>>144394 Вот уж хуууй знает, ДРУЖИЩЕ, чем он удобней. Распиши если не сложно, ибо я делаю 2D на гамаке и мне всё заебись. А вот на юнити пробовал и чуть не охуел.
Анончики, знаю, что среди вас есть опытные. Помогите создать mesh collider из нескольких отдельных объектов. Можно было бы объединить меши этих объектов и уже из полученного меша сгенерировать коллайдер, но нужно получить коллайдер именно без объединения мешей.
Никто не знает как сделать так что-бы при наведении рейкаста на объект, объект "понимал" что не него навелись рейкастом? Можете написать условие в котором выполняется вышеописанное, или кинуть ссылку на пример.
Есть объект, у которого куча дочерних объектов с мешами. Нужно сделать так, чтобы у этого объекта был один-единственный меш коллайдер, повторяющий формы мешей всех дочерних объектов.
Пацаны, а сильно ли говённа Unity 3.x? А то я в своё время отхватил нахаляву лицензию на неё, а сейчас думаю - делать проект на четвёрке, и потом думать, где взять денег на лицензию, или может тройки хватит?
>>144510 Блядь, а в чем проблема? Ты же в результате рейкаста должен получить тот объект на который навелся. Дергай его любые методы/свойства после этого, поставь флаг "ПодЛучем", например, и от этого флага делай особое понимание внутрях обьекта.
>>144514 Ты не понял, есть 2 стула объекта - камера и шар, камера наводит рейкаст, но манипуляции над шаром(в моем случае включение меша) производит не камера а шар сам над собой. Возможно ли такое реализовать?
>>144515 Когда наводишь рейкаст, меняй таг шара на "рэйкастНаведён", в самом шаре в фикседапдейте постоянно проверяй, какой таг у шара. Когда включился нужный таг, хуярь нужное действие. Я с помощью тагов чуть ли не всю логику в игоре построил, кек.
>>144505 нельзя коллайдеры. В этом и суть. При инициализации такого количества объектов с коллайдерами юнити подвисает на минуты. Поэтому путь один: сделать один большой коллайдер.
Тебе нужно объединенный коллайдер без объединения мешей. В какой момент ты собирашься их объединять, если при инициализации они у тебя тормозят (что само по себе странно)?
В редакторе? Тогда хуле ты не можешь смержить меши заранее в 3дмаксе и не ебать мозг? При старте игры? Они все равно должны будут инциаилизроваться перед объединением.
Так что сходика ты нахуй, и оптимизируй свои ебучие коллайдеры.
>>144570 Ты обозначил переменную jump как float, а суешь в нее double, jump = 1.0; надо писать jump = 1.0f; Соответственно SetFloat охуевает от такого поворота событий.
Вообще, взял из этого видеоурока. Но, код который он вводит не работает. И тот, где есть GenAxis из комментариев, кодов там штуки три написано. Почему может не работать код? Учу Unity пока только 3 день.
>>144593 Чуть не выключил этого таскателя ассетов с первой секунды, прописывает он, бляха.
Я даже заскринил его финальный код из видяшечки. Где ты там ген какой-то нашел хуй его знает. Но раз уж ты пришел то давай разбиратся, хули. В аниматоре у тебя значения то меняются?
>>144594 В самом аниматоре все работает. Но сам скрипт почему то даже не перетаскивается на персонажа. И в скрипте ошибку выдает, мол не все как надо. А с этим, GenAxis, там в комментариях пишут, мол код не работает. И пользователь Iridas Games рабочий якобы скрипт в комменты кинул. Я решил его попробовать, раз с видео код не работает.
Эй, к вам пожаловал очередной даун, который "типа делает охуенную игру и типа вдруг понял, что на харкаче есть на его случай доска по геймдеву". Естественно в закреплённом сразу увидел совет пойти нахуй в юнититред. Вот я и пришёл, думал у вас может в шапке какая инфа есть, а там пусто. Так вот, к делу, туториалы нужны, в лошадиных дозах. Видео, текст, русские, иностранные - любые. Желательно такие, по каким вы сами учились. Как и любой простячок-лентяй, и вы имеете прямое право меня за это избить, предпочту видеотуториалы на русском. Но если есть другие - буду рад любым. Что скажете? inb4: иди нахуй Делаю хуитку по типу диаблы, сейчас это модно. Эта информация же подскажет, какие именно туториалы мне подкинуть? Если у вас есть тред для зелёных или чего подобное - рад буду туда проследовать, главное не бросайте меня на морозе без ответа, я тут замёрзну.
>>144602 Просто в туториале был именно джаваскрипт. А вообще да, много раз слышал что джава хуже намного. Сейчас еще поищу учебничков годных по C#. Алсо, с новыми версиями юнити, C# не меняется? Мб глупый вопрос, но полагаю есть время научиться.
Сап, анон. Недавно скачал бетку пятого юнити, и очень доволен новыми возможностями. Думаю запилить игоря, и вывалить его на десуру. Хочу спросить, как на десуре относятся к пиратской юнити?
Пикрелейтед - первый опыт рисования текстур, а также использования стандартного шейдера пятой юнити.
>>144675 >Физический шейдеринг, аудио мастеринг Нинужно не ебу, что это ваще, лол >старые возможности про версии Т.е. теперь они типа и во фри есть? А игры, сделанные на фри версии можно продавать? :3 >>144683 [ 10 ] Choosing to use C# instead of UnityScript Reason 1 for choosing C# – vast amount of documentation on the Internet Have a look at the following bullet list, it will help you understand the reason for choosing C#: ‹ C# is a well known and a heavily used programming language developed by Microsoﻧ for creaťng Windows applicaťon and web-based applicaťons. If you ever need to know anything about C#, simply do a search on the Internet. ‹ UnityScript is just a scripťng language designed specically for Unity. It's similar to JavaScript, yet it isn't. You may be able to search for JavaScript soluťons on the web, but the code may or may not work within the connes of Unity without modicaťon, if at all. ‹ Why start o learning a limited scripťng language, specic only to Unity, when you can use C#, a true programming language, and nd informaťon everywhere? ‹ Who knows, once you see how easy C# is, maybe you might decide to develop for Windows or the Web some day. You'll already have the basics of C#. ‹ Once you learn C#, you'll preŝy much know UnityScript, too. Reason 2 for choosing C# – exibility to use Unity scripts and regular C# code #les ‹ Any C# les you have in your Unity Project folder, that are not Unity scripts, are accessible without the need of aŝach them to GameObjects. ‹ The State Machine project we will create for this book makes use of C# code les that are not aŝached to any GameObject. ‹ I'm not saying you can't create a State Machine by using UnityScript. It's just so much easier with C#. Every UnityScript le has to be aŝached to a GameObject to work and be accessible to other scripts. C# overcomes this necessity. Reason 3 for choosing C# – coding rules are speci甠c ‹ C# is known as a strictly-typed language. What does this means to you? ‹ As you write code, Unity will catch coding errors immediately. Learning a subject is always easier when the rules are specic, and not some fuzzy "you can if you want to" kind of logic. ‹ UnityScript is not a strictly-typed language. You have the potenǀal to write code that is not valid, but Unity won't catch the errors unǀl you press Play. ‹ Finding mistakes as you write the code is so much easier than having to deal with them when a user has found them when they're playing the game. ‹ Please be aware, it is easy to force UnityScript to be strictly-typed, but if you're going to do that, then you may as well be using C# anyway, which brings us back to Reason 1.
>>144687 Хуйня. Если ты хочешь стать программистом, то ты всё равно через какое-то время будешь писать на трёх языках, как минимум. И это только по работе, для себя ты ещё пару найдёшь. Тем более, что "it is easy to force UnityScript to be strictly-typed", и разница в синтаксисе между двумя императивными сиподобными языками не настолько большая, чтобы не смочь сконвертить одно в другое. Короче, выбирай, что нравится.
>>144693 >Если ты хочешь стать программистом Nope. Хочу игру написать на юнити. Спрашивавший, очевидно, тоже. >будешь писать на трёх языках, как минимум Могу и так писать на спектрум бейсике и борланд паскале, лал. >И это только по работе Какой работе блеать, ты о чём?
Привет анон, у меня платина. Я не программист и кодить не хочу. Посоветуйте популярный ассет/фреймворк чтобы делать простенькие rpg/advanture под мобильные устройства. Короче, как RPG Maker, но только в 3d и с поддержкой тачскрина.
аногы у меня пиздец . рещил запилить игру с графоном , как в крусис . за месяц запилил 5 стволом 3к полигонов каждый . БЛЯТЬ И ЭТО БЕЗ ТЕКСТУР И АНИМАЦИЙ , СУКА !!!! чувствую такими темпами через 5 лет сделаю демо. анон , что делать в таких случаях??
>>144703 >Какой работе блеать, ты о чём? >Why start o learning a limited scripťng language, specic only to Unity, when you can use C#, a true programming language >Who knows, once you see how easy C# is, maybe you might decide to develop for Windows or the Web some day Кстати, лолд над true programming language.
if (posY < 0) { //если попадаем в пустоту if (Physics.Raycast(transform.position, transform.up, out hit, 0.5f) && hit.collider.tag == null) { Instantiate(Block, new Vector3(posX, posY+0.5f, posZ), Quaternion.identity); } else if (Physics.Raycast(transform.position, -transform.up, out hit, 0.5f) && hit.collider.tag == null) { Instantiate(Block, new Vector3(posX, posY-0.5f, posZ), Quaternion.identity); } } } }[/code] Он не работает, причина в этом "&& hit.collider.tag == null". Мне нужно что-бы при попадании рейкаста в пустоту выполнялось вот это действие "Instantiate(Block, new Vector3(posX, posY+0.5f, posZ), Quaternion.identity);". Подскажите как такое реализовать.
>>144732 Ты про plyGame? Правда я не думаю, что там что-то настолько же простое как rpg maker. Все-таки инструмент довольно универсальный, а не шаблонные карты, боевая система, инвентарь и диалоговые окна мэйкера. Как я понял, главная фишка plyGame в том, что вместо написания скриптов ручками, юзер конструирует блок-схемы. Визуальное программирование.
Аноны, почему персонаж проходит через объекты? Создаю персонажа, кидаю скрипт управления и стандартный мауслук, куда бы не посмотрел персонаж он идет туда. Вверх по воздуху, вниз через террэйн/объект и в таком духе.
>>144847 Проходит через объекты потому что нет коллизий. Mesh collider и все такое. Далее, если я тебя правильно понял, тебе нужно обозначить правильно вектор для третьего лица. Или ты можешь кинуть fpsinputcontroller и все дела.
Кто-нибудь знает как работает Скайримовская кастомизация персонажа, часом не на бленд шейпах?
Аноны, помогите новому ньюфагу. Начал учить юнити, делаю этот первый туториал, где шарик и кубики. Только он написан по старой версии, и ГУИ в новой делается как-то по другому. Вопрос, как?
>>144850 Коллайдеры есть. Риджит боди поставил. Все равно проходит насквозь. Лол, но если поставить стандартный firstperson то все нормально, он не проваливается и через объекты не проходит.
>>140913 Вкатываюсь впервые в юнити тред. В общем в 2015м году решил таки сделать свою первую игру. В геймдеве я с 2007го, но лишь как художник. Последние 2 года еще и аниматор. Анимирую в Spine. Работая над очередным проектом замыслил сделать небольшую игру просто чтобы посмотреть мою графику и анимацию в своей собственной игре. Будет платформер или Бит-ем-ап. С безумными персонажами вроде поехавших боссов из игр с Аркад 90х. Вопрос Мне юзать юнити? И только его? Для платформера и битемапа с 2D графикой и анимацией в Spine Юнити - оптимальный выбор? И еще - я ведь гуманитарий, никогда ни на чем не кодил. Мне на Юнити будет удобно?
>>144902 Задебаж граундед и посмотри, нормально он работает или нет. Вероятно нет. Попробуй добавить в оверлапциркл параметры глубины. И что за groundCheck и groundRadius?
Пытаюсь сделать возможность создавать сервера самому. Пишу: [code]Network.InitializeServer(serverplayernumbers, 25000, !Network.HavePublicAddress()); MasterServer.RegisterHost("blablablablablasupergame777", servername); [/code] Соответственно при создании 2-го сервера пишет, что порт уже занят. Что это за порт и как по-понятиям должно выглядеть создание серверов?
Привет, юнитач, есть проблема. В скрипте меняю цвет текста с помощью huiText.color = new Color(0, 97, 255);. Вместо (0, 97, 255) он превращается в (0, 24735, 65025). Раньше я подобные махинации проводил, причём с этим же текстом, и всё было нормально. В чём я обосрался?
>>143784 >>143786 >>143925 Бамп вопросу. Неужели по вычисленному atten нельзя установить прозрачность текстурки во время или после обработки света? Еще главное чтоб работало с несколькими источниками света.
>>144967 Разобрался, зам затупил, grounded стоял на everything. groundCheck это у меня точка в ногах перса а groundRadius - это радиус круга пересечений. Теперь ебусь с лестницей. Как лучше сделать? Убирать гравитацию или включать кинематик персу?
Такой вопрос. Пересел сегодня с седьмой винды на восьмёрку и фпс в юнити начал проседать. Т.е. раньше aero был выключен, в юнити.эдиторе был фпс обычно 95-150. И это при том, что был открыт фотошоп, вижуалстудио и туева хуча вкладок в хроме. Ах да, винда была 32 бита, так что оперативы было доступно всего 3,25гб. Сейчас доступно все 4, в настройках винды выставил максимум быстродействия, все прозрачности убрал, всё позакрывал. Открыт только юнити. Так вот этот пидорас в том же проекте в той же сцене теперь показывает 45-95 фпс. Что за говно и как это лечить? Ах да, юнити установил заново, конечно же.
>>144603 Читай документацию на сайте. Это не просто "Вот x. Оно делает y", это полноценное руководство, объясняющее все, что тебе нужно знать. мимо другой зеленый, читающий сейчас документацию
1)Что делать, если игра не подтормаживает только при фпс ~200 и больше? По идее всё должно быть плавно и при 60 ведь. 2)Есть туева хуча объектов, которые спавнятся в одной части сцены и уничтожаются в другой. С помощью инстантиате и дестрой соответственно. Объекты супер-простые, грубо говоря это просто маленькие круги. Может ли это быть причиной лагов? Если да, то как лучше реализовать нужную мне схему? В конечной точке маршрута перемещать их в начальную? 3)Какое оптимальное кол-во фпс для мобилочек? Нужно ведь, чтобы батарею за полсекунды не съедало, но при этом плавно шло. А плавно у меня - это 200 фпс и больше С меня благодарность
>>145655 Создай массив для своих объектов и вместо дестрой делай enable = false и клади объект в этот массив. При создании нового объекта сначала смотри есть ли в твоем массиве доступные объекты и если нет, то только тогда делай Instantiate
>>145656 >>145872 Спасибо, сделал обжект пул, стало получше. >>145878 Я не очень понял, что есть "основной цикл". Пойду курить матчасть, спасибо.
Ещё один вопрос: профайлер показывает охуевшие скачки в графе GPU, говорит, мол это rendertexture.setactive. Что это такое? У меня маленькие текстурки 14х14. В гугле предположили, что это сам профайлер ГПЮ так ест, это правда?
>>140913 Привет девелоперы. Почти уверен что встречу неприязненные взгляды ввиду глупого вопроса, но... Я собрался для тренировки сделать простенький 2D космический шутер со смешной графикой, пользуясь туториалом на оф.сайте Юнити (Project-space shooter) Что именно я должен скачать, для того чтобы была возможность создать игру такого уровня? Есть разница между Юнити и Юнити 3D? Мне наверное ненужен 3D, если я делаю такую простоту? Что именно я должен скачать? Какая версия лучше подойдет? Допустим у меня есть возможность достать Unity 3D Pro 4.5.5f1 Мне это нужно? Ради простенького шутера? Еще раз извиняйте за идиотский вопрос и за пиратство
>>146201 Unity=Unity3D. Это одно и тоже. Качай бесплатную, она ничем для тебя важным не отличается от платной. Качай последнюю, это не адоб и не автодеск - Unity чем новее, тем лучше. >Мне это нужно? Ради простенького шутера? Если цель: "Сделать простенький шутер" - то не нужно. Юзай Construct2. А если хочешь потом ещё игры делать - то лучше учи юнити. Я прям охуел от своей доброты, лал
>>146201 Качай бесплатно без смс unity 4.6 с оф.сайта. Поменялось устройство гуя, лучше сразу учить новую систему. >Есть разница между Юнити и Юнити 3D? Мне наверное ненужен 3D, если я делаю такую простоту? При создании проекта указываешь что нужно, 2д или 3д.
>>146206 Спасибо. >Качай бесплатно без смс unity 4.6 с оф.сайта. Бесплатно? А разве там не будет ограничений? С бесплатной версией можно сделать полноценную игру чтобы поиграли и на компе и на мобилках?
>>146205 >Качай бесплатную, она ничем для тебя важным не отличается от платной. >Качай последнюю, это не адоб и не автодеск - Unity чем новее, тем лучше. >Construct2 Понятно, благодарю. Да конечно потом планировал игры. Шутер с тем туториалом на сайте Юнити - собственно первая проба. Ок.
>>146207 >Бесплатно? А разве там не будет ограничений? С бесплатной версией можно сделать полноценную игру чтобы поиграли и на компе и на мобилках? Можно даже продавать или вставлять рекламу. Ограничения в бесплатной - сеть, рендер в текстуру.
>>146123 Ты атлас имеешь ввиду? Если да, то я это уже сделал. Вообще на экране, грубо говоря, игрок и куча одинаковых объектов с одной и той же текстурой. На самом деле, с выключеныым профайлером всё плавно идёт, так что я тоже думаю, что это он гпу ест.
>>145655 Ладно, я всех уже заебал здесь, так что распишу в последний раз всё подробно и уйду. Я знаю, что я мудак, но не знаю, почему именно. Ограничил фпс с помощью Application.targetFrameRate = 40. В игре он показывает 50-60, но идёт очень шершаво, неплавно то есть. Если ограничить под сотню, показывает ~150, идёт наммного лучше, но всё равно далеко не идеально плавно. Сделал обжект пул по официальному видосу, убрал абсолютно все прозрачности, оптимизировал текстурочки, намутил атлас для всего. В пикрелейтеде показано окно статс, цпю и гпю в профайлере выбрал самые большие спайки для наглядности. Вместо фона у меня камера показывает solid color. Оклюжн кулинг включён, VSynс выключен. Юзаю, кстати, 4.6, новый UI и всё такое. Никаких инстантиате/дестрой больше нет кроме первых секунд, когда создаётся пул. В пуле находятся 20 объектов с текстурой 14х14 и квадратным коллайдером. Сам обжект пул, управление таймером, UI, стенами, спавном и пр. находится в одном скрипте. В апдейте этого скрипта - управление таймером, в фикседАпдейте - проверка состояния главного героя. В другой функции есть два коротина. Может, проблема в том, что всё в одном скрипте? В общем, вроде, расписал всё. Прогонять не обязательно, я сам съебу.
>>146364 Сконпелируй проект в ехе да посмотри как работает, в редакторе само собой всё тормозит, типа дебаг режим и все дела. Процентики это ОТНОСИТЕЛЬНОЕ время исполнения по сравнению с другими операциями, а не абсолютная загрузка видюхи.
Как понять работу с анимациями перса, ригом, меканим?
Вот у меня модель с ригом экспортированна в юнь. Дальше что? Есть какие-то готовые универсальные анимации, которые можно скачать и юзать? Я почему-то не нахожу таких.
>>146885 Я выше писал про книжку. Terry Norton - Learning C# by Developing Games with Unity 3D Beginner's Guide - 2013 Довольно годная. Мне вправила троху мозги.
Ребят, тут такое дело, в 3д козе сделал текстуру и карту нормалей. При импорте в Юнити и применении карты нормалей произошел такой пиздец, а именно швы, как именно лечится? Может карту нормалей как то отредактировать?
>>147023 Я не эти аноны но думаю что учитывая сколько антош понаделали говноигры и сунули в Стор...думаю многие делали на пиратской. Ибо я очень сомневаюсь что у начинающих геймдевелоперов есть 1500тыс долларов на софтваре...
>>147029 >Блядь, буквально 10 постов назад анон пояснял, что продавать можно и игры, сделанные на бесплатной юнити, так что не показатель. Блядь я думаю все же соблазн скачать полную версию а не куцую бесплатую велик, и многие так и сделали, в том числе и я.
>>147038 >куцую бесплатую Если нет ума или способности находить информацию. В два счёта гуглится/узнаётся у анона, что бесплатная отличается от полной ненужными в 90% случаев свистоперделками. > в том числе и я. Продал что-нибудь на ней сделанное?
>>147040 Блядь хули ты обижаешься. Тебе реальные доводы/факты говорят. Или ты действительно считаешь что тут все честные маменькины мальчики - никто за все это время не качал пиратскую и не устанавливал чтобы иметь фулл сайз? Иди в свой манямир, еблан.
>Или ты действительно считаешь что тут все честные маменькины мальчики - никто за все это время не качал пиратскую и не устанавливал чтобы иметь фулл сайз?
Не равняй всех по себе, мудило. Я не качал пиратскую. Оформил триал на про, пощупал и вернулся на фришку. Из преимуществ (для меня) - лоды и эффекты камеры, пока что без этого могу обойтись. Всё.
>>147047 >>147046 >>147044 Выходит я проебал почти год, т.к. не пользовался доступной на сайте версией? Я не качал ни ее ни полную версию, т.к. думал что бесплатная мне не позволит что-нибудь сделать вроде сохранить игру или там не достает какой-то важной детали. Т.е. я могу работать на бесплатной версии и посылать ее в магазин? Я хочу делать 2д-игры вроде платформеров или шутеров и ставить их в аппстор. Бесплатная для этого годится? А хули так тогда? Разве им не выгодно урезать бесплатную чтобы ею нельзя было пользоваться для 100% создания игоря? >другой мимо-хуй
>>147058 >Т.е. я могу работать на бесплатной версии и посылать ее в магазин? Yes >Бесплатная для этого годится? Yes. Yesть даже книжка "Dave Calabrese - Unity 2D Game Development - 2014.pdf" Там чувак делает платформер с нуля. >А хули так тогда? Потому что расчёт, очевидно, не на инди-хуинди, а на серьёзные конторы, которым нужна техподдержка и йоба-эффекты и не нужен злоебучий зашкваривающий логотип юнити при старте и нужны серверные решения и нужен продвинутый упаковщик и что там ещё есть... А инди хуинди работают на популярность и насыщают рынок рабочей силы специалистами по юнити. Ну, мне так с дивана видится.
>>147058 даун тупорылый, ты не мог, сука, почитать о лицензии на их сайте? это же так сложно даже в гугле ввести "А МОЖНА ПРАДАВАТЬ ИГРУ С ЮНЕТЕ БЕСПЛАТНАЙ" ? вы же геймдевщики, как вы без гугла, сука, обходитесь. никак понять не могу
>>147072 >даун тупорылый, ты не мог, сука, почитать о лицензии на их сайте? это же так сложно даже в гугле ввести "А МОЖНА ПРАДАВАТЬ ИГРУ С ЮНЕТЕ БЕСПЛАТНАЙ" ? вы же геймдевщики, как вы без гугла, сука, обходитесь. никак понять не могу Лоллировал с баттхерта. Просто я художник, все время в работе, думал что мол раз бесплатная с сайта, то там наверняка НИЗЗЯ СОХРАНИТЬ((( как к примеру в какой-нибудь проге вроде Спайна, или многих других где урезана конвертация или некоторые кнопки-фичи не нажимаются. А тк у меня уже была работа,я оставил это на будущее думая что ПОТОМ СКАЧЯЮ С ТОРРЕНТА ВСЮ ВЕРСИЮ))))0.
Охуенчик, братюньки мои. Ну все готовьте пердаки к грядущему Платформеру-Шутеру-Приключению мечты!
>>147111 >Какой же даун ебучий, у тебя интеллект, как у воробья, мразь лалка я так ржал что голова заболела. Хуй знает почему. Годы на бордах научили меня не воспринимать оскорбления и обиды всерьез. Теперь для меня это дикое веселье. Охуеть >Какой же даун ебучий, у тебя интеллект, как у воробья, мразь смеюсь каждый раз как перечитываю. Это такая жгучая ненависть ,что она проходит по моим ушам словно раскаленный нож сквозь масло - ОХУЕННО.
>>147133 >>Какой же даун ебучий, у тебя интеллект, как у воробья, мразь должен заметить что у меня стояк от твоей грамотности. Ты поставил все запятые правильно, что в сочетании с пылкостью оскорбления оно делает меня кончать. Какой же даун ебучий, у тебя интеллект, как у воробья, мразь. Блядь это 10/10
Почему, когда я гуглю любую простую хуйню по юнити, мне блять попадается только "такая хуйня делается проще чем палец всунуть в сракотан с помощью вот этого неебического плагина за 30$"? Это так всегда будет? Блять. Вот я скачал юнити-хуюнити, установил визуал студию, хелло ворлд написал, теперь хочу программно нарисовать квадратик блять и двигать его. Нихуя не понятно, нахожу только какое-то рисование в гуи-хуюи и блять ебаные "купи компонент". Хочу вообще всю игру программно рисовать, не люблю фотошоп и вообще. Юнити это не мой выбор?
>>147239 Вот прочитал http://habrahabr.ru/post/243479/ и заинтересовался. Хочу понять, как правильно программировать игры. Не хочу никаких заморочек с графикой, хочу цветные квадратики.
>>147213 > Хочу вообще всю игру программно рисовать Тогда тебе не в юнити определённо. В юнити как - создал объект, прихуячил к нему спрайт, запилил скрипт, чё он делать должен и всё, готово, блять. Юнити для того и делался, чтобы не нужно было ебаться долго с программным рисованием и прочим говном
>>147280 Ты мудак, блять, мразь, запомни одно правило: начинаешь проект на одной версии - нихуя не обновляй, пока проект не закончишь. Это ко всем программам относится.
Выбирая между Юнити и рисованием своего движка, я выбрал таскание ассетов.
Но возникла пара вопросов, буквально чтобы найти точное направление в том что надо изучать - на сайте и ютюбе столько информации по Юнитям, что глаза разбегаются и очень сложно найти нужное.
Итак, предо мной стоит задача запиливания 2д-стратегии, на гексогональном поле. Какие материалы стоит посмотреть в первую очередь чтобы разобраться с созданием такой штуки? Единственное что я находил подходящим к своей теме это руководство по созданию гексагональных полей на ангельском, и как раз в этом треде, но к сожалению уже потерял это руководство. Но кроме того стоит ещё много вопросов по скриптам и остальным сопутствующим деталям. Есть годные туториалы расписывающие именно это специфичный жанр от и до? По 2д к сожалению находил только в лучше случае платформеры да angry birds в качестве руководств.
Сразу скажу что в плане рисования спрайтов, текстур и остального чисто графического материала все в порядке, нужны именно технические советы.
>>147317 Я уже оттуда. Какие-то материалы я там нашел, и сейчас их изучаю, хотя бы мануал самого хуюнити. Другое дело что может быть кто-нибудь сможет подсказать что нибудь ещё хорошее и конкретное по моей теме.
>>147315 Волнуюсь по твоему поводу, конкретно - "графический материал в порядке". Так уж вышло, что я уже давно что-то там кую в игроделе, но никак не докую и сейчас засел за юнити. Такой же новичок как ты, поэтому ничего дельного по самому юнити не скажу. Но, могу поделится опытом - когда делаешь, делай сначала игру, а потом графику. Типа схематичной механики сначала лучше всего сделать, а потом уже сделать всё красивенько и с анимациями. Пусть там прыгают квадраты и стреляют точками в круги, главное чтобы они стреляли, круги на это реагировали, а точки не возвращались назад и не убивали квадраты. Это будет лучше чем графонистые солдаты, простреливающие себе ногу по приказу атаковать вражеские танки.
>>147324 Спасибо, учту. Спрайты я начал рисовать просто чтобы хоть немного сосредоточиться на работе и понять примерно как они делаются (скачал даже для этого соурс веснота и разбирал как они там сделаны).
Теперь вот как раз и хочу переходить к технической части, но слишком дохрена всего. Я просто не понимаю с чего начать. Если в пиксель арте ты ставишь черную точечку и дальше оно как-нибудь пойдет, то тут что-то я не вижу куда её ставить.
>>145725 мудило из нюфаготреда выхожу на связь, пилю свою ааа-ртс, лол. Юниты разделены по типам, у каждого типа свои списки команд и статов. Думаю, каждому юниту запилить ещё и переключатель команд, потом циклом проходится по списку и выполнять команды. По идее, наебнёся на большом количестве юнитов и будет глючить с поиском путей - как раз что надо для хорошей ртс. Таким же макаром можно и весь АИ захуярить.
>>146943 Размыль края нормалей, сделай людскую развёртку и проверь тип нормалей. Пункта 1 должно хватить.
>>147315 Любая задача выполнима, если разбить её на серию более мелких задач. Туториалы по большей части нинужны, тебе просто нужно знать, что ты делаешь в этот момент и всё.
>>147326 >тебе просто нужно знать, что ты делаешь в этот момент и всё. Хорошо, но вот как раз я и пытаюсь понять с чего стартовать. После этого я обычно уже начинаю пробами и ошибками добиваться приемлимого результата.
Вот передо мной пустой проект, у меня есть определенная задача на него - что делать первым шагом?
>>147325 Я нашёл материал под свою игру по одному запросу типа "diablo clone unity", при том, что клоном диаблы она не является, просто механика схожа. Думаю у тебя выйдет такое с "civilization clone" или вроде того.
>>147328 Может потому что не лагает? Я сильно сомневаюсь, что у тебя 150+ герцовый моник, чтобы видеть все 150 фпс. В лучшем случае, 75. Идеально плавно это 60 фпс, дальше уже разницы особой нет. Твои 200 фпс, отрисовываемые видяхой, ты просто не видишь, потому что их монитор не успевает отобразить. Смекаешь? Либо юнити неправильно пишет фпс, либо ты упорот. И вообще, глаз больше 12 фпс увидеть не может, потому и форсят 24 кадра - по 12 на глаз.
>>147329 Бля, ну придумай себе задачу. Нужно гексагональное поле - пиздуешь в гугол и ищешь unity3d hexahonal 2D, проходишься по пяти ссылкам с первой страницы и пилишь своё гексагональное поле.
>>147349 хуле ты мне стелишь, фраерок? Я скачал специально официальный проект и порверил - там всё гладко идёт, а мой лагает. Можешь выкачать и проверить, прежде чем пиздеть
>>147134 >>147195 За два года не научили, что предложение заканчивается знаком препинания? >>147311 Молодца, исправился. >>147324 >Это будет лучше чем графонистые солдаты, простреливающие себе ногу по приказу атаковать вражеские танки. Взлоллировал. Вспомнил божественную UFO.
http://unity3d.com/
Торренты:
http://cgpeers.com/torrents.php?searchstr=unity
Сохранение форматирования кода:
[code]код[/code]
Предыдущий тред: