>>244494 Ну а пока блюпринтов нет, я думаю, ты сможешь подсказать. Посоветуй, каким образом бот может игроку сказать что бот попал в игрока рейкастом? Конечно, информация о попадании есть у бота, например в переменной Hit. Но вот каким образом бот может сразу после попадания единовременно изменить переменную HP у игрока - я так и не понял. Придумывал всякие велосипеды типа где игрок проверяет переменную Hit у бота, и отнимает ее значение от HP, но внимание, во-первых если ботов несколько, то это получится как-то криво, игроку придется проверять у каждого бота на карте. Алсо, ведь каждое выполнение Update - это один выстрел раз в кадр, и если в конце Update обнулять переменную Hit, то минусоваться HP будет только в тех кадрах, в которые бот будет производить выстрел, так же?
Есть ли возможность у игрока зарегистрировать попадание в него рейкаста? Гуглил, не нашел такого. Вообще нашел только мануалы по пулям - физическим обьектам, попадание которых игрок регистрирует коллизией.
hit.collider.gameObject.SendMessage(...) или GameObject go = hit.collider.gameObject; if(go.tag == "Igrok") go.GetComponent<ScriptIgroka>().NaNahui(uron);
https://habrahabr.ru/post/278947/ Почитал я тут статью. Димас всё описал хорошо с точки зрения разработки, но игры он делать не умеет, также, как и проигрывать. > мам ани плахиие скажы им моя игра крутая
>>244516 Анон, я таки тупой. Вот например, попал я в игрока и в скрипте срабатывает SendMessage(damage, 5); damage - это метод (как я понял, по сути функция). 5 - это количество отнимаемых HP. Значит, должна быть где-то функция:
damage(n) { HP = HP-n; }
Во-первых, правильно ли я написал функцию, она отнимет 5 HP? Или не поймет что эту посылаемую пятерку нужно поставить на место n?
Эта функция должна быть объявлена в скрипте игрока в которого попали (и в котором есть переменная HP), я правильно понимаю? Где ее объявить, после Update? У гугла спрашивал, но все как-то расплывчато там.
Алсо, как вообще обстоит дело с использованием функций в Unity? Вот у меня например есть простой алгоритм вида Update() { if (x>0) { function1(); } else { function2(); } }
Мне функции где объявлять: до Update, после? Естественно нужно чтобы функции выполнялись только если я их позову.
Еще не совсем ясно с onTriggerEnther(). Если внутрь этой функции засунуть какие-либо действия, они будут выполняться только один раз, тк это не Update, или будут работать как в Update, повторяясь каждый кадр?
Блять, анон, помоги. Сделал тут ебаный велосипед, но он не работает как надо. Короче суть токова: Я делаю шпейс шутер топ даун. Ты можешь летать во все стороны, направление корабля следует указателю мыши. Вопрос в том, как сделать нормально двигающийся фон. Что я сделал: 1. Создал quad, на нее нацепил текстурку фона. 2. Прицепил квад к главной камере. 3. К камере написал скрипт следования за игроком (игрок всегда в центре экрана). 4. Затем к кваду я написал скрипт, который оффсетит текстуру по вектору, равному изменению движения корабля. ( velocity = new Vector3 (Input.GetAxis ("Horizontal") maxSpeed Time.deltaTime, Input.GetAxis ("Vertical") maxSpeed Time.deltaTime, 0); ) По крайней мере я себе это так представлял. Вектор не инвертированный, так как юнити походу уже оффсетит в противоположном направлении. 5. Все же на практике получается какая то хуета. По моей логике квад должен всегда двигаться вместе с камерой (а значит с игроком), но из-за оффсета, должна создаваться иллюзия того, что фон остается на месте.
Так вообще делают, или я какую то хуету сочинил? Вроде все логично, значит я где то наговнокодил впрочем иначе я не умею же. Может удалить нахуй эту схему и сделать что то иначе? Например мне в голову приходит только такая альтернатива хотя я пока что не знаю как такое реализовать: текстура не будет оффсетиться, но если в камеру попадает пустое пространство или что там должно попасть?, то спавнится новый квад. Если старый квад уже не в поле видимости камеры, то он удаляется.
>>244842 >Все же на практике получается какая то хуета Да, забыл сказать, более менее не блевотно получается только если координаты вектора умножать где то на 6. Но ведь так не должно быть, я не должен ни на что умножать.
Ананасы, я вот имею худ.образование, недавно открыл для себя зебру, подумал что и игры ведь делать можно, начал копать, в итоге я понял что мне нужен блендер, который осваиваю и собственно движок, ну юнити вроде простой и вот я тут. Так как я в скрипты не могу, можно ли украсть ассет какой нибудь игры для ведра наприиер, накидать своих моделей, музыки и вот этого вот и в теории монетезировать? На данном этапе не интересует заработок, просто интересно смогу ли я с теми скиллами которые имею сделать игру играбельную?
>>244909 Не сможешь, в юнити нужно много кодить. Алсо сложность этого переоценена мамкиными програмистами из вузиков. За полгода вполне реально научиться сносно кодить на шарпе для юнити , но придется много читать и преимущественно на английском. гуманитарий-кун
>>244912 Сейчас скроллил ассет стор, в разделе Complete Projects вполне можно украсть проект и перепилить графен. Ну и может тот код что там есть смогу поковырять, но мои знания кодинга ограничены паскалем и явой, которые я изучал в вузе, но это уж совсем минимальные знания как я считаю, в написание своего кода не смогу.
>>242087 Братюнь, а есть epub какой нить, или может fb2 аж?
Книга зачётная, но сука этот ебаный pdf. Не могу для него ридер нормальный найти на ведроид. Один строки переносит неадекватно. В другом шрифт не увеличить. В третьем перелистывать нельзя, только скролить.
А может кто посоветует пиздатый pdf reader на android? На маркете их дохуя, но топовые какое то гавно
Пилю 3d под андроид, сколько должно быть полигонов в среднем на сцене? Сейчас моделю оружие и персонажей. Во сколько полигонов уложиться в модели ножа например?
>>244924 > мои знания кодинга ограничены паскалем и явой, которые я изучал в вузе У меня так же. Нихуя не помню уже, спрашиваю постоянно тупые вопросы в этом треде, но разработка гульмена идет. Очень помогает учебник по C#, и гугл.
>>245309 Заюзал конвертеры. 2 онлайн и один с компа. Разметка идёт по пизде. Где то переносит слова не в попад, где то вместо пробелов ставит точки. Причём одинково на каждом. Такие дела
В порядке отдыха от своего игоря мечты продолжаю издеваться над летающими видеокартами. Версия ховеринга 3 бета. Честный физон, поперечная симметрия не соблюдена.
>>245391 Блять сука пидорас, я же тебе говорил про пид контроллеры, гондон такой. Смотреть больно на это. Чем ближе точка отсчета к намеченой высоте, тем меньше должно прилагаться силы.
>>245407 Нахуй мне твои контроллеры? Мне-то, по сути, надо массу умножить на гравитацию, потом разделить на 4 и парить нахуй. У меня же, по факту, тяга умножается на массу. К этому всему прибавляется (минимальная высота - текущая высота), пермноженная на массу и тягу нахуй. При этом эта сила может и часто таки является отрицательной.
Не нашел в ассет сторе может плохо искал. Может быть есть ассет с примером игры вроде игры Talking Tom Cat, интересуют меня именно скрипты, роста, потребностей и вот этого вот.
В чём лучше делать визновеллы на юнити? Глаз пока что пал на Fungus, он как, нормальный? рРешите послать на ренпай - я пошлю вас нахуй. Не задавайте ненужных вопросов.
>>244712 Использовать движок, где есть такие "фичи", как сравнение со строками, равносильно установке в своей игре опции "Я не возражаю, чтобы моя игра тормозила без причины (игрок должен купить новый ПК)". Такие вот вещи и есть детектор говнодизайна. Что делать? Для начала посадить писать юнити программистов, а существующих обезьян выгнать из офиса. Затем можно пару часов немного почитать про enums, а в идеале - лет восьмь про архитектуру приложений. Потом уже писать на двач.
>>245429 Просто честный физон - хуйня. Из-за наклона движков в 13 градусов я теряю ровно 2.735% тяги, например. Наклон убирать не хочу, прикладывать силу без учёта наклона тоже. >добавь плавности, уменьшение силы с высотой Просто у меня ховер приближается к земле, получает охуенный импульс вверх, поднимается выше максимальной высоты и получает отрицательный импульс. Ну, так было в прошлой версии.
>>245442 Лень разбираться. Чует моё сердце, я что-то вроде этой хуйни уже и запилил. Хотя всё равно есть "хак", который не понадобился бы, будь у меня повыше максимальная высота парения или крупный ховер.
>>245457 >Вот так вот ноунейм хуй с двачей обосрал прогрегов майкрософта. Пиздец, такие умищи кругом, что аж страшно. Дык тут так всегда. К тому же, чому обосрал? Бесплатный совет дал. Я вот знаю прогеров из микрософта лично, а ты? Микрософт - это далеко не знак отличия. А про умищи - ну ты же вот в этом высосанном из пальца сраче не будешь вставать на сторону строк против enums? Иначе совсем грустно.
>>245391 Чувак, если нужны советы по стабилизации, то гугли поделия на WireMod для гаррисмода. Сам в свое время делал охуенно стабильные летающие говны, к которым крепился автомат, который попадал в стакан через всю карту.
>>245460 Может, и не знак отличия. Но явно уж мелкомягкие более авторитетны, чем двачехуй. У меня вот хеши сравниваются, как строки. И что, блядь, забить на сравнение строк? Правда, у меня сравнение строгое, всё-таки хеши.
>не будешь вставать на сторону строк Я в рот ебал теги вообще и уж тем более не ищу игрока по всей сцене. Опять же, хуй знает, во что в итоге скомпилятся теги - они все являются элементами массива и могут быть легко оптимизированы во время компиляции. А смотреть - мне лень.
>>245468 >Это всё фан, чтобы основной проект мозг не сжёг. Да и там наверняка физон другой. Есть вариант нагуглить открытую прошивку какого-нибудь квадрика и перевести ее в Unity.
>>245468 >физон другой Принцип тот же. Единственное что там дефолтные трастеры без векторной тяги (есть и векторные) и тяга соответственно направлена туда же, куда моделька, а не как у тебя перпендикулярно к земле (параллельно оси)
>>245470 Нет, у меня тяга направлена туда же, куда и моделька. Писал же, что даже мощность из-за этого теряется, аж почти 3%. А красные линии это просто линии для более удобного восприятия высоты.
Бля парни, зацените что ли. Мне нужен хоть какой то фидбек, а то я так не могу. Игру делаю скорее для себя, т.к. понимаю что такая хрень сейчас не прокатит. Да и это первый проект на юнити. И вообще если так можно сказать, это ранняя ранняя альфа.
>>245494 >корабли не бампаются Я решил что это не нужно. Их и так много, они ещё вращаются в разные стороны вокруг игрока. Будет не очень. Я смотрю у тебя на скрине 16 зарядов ракет в запасе. Ты их не юзал? Стрелять ракетами на F или ПКМ. Лазером на пробел или ЛКМ.
Чот я застрял. Имею 2D - мотоцикл, к которому, как положено, приделаны два WheelJoint2d для колес. При этом, если куда-нибудь въебаться, колеса может завернуть хоть за уши мотоциклисту. Как, блять, в этом сраном юнити ограничить их перемещение???
Мне нужно чтобы скримпт геймобжекта не проверял каждый кадр что ему делать, а запускал процедуру когда ему это велит другой геймобжект. Не подскажите как такое реализовать?
Как бы вы лучше всего сделали инвентарь на юнити? У меня сейчас так: все данные о предмете в ScriptableObject, на этот предмет есть ссылка в классе Item, в этом же классе хранится количество предметов для стакающихся предметов и все изменяемые переменные предмета. Мне это не очень нравится. Так нужно использовать factory чтобы создавать эти специальные классы для каждого предмета. Неудобно писать myItem.itemData.x чтобы получить какие-то данные и myItem.y чтобы сохранить. в каждом предмете хранится размер стека, даже не для стакающихся.
>>245693 Вот этого двачую. Здесь не спецификация языка или движка: здесь нужна просто логика и здравый смысл. Если человек этого не может, то в дальнейшем у него будет тупо куча вопросов о том, как "сделать шоп стреляло".
>>245692 >244516 Лол, два способа, и оба-говно hit.collider.gameObject.SendMessage(...) - гораздо медленнее прямого вызова функции GameObject go = hit.collider.gameObject; if(go.tag == "Igrok") go.GetComponent<ScriptIgroka>().NaNahui(uron); - go.CompareTag - это раз, var penis = go.GetComponent<ScriptIgroka>; - при создании объекта penis.Rise(); - при необходимости вызова функции -это два
>>245697 Честно говоря, ты сейчас ерунду какую-то сморозил. >>245692 Тут похоже я или плохо понял тебя, или не дал достаточно информации. Дело в том, что геймобжекты не как не пересекаются. И геймобжект, которому дают указание что делать, создается позже геймобжекта-"босса". Причем, однотипных геймобжектов может быть много, Соответственно, мне будет неизвестно точно его имя.
Вообще, для чего я это делаю: Планирую создать массив данных для мобов и повесить его на объект-босс. В скрипте босса есть цикл, который поэтапно разадет приказы объектам-подчиненным. А объекты подчиененные, получая приказ, выполняют свою процедуру и отсылают боссу весточку что они закончены. После чего босс посылает свое сообщение следующему подчиненному в списке массива.
Можно реализовать это путем проверки в каждом кадре каждым подчиненным какой-нибудь переменной отвечающей за порядковый номер действующего подчиненного. Но подозреваю, что это в сотни раз медленнее варианта когда только у босса сам отсылает сообщения.
Я люблю контроллером подходить близко к внеигровой камере сцены и прыгать перед ней, ничего не могу с этим поделать. Но иногда её не так легко найти. В меню GameObject есть опция Align to view, которая перемещает объект к виду камеры сцены. Какой код за это отвечает? Не могу найти в документации. Нужно заспавнить какой-нибудь объект на месте камеры, чтобы её было легче найти.
>>245707 >хуй не может придумать, как сделать событие вместо ежекадровой проверки какой-то хуйни >ему ткнули на то, что он на уровне логики не может додуматься >"ты ерунду какую-то написал" Проиграл.
>>245707 >ожно реализовать это путем проверки в каждом кадре каждым подчиненным какой-нибудь переменной отвечающей за порядковый номер действующего подчиненного. Но подозреваю, что это в сотни раз медленнее варианта когда только у босса сам отсылает сообщения.
Сукаа. Как же я проигрываю с этого ПРОГРАММИСТА.
У объекта-босса должна быть ссылка на объекта-подчинённого, которому он отдаёт приказ. Логично было бы сделать так: - создаешь скрипт-спавнер миньонов - создаешь список объектов в скрипте, который должен приказывать миньонам, что делать - при каждом спавне миньона в список скрипта-приказчика добавляется ссылка на миньона.
Если ты до такой элементарной кривой хуйни не додумываешься, то что ты вообще делаешь в программировании?
>>245713 >на уровне логики не может додуматься Если это для тебя так просто, то для тебя это написать не проблема. Если для тебя это не проблема - то ты бы написал как это сделать в треде. Ведь ты тратишь время, чтобы писать свои бессмысленные комментарии. Но ты не пишешь как это сделать - потому что ты не знаешь как это сделать. Так что можешь не продолжать свои вскукареки.
>>245715 Дебил, я тебе написал элементарный вариант чуть выше. Но суть для тебя написана еще выше: если ты не понимаешь, что тебе не совета просить надо, а дрочить свой мозг самостоятельно, разработка далеко не пойдёт.
>>245714 >- при каждом спавне миньона в список скрипта->приказчика добавляется ссылка на миньона. Спасибо, кэп. Но я не знаю как это технически сделать.
>>245723 Я плохо знаю C# Тут анон писал >>245697 что стоит задавать только технические вопросы. Я задал, но мне говорят что я в логику не могу и пишут очевидные вещи, не связанные с чисто технической частью.
>>245725 Ты написал, что не знаешь, как сделать так, чтобы не было проверки каждый кадр. Всё, что ты пишешь касательно логики, написано с ошибкой В САМОЙ ЛОГИКЕ. Ты всё еще не видишь ошибки в себе?)
>>245725 coroutine, sendmessage. Пока тебе этого хватит, об оптимизации можешь не задумываться. Если это осилишь сам, значит мозг есть. Подсказок не жди, это действительно показательная проверка для тебя самого.
>>245726 >Ты всё еще не видишь ошибки в себе? Ты не пробовал сначало посмотреть на себя?
>Ты написал, что не знаешь, как сделать так, >чтобы не было проверки каждый кадр Мой полный вопрос тут >>245688 В его контексте ясно что мне не известно как технически реализовать работу геймобжекта по приказу другого геймобжекта. Мне дали ответ. Но я уточнил >>245707 почему мне он не подходит.
Ты же пишешь о логике, когда вопрос не в ней
>>245727 Знаешь в чем твоя проблема? Ты думаешь что кому-то нужны твои проверки. Классическое завышение самооценки.
>>245731 >ему дали ответ Ну, ты ничего не дал. про сендмэссадж до тебя рассказали. Назвать два слова это не заслуга. >кек Сделай ссылку на это сообщение и напиши еще что-нибудь. Последнее слово, каким бы оно не было бессмысленным придает твоему бреду дополнительную значимость.
>>245732 Ладно, я тебе расскажу, но это как поссать тебе в рот. Смотри. 1. Раз ты говоришь о спавне объектов, значит ты знаешь, как это делается. Ты пишешь >gameobject obj=GameObject.instantiate(kokoko) Надеюсь, этот скрипт прикреплён непосредственно к боссу, который и должен приказывать своим объектам, что делать.
У босса также должен быть скрипт ИИ. Допустим, этот скрипт называется parasha. В скрипт parasha ты добавляешь публичный список своих миньонов: >public List<GameObject> minions=new List<GameObject>(); В этом списке мы будем хранить ссылки на миньонов, которые создаёт скрипт спаунера.
В скрипте спавна, чтобы иметь доступ к списку ИИ босса, который мы будем заполнять, ты объявляешь переменную: >parasha par; в методе Start() ты пишешь: >par=GetComponent<parasha>(); Теперь у нас в скрипте спавна есть ссылка на ИИ и, соответственно, публичный список из этого ИИ.
Теперь ты спавнишь миньона. Это выглядит примерно так: >GameObject min=GameObject.Instantiate("minionchik"); min - это объект "миньон". Добавляем его в список, чтобы ИИ имел к нему доступ: >par.minions.Add(min); //добавили в список подконтрольных миньонов только что заспавнившегося говноедика
Как у тебя в голове босс управляется со своими подчиненными - другой вопрос. Но теперь у тебя есть список с миньонами в скрипте ИИ.
Есть какой то гайд по тому, как заменить стандартную модель в third person controller на свою. У меня есть уже ригнутый персонаж и у него есть базовые анимации. Хотя если можно или так будет проще использовать те анимации которые висят на стандартном third person controller. Пробовал просто fbx со своей моделью сделать дочерним префабу контроллера, установил аниматор third person controller, моя модель начала двигаться но без анимаций, используется только стандартная idle анимация, остальные стандартные нет.
Есть один гуй. Что бы я не делал, при Дропе одного элемента на другой, все равно выдает "Drop with i=9". Помоги пиздорукому получить i текущего элемента.
public class GuiAbilitySlotOnPanel : MonoBehaviour { [System.Serializable] public class SlotOnPanel { public int AbilityID; public bool AbilityOrBind; }
public SlotOnPanel[] PanelBarAbilities = new SlotOnPanel[9]; public Transform[] PanelBarSlots = new Transform[9];
public EventTrigger[] ButtonTrigger = new EventTrigger[9]; public EventTrigger.TriggerEvent[] TriggerEventDrop = new EventTrigger.TriggerEvent[9]; public EventTrigger.Entry[] ActionDrop = new EventTrigger.Entry[9];
void OnEnable() { for (int i = 0; i < PanelBarSlots.Length; i++) { TriggerEventDrop = new EventTrigger.TriggerEvent(); ActionDrop = new EventTrigger.Entry(); TriggerEventDrop .AddListener(data => OnDrop(i));
for (int i = 0; i < PanelBarSlots.Length; i++) //Для каждого элемента {
TriggerEventDrop [ i ] = new EventTrigger.TriggerEvent(); //Создаю новый TriggerEvent ActionDrop [ i ] = new EventTrigger.Entry(); //Создаю новый Entry TriggerEventDrop [ i ] .AddListener(data => OnDrop(i)); //Новому TriggerEvent добавляю слушатель OnDrop с номером текущего элемента [ i ]
ActionDrop [ i ] .callback = TriggerEventDrop [ i ] ; //Для новосозданного Entry задаем коллбэк - наш новый TriggerEvent ActionDrop [ i ] .eventID = EventTriggerType.Drop; //Указываем, в ответ на что будем вызываться.
ButtonTrigger [ i ] = PanelBarSlots .GetComponent<EventTrigger>(); //Вытаскиваем из руками указанного массива трансформов EventTrigger ButtonTrigger [ i ] .triggers = new List<EventTrigger.Entry>(); // Чтобы не ебать мозги, обнуляем и создаем новый. ButtonTrigger [ i ] .triggers.Add(ActionDrop [ i ]); //Добавляем наш новосозданный Entry }
Ебучая макаба разломала [ i ], поэтому в оригинальном посте он выпилился.
Котаны, есть вопрос. Пилю пошаговый рогалик. Есть существо (creature). Когда оно берет в руки предмет (или одевает его), происходит некое действие. Например персонаж экипирует "убермечмегасмерти" и у него появляется абилка мега-удар, добавляется модификатор "+100 ХП" и каждый ход наносится 10 урона всем кто находится вокруг в районе 2ух клеток. Я хотел сделать следующее:
TurnStart() //В начале хода { if(isActive) { tempList = map.GetListOfUnitsInRange(creature, 2); foreach(var unit in tempList) { unit.Hurt(10); } } }
TurnEnd() //В конце хода {
}
Remove() //При снятие { creature.RemoveAbility(AbilityEnum.MegaPunch); creature.RemoveModifier("HP",100); //хотя здесь я бы сделал по другому isActive=false; } }[/CODE]
Теперь вопрос: Как правильно обращаться к существу, которое экипирует предмет (creature), к карте (map) и т.д. Точнее, как предмет узнает о них? надеюсь понятно изложил мысль
>>245949 Благодарствую, но этот урок я и сам смотрел. Желание лепить тучу хендлеров, а потом искать где накосячил и почему - крайне мало. Поэтому и ябуся с классическим рунтайм танцами через официально заверенный EventTrigger.
>>245951 >Желание лепить тучу хендлеров Только ты зачем-то пихаешь эти хендлеры в редакторный класс EventTrigger, из которого они точно так-же вызывается движком.
>>245954 Согласен. Только когда приходится дебажить, не нужно шнырять в незнакомых местах.
При таких танцах проще убрать массив, из-за которого все глючит, и просто навешивать скрипт на необходимые плашки, благо так все работает и без лишних интерфейсов.
>>245967 Надо еще реализовать IDragHandler интерфейс у того скрипта, которые ты таскаешь. Без этого нет события начала старта перетаскивания и соотв. нет конца.
>>245942 Ну например, если ты игроком подобрал меч, пусть игрок с помощью Sword.SendMessage(Svoistva) запустит функцию Svoistva во взятом мече, которая в свою очередь с помощью Player.SendMessage(HpPlus, 100) передаст игроку на сколько увеличить его максимальный HP. Это конечно пиздец велосипед, но как вариант.
>>245942 >Как правильно обращаться к существу, которое экипирует предмет (creature), к карте (map) и т.д. Точнее, как предмет узнает о них? Предмет не может ничего знать т.к. у предметов нет сознания.
>>245891 Манда ты тупая, все в порядке. ТриггерСобытий.ТриггернутьСобытие();
>>245942 У тебя предмет не должен знать, ни о карте, ни о существе, ни о небе -- НИ О КОМ, БЛЯДЬ. Это же предмет, он находится НА КАРТЕ и его ВИДИТ существо, которое может с ним взаимодействовать. Алсо, Item у тебя монобех?
>>244465 (OP) Поясните как в этом вашем юнити принято пилить простейшую систему 2д окон (n-экранов + управляющий процесс)? Есть тут какой-нибудь аналог DOM'а и можно ли из его компонентов создавать вьюшки программно а не через этот сраный редактор? Вообще, есть ли нормальные доки/экземплы а не эти видосики для школяров? Где бы почитать не про "программирование мышкой"?
Юнити ругается на последнюю строчку в приведенном коде: >mapCreate.SendMessage("FinalCreateMap"); Текст ошибки: >NullReferenceException: Object reference not set to an >instance of an object >(wrapper managed-to-managed) object:ElementAddr_3_4 >>(object,int,int,int) >CreateWorld.Start () (at Assets/Scripts/CreateWorld.cs:22) Я так понимаю что это из-за пустого tile'а. Но он и должен быть пустым, пока второй скрипт его не заполнит. Как обойти эту ошибку, аноны?
>>246070 >Как? Рекомендованный путь - создаёшь префаб, схороняешь ссылку на префаб, инстансируешь префаб, модифицируешь кодом. Хард вей - разбираешься, как его создать кодом полностью. На англофоруме точно было.
>>246034 Поясняю для нубасов. Берешь свой Item и кладешь его на карту. Если тебе так важно, то регистрируешь на карте появление предмета. Потом берешь своего обоссаного юнита и если он видит предмет в своем ФРУСТРУМЕ, то начинает переключаться на стейт подбора предмета, например. Как только он подошел достаточно близко к предмету, чтобы взять его -- берет и читает данные из инстанса предмета.
>>246072 Массив создай. А вообще, это не код а параша ебаная. Нахуя ты рассовал вот это все в два разных компонента?
>>246071 > Юнити - инструмент в первую очередь для людей желающих дастанцироваться от программирования как можно дальше. Блупринтогосподин, ты тредом промахнулся.
>>246076 >Нахуя ты рассовал вот это все в два разных компонента? CreateWorld может быть разным и пока подразумевается что он будет нужен только в начале.
>>246024 Да, я так и думал. Поэтому и возникла эта проблема. >>246033 У каждого предмета уникальная логика, которая так или иначе взаимодействует с другими объектами на карте. Можешь посоветовать как это лучше сделать? Как хранить эту логику в предмете, не привязываясь ни к чему?
>>246199 Мб к предмету прикрепить скрипт, а когда в скрипте геймдиректора значение "взял меч" станет тру то запускать скрипт меча а в скрипт персонажа передавать все параметры с этого меча которые есть у всех мечей (атакспид, урон..) которые хранить в public List в скрипте меча. Ну и в самом мече прописывать логику абилки мегаудар и всего остального.
>>246206 Откуда мне знать что у тебя должно быть в абилке. Если то что ты перечислил есть в полях геймобджекта героя то сделай в скрипте меча еще и поле с геймобджектом героя и оттуда доставай значения.
>>246210 В каждом предмете что-ли? Это же неудобно. А что, если предметом будет пользоваться АИ? У меня так. Не претендую на правильность, знаю что хуита. "Карта" у меня синглтоном, поэтому получить ее можно где угодно.
>>246214 Лучше не надо. Там говнокод. Скажу только что у меня player и юнит - это разные сущности. Это я спиздил из уеча, где PlayerController управляет pawn-ом.
>>246225 Если хочешь мудрости, то лучше смотри исходники разных игорей. Я например сейчас пытаюсь разобраться в исходниках фанатского движка моррошинда https://github.com/OpenMW/openmw
Не гоните санными тряпками, начал изучать C# и Unity, до этого к программированию не притрагивался, вот прошла неделя моих потуг, а я нихуя не понимаю, вот например надо мне создать игровое поле сетку 10x10, как это сделать? Все что пришло в голову это использовать массивы и присваивать каждой ячейке нужный мне размер (1, 0, 1), но в unity есть всякие вектора, хуйтора, и я не могу сразу учить C# синтаксис и unity синтаксис, я пишу какое-то говно методом тыка которое не работает! Помогите, скажите, что все нормально и дальше будет понятнее или следует учить сначала что-то одно?
>>246330 мм Юнити завязано на работу с объектами больше. То есть, ты закидываешь туда 100 спрайтов (или моделек) клеток, а потом, когда у тебя есть поле из геймобжектов-клеток, можно обращаться к игровому объекту, заносить его в массив, менять его свойства, и т.д.
>>246330 >есть всякие вектора, хуйтора Если ты не знаешь что это такое и как ими пользоваться, значит тебе рано еще таким заниматься. Вот когда в школе пройдешь их, тогда и приходи. И еще тригонометрические функции не забудь.
>>246330 Если вообще умеешь шкодить, то вектора не проблема. Считай, что проект построен на фреймворке, а ты используешь его апи. Погоди-ка...
Попробовал заставить парить свою видеокарту а-ля ховербайк из жеди академи, не фиксил углы наклона и т.д, просто антиграв. Ебать скучно. Хотя изначально анон, видимо, что-то такое и хотел.
>>246620 В исходниках-то наверное было просто != null. Это ж декомпиляция, ну и проверка на null во всех юнити объектах переопределена, так что возможно именно такой il код и генерится.
>>246613 >>246624 >>246629 >>246630 Угаманись ты сука пока я тя не пристрелил, угаманись блять, пару секунд есь жи можно прострелить, продрявить есь жи, пару дырок организовать есь жи.
Пацаны срочно нужна помощь. Как написать скрипт, чтобы мой объект двигался в трёх измерениях? По горизонтали вертикали вверх и вниз? Как это все назначить?
посоны, я хочу отследить не касается ли мой перфаб чего-то другого. Поставил на него коллайдеры с включенной опцией тригера. Почитал и оказывается триггер срабатывает только от соприкосновения с риджитбади! что за хуйня посоны? мне что теперь всему окружению добавлять риджитбади?! Почему с коллайдерами не пашет?
>>246619 >С шейдерами ситуация обстоит сложнее: они извлекаются в уже скомпилированным виде и, насколько мне известно, решений для их автоматической трансляции в удобочитаемый формат не существует. Тем не менее, это обстоятельство не мешает импортировать и использовать полученные шейдеры в другом Unity-проекте. Не забывайте, однако, что подобная «кража» нарушает авторские права и является актом пиратства.
Почаны подскажите может ли подобная конструкция вызывать ошибку. имею ввиду что цикл работает для каждого камня, а после того как я удаляю в нем камень, идет еще код.
>>246841 это в update происходит? (не понятно чей) после цикла своего очисти список destroyList, иначе может неведомая хуйня происходить. Алсо Destroy не обязан моментально распидарасить объект, он сделает это в свободное время между фреймами.
>>246885 вкратце - всякие мелкие объекты которые часто создаются и уничтожаются создаешь заранее неактивными и хранишь отдельно. если надо создать(поместить на сцену) - берешь из пула и активируешь. надо удалить(убрать со сцены) - дизабл и назад в пул. закончились в пуле - создаешь еще пачку. профит в том что операция собственно создания/уничтожения довольно ресурсоемка(не то что бы прям уж сильно, но если это происходит постоянно просадки будут) а активация уже созданного объекта быстрая
Что за хуйня, почему в веб плеере такая хуйня не работает? Все же конпелируется, но такое ощущение что конпелятор виртуальные корутины просто игнорирует
Как вы делаете сохранение объектов при переходе с одной сцены на другую? Например, я на одной сцене передвинул ящики и загрузил другую, а потом обратно на первую, и надо чтобы ящики были там где я их оставл.
начал спрашивать в прикреплённых для ньюфагов, продолжу тут.
Есть одна статик переменная(score) в сцене game, хочу передать её в сцену meny. и отобразить в UI. где можно подсмотреть как эта визуализация происходит? и где почитать о том как прикрутить статистику от гугл плей и ранжировать по убыванию значения разных игроков.
>>246936 первое - тебя интересует именно способ передачи или гуй? если первое - статик переменные доступны всегда, даже если сцена не загружена. но старайся использовать их поменьше, особенно для передачи между сценами. заведи отдельный статик класс или синглтон и передавай через него. гуй элементарно - панелька, текст, скрипт который при загрузке в текст ложит счет
скрипты: restart - перезапускает "игру" score_add - контролирует добавление и отображение очков во время игры score_handler - статик с очками score_onLoad - при отображении меню ложит в текст к которому прибит набранные очки
Блять засагайте уже этот тред, и создайте нормальный. С нормальной шапкой и без сажи блять. Хули у уечегосподинов все в порядке, а у нас полный пиздец, и все жрут говно.
>>246955 ну блин вопрос был про сохранение счета. с го так не прокатит.
разбей объекты на сцене на статичные и динамичные. перед сменой сцены сохраняй состояние динамических объектов(положение, другие какие-либо данные в том числе наличие его воопше). при загрузке сцены проверяй для каждого динамического объекта есть ли для него сохраненные данные, если есть считывай и меняй
>>246940 Ребятки, у меня вышло статиком переносить из одной сцены очки в другую и отображать их, но теперь беда в том, что они не обнуляются при включении игры снова. Как их обнулить??!?!?!?
Вот объясните мне, какого блядь хуя не срабатывает этот ебучийOnCollisionEnter? Эти пидоры там совсем уже охуели. Когда они уже ссаные столкновения починят, два года с них бугурчу блядь, хоть собственный физон пиши.
Один блядь коллайдервнутри иерархии ебучегоrigidbody. Другой блядь на другом RIGIDсукаBODY. Вот блядь прямо блядь на нем. И они сталкиваются. Только вот в скрипте, который прикреплен к первому коллайдеруНИ ХУ Яне вызывается. Че блядь не так то?
Помогите мне наконец, вот есть два луча которые видны только в дебаг режиме, это система обнаружения камерами игрока, мне надо добавить источник света чтобы он светил в секторе ограниченом этими лучами чтобы игроку было понятно где вижн камеры. Я гуглил и так и эдак но не нашел как сделать такой источник света.
>>247149 Ну вот какого я столь косноязычен спросоня, сам нифига не понял. итак
Статические поля инициируются один раз при старте программы или по первому обращению(как решит компилятор) и остаются доступными все время её работы. собственно поэтому не рекомендуется использовать статику для объектов связаных с апи юнити - большей частью они уничтожаются при смене сцены, что приведет к весьма неприятным ошибкам. собственно у тебя public static int score = 0; выполняется один раз так как статик и при повторной загрузке сцены в score остается старое значение. тебе нужно ручками записать туда 0 при загрузке сцены. самый простой способ - в Awake() который вызывается при создании объекта
>>246969 Хуле тебе еще надо, даун? Ты спросил, как сделать чтобы ящики оставались там, куда ты их сдвинул, пока по сценам перебегаешь, я тебе ответил. Слишком очевидно получилось? Не задавай глупых вопросов тогда, уебок
>>247153 Я по твоему совсем ебанутый? Нет. Это баг говноюнити. Если первый коллайдер вытащить из рижидбоди, то все отлично срабатывает, а вот внутри иерархии - нет.
>>247192 Кек. Даун не знает про нормали. Олсо, весь физон в юнити - это физикс. Идентичный на 100% физон используется в уе4, например. То, что ты описал - это не баг.
Что мне не нравится в юнити: 1. Дебильное название основного класса для скриптов: MonoBehaviour. 2. все проперти начинаются с маленькой буквы, а в стандартных библиотеках все проперти с большой. То есть юнитидебили клали хуй на стандарт. 3. Нельзя поменять имя проекта с Assembly-CSharp 4. Невозможно определить префаб ли этот объект или нет. 5. Нельзя сохранять префабы компонентов.
Тащемта это у юнити дрисня вместо архитектуры. Самая пушка в том, что если по ошибке вместо инстанса изменить данные со ссылкой на префаб в редакторе, то все старые данные проебутся.
Еще ассеты со сцены сохраняются не в сцене. Например, редактируя terrain все данные напрямую записываются в созданный в проекте ассет. Хочешь отменить редактирование terrain'а открыв проект заново? Соси хуй, лалка, такого не предусмотрено уебищной архитектурой.
>>247201 Послушай сюда, кусок говна. Ты видимо слепой или тупой, но вопрос ты нихуя не прочитал или не понял. Иди нахуй со своими вебм и нормалями, которые вообще отношения к делу не имеют. Я твоего деда на хую вертел.
>>247210 >НИРАБОТАИТ! БАГ! >Вот же, работает >НИРАБОТАИИИИТ!
>>247208 Это сделано не просто так. Благодаря этому можно редактировать загруженные в рантайме террейны, например. Если тебе это неудобно, можно набросать скрипт, который будет сохранять данные и в ондестрой заменять твои отредактированные сохранёнными. Для меня это очень удобная фича, мне наоборот не удобно, что не все данные так можно редактировать.
>>247216 Но проблема в том, что вызывается. Куб находится в пустышке, коллайдер на кубе, на пустышке скрипт и ригидбади, поверхность - куб с коллайдером, шар имеет ригидбади и коллайдер. OnCollisionEnter сохраняется точка контакта, из неё рисуется луч. Всё работает.
>>247221 Тупой кретин, скрипт на самом кубе висел. И в таком случае он нихуя не вызывается. Естественно, если повесить его на пустышку то вызов сработает. Только дело в том, что в иерархии и другие коллайдеры есть, на которых я не хочу проверять столкновения. А теперь иди подмывайся.
>>247233 В общем у меня в концепции получается 2 типа объекта: объекты, которые всегда есть на сцене и ищутся по ID, и объекты которые создаются в после загрузке сцены из префаба.
>>247245 Можно было бы списать это на опечатку, но я пятьсот раз проверил и у меня вообще все связанное с коллизиями в такой ситуации не работает. Включая OnCollisionStay. Если триггер сделать, то OnTriggerХуйня вызывается. Попробую унити обновить чтоли.
>>247204 >В рантайме тебе и не надо знать, префаб объект или нет. Хотя если ты не знаешь этого, значит у тебя просто дрисня вместо архитектуры. Просто ты никогда не имел дело с ScriptableObject.
>>247468 Отрефакторить, создать фабрику, которая будет создавать объекты мамка и папка, всё это на лямбдах, захуярить пару паттернов (чтоб, как у людей, чтоб бохато) и перенести в pile. Рандомно выбирать из кучи пару объектов и ебать один другим. И так, пока память не кончится.
Так, ребят. Меня пропёрло делать ММО убийцу ВоВ и линейдж. Но велосипедить сложную логику я не хочу, хочу сразу готовое решение, плюс я вряд ли смогу написать что-нибудь более-менее качественное. Советуй ассет, в общем.
>>247965 >но там это как-то проверяется? Да, приедет группа проверяющих, будут пиздить тебя ногами два часа, выбивая признательные показания. Если не расколешься - ассет пройдет в стор.
>>248132 Окей, решил запилить тпс шутан максимум за джве недели, сцайфай и заигрывания с хоррором, для начала один уровень с парой-тройкой врагов. В качестве эксперимента - есть реально готовые пилить тпс шутан, а не мобилкоговно?
>>248411 Пхп считается слоупком же. Бери кресты или джаву рама нынче дешевая уже дорогая.
>>248605 День первый. Накалякал сценарий для всей нахуй игры, реально планирую использовать три строчки из всей простыни. Всё равно все идеи пизженные. Набросал из примитивов один уровень. В целом, всё в стиле старых добрых шутанов из прошлого. Начал моделить гг и разбираться, почему зеро фрикшн материал вызывает подёргивания.
>>249001 Так, я нашел свою ошибку, правильно батчится будет если слой ГО, и сортировочный слой спрайтов будут совпадать. http://puu.sh/nW6O1/81b4075738.png Спасибо за помощь, добродвач.
>>248919 День второй. Посмотрел тпс контроллер из стандартных ассетов, движение анимацией, ну нахуй. Написал свой. Поколдовал над персонажем, анимации взял готовые. Мотивация пропала. Пиздос