Этого треда уже нет.
Это копия, сохраненная 8 июля 2015 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
24 Кб, 434x434
Официальный Unity3D Тред №20 копипаст шапки эдишн #162871 В конец треда | Веб
Официальный сайт:
http://unity3d.com/

Торренты:
http://cgpeers.com/torrents.php?searchstr=unity

Сохранение форматирования кода:
не работает, сука, жаловаться можно здесь:
https://2ch.hk/d/res/194351.html

Предыдущий тред:
https://2ch.hk/gd/res/159820.html
#2 #162876
ну и сразу вопрос, лол.

есть 2д прямоугольник (1), висящий на hinge.
оба якоря hinge в одной точке, посередине тела.
то есть, банальные качели.

к одному из плечей этих качелей еще одним hinge'м примотано другое тело (2).

что я хочу: таская (2) мышью, вращать (1) вокруг его оси.
что я сделал: на каждом апдейте в (2).rigidbody2d.velocity пишу дельту от курсора мыши до (2).transform.position.
что я получил: хуйню. (1) без проблем ездит по оси вслед за (2)
похоже, что velocity важнее, чем джоинты.
#3 #162877
в пастбин не добавить, само собой. http://arhivach.org/thread/74728/
22 Кб, 567x274
MMO уровня юнити #4 #162882
Начал пилить свою маленькую уютную ммо на полностью ванильном юнити, с использованием юнити мастер сервера.
Серверная и клиенсткая части будут пилятся в одном проекте, на раздельных сценах. Оформил контроллер персонажа сервером, вроде работает. Пока единственный подводный камень - сложно дебажить это говно, нужно постоянно лезть в настройки билда, убирать/снимать галки, билдить, потом все это запускать, короче брр, но я привыкну. Все ли правильно делаю, или это говно не способно взлететь в принципе? инб4 юзай фотон норкоман
#5 #162886
>>162882
У юнити говняная реализация сети, как по мне. Когда я эксперементировал с сетью, то немного поковырял родные возможности юнити, а потом съебал на лидгрен. Но конечно посложнее будет для ньюфака. Ссыль: https://github.com/lidgren/lidgren-network-gen3
#6 #162888
>>162862

>Что примечательно - полно же народу с юнити возится. Полно народу сюда пишет. Но всем блядь лень пилить перекат. И каждый раз так, тред может и на вторую страницу погрузиться но страниц больше нет, но всё равно перекат пилить не будут и продолжат писать в старый.



Лёл, всем на всё похуй, последние тредов ~5 пилил я, архивач и жалобу абу тоже.
Шапка инвертированная заебись получилась.
sage #7 #162889
>>162871
Движок называется не Юнити3Д, а просто Юнити. В называющем его 3Д можно сразу детектить уебана-топ-менеджера, желающего срубить бабла на быстротуториалах, слепленных на коленке... или ОПа-хуя.

Пруфец в самом начале видео
https://unity3d.com/ru/learn/tutorials/modules/beginner/live-training-archive/tips-tricks
#8 #162893
>>162889

>Движок называется не Юнити3Д, а просто Юнити.


Две убунты этому виндузятнику
sage #9 #162928
>>162889
>>162893
Предлагаю обсуждению этого ультраважного вопроса посвятить весь оставшийся тхреад.
#10 #162948
>>162882
Пили клиент-сервер в одной сцене, как в каэсочке, и не еби мозги. Взлететь может, какой-то шутан в лицокниге пиарили активно, на такой хуйне сделан. Только с фотоном.

>>162888
А ещё это ты регулярно и жалуешься в тот тред о форматировании и написал там что-то вроде "абу пидор" или "я ебал абу", точно не помню, но таким шрифтом, что я охуел. Диванон! А, стоп. Не.
Но хуй там абу что вернёт своими волосатыми ручонками.

>>162889

>Движок называется не Юнити3Д


>Пруфец


>unity3d.com


Ну лан. Вообще, есть же совершенно другой движок, который называется юнити энгайн. Был, по крайней мере.
#11 #162955
>>162948
Они похоже изначально целились в 3д и назвались соответственно, а потом поняли, что их преимущество перед аналогами - 2д под мобилочки и выпустив соответствующие инструменты убрали из названия 3д. Ctrl+f по главной странице ни одного 3д не выдает.
29 Кб, 718x371
#12 #162983
Ребят, я полный Игорь, в интерфейс юнити понял, но с коддингом проблемы, хоть и понимаю. Понимаю, но создать не могу. Где есть хорошие туториалы/обучалочки для даунят? Не очень люблю упарывать мануалы по овердохуя страниц и составлять логических цепочки.
#13 #162992
>>162948

>А ещё это ты



░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
#15 #163021
>>162871
Эх, анончики, какк же меня удручает, что в юнити нет коллбэков/слушателей изменения пропертей и игровых объектов. Ну это же трындец. Я хочу знать, когда значение проперти изменилось или когда объект добавился-удалился и все в таком духе. Походу придется в Update() проверять изменения, херя производительность.
#16 #163024
>>162992
Вот-вот, это самое.

>>163021
Активность объектов не меняется сама собой. Вот где её меняешь - вот там и твой слушатель. Нахера лишний раз проверять, если ты сам и меняешь состояние? К тому же, проверить пару булов на тру-фолс - пиздец, какая потеря производительности. Проверяй в корутине, чтоб не дёргать каждый апдейт, если совсем уёбок.
#17 #163030
У меня вопрос, в Unity можно создавать 3х мерные модели домиков, животных, в хорошем качестве и анимировать их через скрипты?
#18 #163031
>>163024
Вот они - юнити-профессионалы. Прям как гордые голуби: налетят и насрут тебе на голову.

>Нахера лишний раз проверять, если ты сам и меняешь состояние?


Во многих случаях состояние меняют не мои скрипты, а какие-нить сторонние либы, или например то же гизмо в редакторе, которое меняет трансформ.

>проверить пару булов на тру-фолс


Как насчет десятка матриц 4х4?
#19 #163032
>>163030
Хочешь запилить процедурную генерацию контента штоле? Да, можно.
#20 #163033
>>163031
Но ведь если подумать, твои коллбеки - это те же самые вотчеры, просто реализованные в другом месте и до тебя.
#21 #163036
>>163021
может, ты ошибся в выборе инструментов? 90% вопросов, начинающихся с "а почему тут нет..." решаются ответом типа "это есть там". найди движок под твои требования.
#22 #163037
>>163032

Нет,я спрашиваю, что лучше пилить и анимировать 3D модельки сразу в Unity. Или в 3Dmax, а потом импортировать в Unity? Чего, будет выдавать лучшее качество и меньшее время?
#23 #163038
>>163037

>Или в 3Dmax, а потом импортировать в Unity


Зис. Ебашить в юнити - себе дороже, она не для этого придумана.
#24 #163040
>>163036
Одно есть здесь, другое есть там, что-то еще есть вот там вот. Так рассуждая, вообще нельзя остановиться на каком-то одном движке.
>>163033

>вотчеры


Штоэта? Watchers? Ты имеешь в виду паттерн Observer?
А вообще, круто было бы прикрутить events из C# для этого дела.

Ну с со слушанем пропертей еще куда ни шло. Но вот есть у меня игровой объект, у которого строго определены дочерние объекты. Но дизайнер может случайно или по незнанию удалить один из дочерних объектов, что тогда делать? В Юнити, насколько знаю, нельзя запретить удалять объекты в редакторе, так что остается в Editor-е при каждом апдейте проверять, все ли объекты на месте, вместо того, чтобы слушать события-оповещения удаления объектов. Если у меня этих дочерних объектов, утрированно, тыща штук, всю тыщу проверять при каждом апдейте как-то хуэвато.
#25 #163041
>>163040

>круто было бы прикрутить events из C# для этого дела



Чот я не пойму, а что тебе мешает-то? В юнити вполне себе полноценный шарп.
#26 #163046
>>163038

А если сделать у здания или у модели транспорта постоянно движущуюся часть(допустим колесо мельницы или пропеллер у вертолёта) в 3D max то они будут сразу работать в Unity или придётся для них отдельно писать скрипт?
#27 #163047
>>163046
Почитай уже мануалы. Да, будут.
#28 #163064
>>163031

>например то же гизмо в редакторе


То есть, ты игроку дашь сцену и скажешь "скачай юнити, играй в режиме редактора"? Ты чё, ебанутый?

>дизайнер может случайно или по незнанию удалить один из дочерних объектов, что тогда делать


0. Пиздить дизайнера ногами.
1. Выдавать ошибку в приложении и закрываться.
2. Объекта не стало не в рантайме, а до запуска - одной проверки при запуске сцены будет достаточно.
#29 #163067
>>163021
Ты придумал хуевый дизайн. В этом все дело. Зачем знать когда изменились переменные? Что это тебе даст? Расскажи что тебе именно надо сделать, и я скажу как это надо делать нормально.
#30 #163069
>>163041
Руки из жопы ему мешают, очевидно же.
#31 #163071
>>163040

>Но вот есть у меня игровой объект, у которого строго определены дочерние объекты. Но дизайнер может случайно или по незнанию удалить один из дочерних объектов, что тогда делать?


Можно скрыть эти объекты, чтобы они не показывались в иерархии. Тогда случайно никто ничего не удалит.
#32 #163080
ШОК! СИТИС СКАЙЛАН СДЕЛАНО НА ЮНИТИ!

я только что узнал
8 Кб, 277x182
#33 #163082
Посоны как поверить в себя?
Я не знаю что делать со своей жизню, потому подумываю сделать игоря. Но только я начинаю об этом думать, только ставлю на закачку юнити. Как вспоминаю сколько игорей уже сделано, сколько идей уже реализовано, ито что я хочу сделать например уже гдето было. И я отменяю закачку юнити, и снова иду аутировать в ммо.
#34 #163083
>>163082

>сколько игорей уже сделано


А играть не во что.

>сколько идей уже реализовано


У большинства идей реализация так себе и ее еще можно дорабатывать напильником, чтобы ценители обкончались от радости.

>уже гдето было


Да и хуй с ним, комплекс фич почти уникален для каждой игры, несмотря на реализацию таких фич где-то еще.

>аутировать в ммо


Лол, аутировать можно что угодно. Сидишь в ммошке без результатов и совршаешь тонны однообразных действий, или сидишь в юнье и делаешь тоже самое. Разница только в общении, но подлиным атутистам на него похуй им и синглплеер вставляет.

Кароч, ты либо титан одниночества с туманными преспективами, либо тёма.жпг
#35 #163084
>>163083

>либо тёма.жпг



кто такой, чем знаменит?
#36 #163086
>>163083

>У большинства идей реализация так себе и ее еще можно дорабатывать напильником, чтобы ценители обкончались от радости.



Но как у меня может получиться лучше чем у какой-то юбисофт?
#37 #163088
>>163067

>Ты придумал хуевый дизайн.


g functional reactive programming
kek
#38 #163089
>>163082
Запили симулятор крестьянина, возделываешь поля, доишь корову, смотришь, как помещик ебет твою жену и дочку, ходишь на рыбалку.
Эдакий выживач, но в деревне без монтсров и зомби.
И время поставь, чтобы игровая минута была равно ирл минуте. Прикрути кооп и аутируйте до посинения.
#39 #163092
>>163089
farming simulator 2015
#40 #163093
>>163092
Но с лопатой!
21 Кб, 604x454
#41 #163103
>>163084
Как-то так.
У меня вообще другая проблема - пока в игре нет совсем нихуя - мне интересно. Начал пилить шутан. Прихуярил одну анимацию, контроллер персонажа, слоу-мо, врагов-капсули, к ним подобие ии (очень примитивное, но сложнее и не надо). Заебало. Начал пилить ммо, хуйнул инвентарь, поебался с прискиниванием шмота в рантайме, прихуярил таймер, который отправляет передвижение на сервер, хуйнул простенький сервер, прихуярил шифрование и отключил, чтоб не грузило. Заебало. Думаю, перекатиться обратно на php и написать ещё десяток браузерок.
#42 #163104
Посмотрел я тут немного туториалов по юнити. Оказывается все легко. Такуюто йоба игру запилить можна в пару кликов.
Вот только в туториале опустили один момент.
ДИЗАЙН вот эти все текстурки, интерьеры, анимации. Это все если самому делать кажется пиздец задачей, если ты не прирожденный дизигнер с челкой.
#43 #163105
>>163064

>То есть, ты игроку дашь сцену и скажешь "скачай юнити, играй в режиме редактора"? Ты чё, ебанутый?


Моя конкретная задача сейчас - это как раз узнать, когда изменяется трансформ с помощью гизмо в дизайн-тайме для моего редактора уровней. Задача: тайлы должны распологаться в узлах нерегулярной квадратной сетки, и я хочу, чтобы гизмо снаппил перемещаемый объект в ближайший угол сетки. Так же я хочу в дизайн-тайме сохранить в скрипте тайла индекс узла сетки, на котором он сейчас расположен. Как это сделать? Сейчас в Editor-скрипте для скрипта тайла я на каждый апдейт беру текущий трансформ тайла, вычисляю индекс ближайшего узла сетки, беру его позицию в сцене и пихаю обратно в трансформ. Но это ппц. Нэкрасиво.

>>163064

>2. Объекта не стало не в рантайме, а до запуска - одной проверки при запуске сцены будет достаточно.


Во время экспорта сцены можно проверить ее состояние и вроде как выдать ошибку, с помощью этого http://docs.unity3d.com/Manual/BuildPlayerPipeline.html (хотя я еще не пробовал).
Но все равно, если дизайнер таки удалит служебный объект, то его работа остановится до тех пор, пока я не объясню ему, как это пофиксить, а это долго и чревато. Так что такие вещи надо решать заранее.
#44 #163107
>>163071

>Можно скрыть эти объекты, чтобы они не показывались в иерархии.


Как это сделать?
139 Кб, 535x820
#45 #163108
>>163082
Вот тебе картинка для мотивации.
#46 #163110
>>163105

>распологаться


располагаться

быстрофикс
sage #47 #163130
>>163104

>ДИЗАЙН вот эти все текстурки, интерьеры, анимации. Это все если самому делать кажется пиздец задачей


Так и есть.

>>163107
GameObject tile = new GameObject();
tile.hideFlags = HideFlags.HideInHierarchy;

>>163105
Можешь тягать тайлы не с помощью стандартного гизмо, а свой велосипед наваять. Чтобы отключить инструменты можно использовать:
Tools.current = Tool.None;
#48 #163140
АНАНАСЫ ИЗ PR ЗАПИЛИЛИ ПОДСВЕТКУ

https://github.com/ololoepepe/MakabaCode
https://2ch.hk/pr/res/457262.html

себе поставил, заебись

тест
[code lang="C#"] %using UnityEngine;
using System.Collections;

public class ExampleBehaviourScript : MonoBehaviour
{
void Update ()
{
if(Input.GetKeyDown(KeyCode.R))
{
gameObject.renderer.material.color = Color.red;
}
if(Input.GetKeyDown(KeyCode.G))
{
gameObject.renderer.material.color = Color.green;
}
if(Input.GetKeyDown(KeyCode.B))
{
gameObject.renderer.material.color = Color.blue;
}
}
}

% [/code]
#48 #163140
АНАНАСЫ ИЗ PR ЗАПИЛИЛИ ПОДСВЕТКУ

https://github.com/ololoepepe/MakabaCode
https://2ch.hk/pr/res/457262.html

себе поставил, заебись

тест
[code lang="C#"] %using UnityEngine;
using System.Collections;

public class ExampleBehaviourScript : MonoBehaviour
{
void Update ()
{
if(Input.GetKeyDown(KeyCode.R))
{
gameObject.renderer.material.color = Color.red;
}
if(Input.GetKeyDown(KeyCode.G))
{
gameObject.renderer.material.color = Color.green;
}
if(Input.GetKeyDown(KeyCode.B))
{
gameObject.renderer.material.color = Color.blue;
}
}
}

% [/code]
#49 #163141
>>163140

тест
[code lang="C#"] using UnityEngine;
using System.Collections;

public class ExampleBehaviourScript : MonoBehaviour
{
void Update ()
{
if(Input.GetKeyDown(KeyCode.R))
{
gameObject.renderer.material.color = Color.red;
}
if(Input.GetKeyDown(KeyCode.G))
{
gameObject.renderer.material.color = Color.green;
}
if(Input.GetKeyDown(KeyCode.B))
{
gameObject.renderer.material.color = Color.blue;
}
}
}

[/code]
#50 #163142
[code lang="C#"]
using UnityEngine;
using System.Collections;

public class ExampleBehaviourScript : MonoBehaviour
{
void Update ()
{
if(Input.GetKeyDown(KeyCode.R))
{
gameObject.renderer.material.color = Color.red;
}
if(Input.GetKeyDown(KeyCode.G))
{
gameObject.renderer.material.color = Color.green;
}
if(Input.GetKeyDown(KeyCode.B))
{
gameObject.renderer.material.color = Color.blue;
}
}
}
[/code]
#51 #163143
>>163104

>>Посмотрел я тут немного туториалов по юнити. Оказывается все легко.



Хахахахахахахахахахахахахахахахахахахахахаха
Вот уеч, там да, все легко.
32 Кб, 1123x846
#52 #163144
>>163142
О, вот теперь точно заебись.
#53 #163145
Ещё тест

[code lang="JS"]

[/code]
#54 #163147
>>163144
умножения проебутся все равно
4 Кб, 1116x155
#55 #163148
>>163147

СУКАПЗДЦ, точно

>>163147
#56 #163149
[code]
2 * 2 = 4
[/code]
#57 #163150
[code]
using UnityEngine;
using System.Collections;

public class ExampleSyntax : MonoBehaviour
{
int myInt = 5;

int MyFunction (int number)
{
int ret = myInt * number;
return ret;
}
}
[/code]
10 Кб, 561x509
#58 #163151
>>163149
>>163150

>>163147


РАБОТАЕТ УМНОЖЕНИЕ, ЮЗАЙТЕ!
нужно добавить в следующую шапку.
#59 #163154
Сделайте, кстати, скриншот,
как у вас без скрипта выглядит.
29 Кб, 481x498
#60 #163155
>>163154
Как гавно
#61 #163156
>>163155
Но звездочка есть, да?

Кароч ставьте скрипт, заебись теперь будет.
В настройках себе добавьте охват gd
#62 #163157
>>163156
Есть
#63 #163159
>>163130
Спасибо, анончик, HideFlags.NotEditable - это то, что нужно для моего служебного объекта.
Насчет Tools.current стоит побольше поковыряться в доках и примерах, но тоже походу годнота.
6 Кб, 123x99
#64 #163191
Привет, аноны. У меня тут проблема: слой "GameOverScreen" в UI находится поверх слоя "TowerPanel". "TowerPanel" - это панель с кнопками. Кнопки не нажимаются, когда поверх них что-то есть, а нужно чтобы нажимались. Помогите реализовать.
#65 #163202
>>163130

>Так и есть.



А где бесплатно без смс взять вот эти все текстурки, интерьеры, анимации? И если я сделаю игоря из таких бесплатных текстурок, интерьеров, анимаций - я потом смогу продать игоря?
#66 #163206
>>163202

>И если я сделаю игоря из таких бесплатных текстурок, интерьеров, анимаций - я потом смогу продать игоря?


>где бесплатно



Нужно смотреть лицензию каждой текстурки и хуйнюшки.

Текстуры - если серьёзные сайты типа cg tetures, то можно,
но опять же, смотри лицензию.

Если изменяешь текстуру до, скажем "на глаз" 60-80% неузнаваемости относительно исходника,
то терпимо, но рискованно.

Интерьеры - такого вообще нет по-ходу, разве что адовое говно, покупай на асетсторе.

Модельки - есть, гугли, смотри внимательно лицензию.

Лично я не находил ничего внятного кроме фришных анимаций из асетсора и древнючего пака ~уёбищных анимаций для 3дмакса.
Если кто знает где мокапы (на сиджипирс м.б.?) скачать без смс, делитесь.

Но ты же говно своё продавать вряд ли будешь, так что можно качать всё подряд, во фришных играх похуй на лицензию.
#67 #163207
>>163206

>Если изменяешь текстуру


платную/краденую
316 Кб, 1366x768
#68 #163213
Пилю тут Tower Defense. Как мне заставить мобов идти именно по этой каменной дорожке? Потому что сейчас они у меня идут по самому короткому пути к противоположному шатру.
317 Кб, 1366x768
#69 #163214
>>163213
Сорт оф траленк, или ты обкириллился?
Аноним #71 #163222
>>163217
Молодец. Теперь можешь пойти делать литературу. Завтра в колледже по ней контрольная.
#72 #163223
>>163217
Я полагаю, что у тебя уже готовы модельки, анимации, шейдоры и прочий графоний для твоей еба игры для на УЕ4?
#73 #163226
>>163214

А можешь мне подсказать, пожалуйста, как это закодить? У меня в этом был вопрос
#74 #163227
>>163226
тебе тот ананас невидимые шатры на пути нарисовал
#75 #163228
>>163226
Есть постоянно шагающий мод, есть цель, к которой он всегда повернут лицом, как только дошагал до цели - меняешь цель на следующую, моб поворачивается к другой цели и продолжает движение, если цель конечная - взрываешь моба, все.
#76 #163229
>>163228

>моб

#77 #163232
>>163228

Чувак, я не кодер, и кодить не умею, весь код там спижженный, помоги пожалуйста.
#78 #163235
>>163232
Цена вопроса?
#79 #163236
>>163040
Вместо коллбеков есть делегаты и эвенты.

Делаешь статческий класс с методами Observe, который хавает ключ эвента и коллбек, и Trigger, который хавает собственно ключ и EventArgs, в который ты запихиваешь все нужные аргументы.

В том месте, где ты что-то меняешь, триггеришь эвент. Если у тебя редактор или сторонние либы меняют что-то, то экстендишь их и хуяришь эвенты после базового метода от их имени.
#80 #163237
>>163232
Ну тут у тебя только один путь, дружище: учиться кодить. Либо ты находишь кодера и вы с ним разделяете обязанности (ты - арт, программер - код). Выпрашивание у ананчика на бордах кода - это путь в никуда.
#81 #163238
>>163237

Ладно
#82 #163239
>>163236

>экстендишь их и хуяришь эвенты после базового метода от их имени


Если архитектура позволяет, ога.
#83 #163240
>>163239

А как она может не позволить? Метод, который что-то меняет, должен быть явен в коде, что значит что его можно оверлоаднуть, вызвать его же и триггер. Если это что-то совсем тёмное и левое, то можно тупо рефлекшном прорубиться куда угодно и просто подменить метод.
#84 #163243
Бананасы, у меня очередной принципиальный вопрос.
Вот есть у меня игровой объект, к нему приаттачен скрипт, в котором написана логика объекта. У объекта могут быть дочерние объекты - инстансы префаба. Для скрипта объекта есть Editor-скрипт, который рисует кнопку "Добавить итем" в инспекторе, по нажатию на которую должен создасться инстанс и добавиться как дочерний объект к нашему объекту.
Собственно вопрос: где реализовывать логику добавления итема - в самом скрипте (функция, которую вызывает эдитор-скрипт) или собственно в эдитор-скрипте?
#85 #163245
>>163240

>А как она может не позволить?


Sealed class или sealed method например. Вообще, в нормальной архитектуре автор позволяет переопределять только те методы, которые логически предназначены для переопределения, но не все остальные.
#86 #163246
Бля, ну кто просит Юнити так разъебывать трансформ объекта, после того, как его в скрипте добавляют как дочерний объект к другому объекту. Юнити, ну что ты делаешь?
#87 #163247
>>163246
transoform.SetParent(..., false)
#88 #163250
>>163247
Ну вот почему хитровыебанное поведение, о котором его никто не просит, стоит по умолчанию, и чтобы его отключить, нужно поставить какой-то скрытый злоебучий флаг, который хуй найдешь?
#89 #163252
>>163245
А рефлекшн у тебя для чего?
#90 #163254
>>163252
А он тут при чем? Ну узнаю я, какие переменные-члены у класса, что мне это даст?
Mono Develop #91 #163255
Посоны, какой редактор кода использовать с Unity? В Mono Develop расстраивает отсутствие возможности свернуть функцию, плюс он притормаживал при переключении между скриптами.
Хочется иметь всё это плюс тёмная цветовая схема и возможность заходить в Debug Mode.
#92 #163258
>>163255
У jetbrains же есть что-то
#93 #163259
>>163258
Для шарпа у брейнсов до сих пор окромя решарпера под студию нихуяшечки.
#94 #163260
>>163259
Ну а что ты хотел, там есть VS, а сисярп не под вендой это как минимум СТРАННО. Попробуй поставить параллелс и вендой, туда тот же VS и прикрутить к юнити
#95 #163266
>>163130
Я помню, можно было как-то добавить свой translation gizmo в редактор. Ты случаем не знаешь как?
#96 #163270
>>163222

>литерату


>делать

#97 #163271
В общем так посоны, я уже собрался спать, и как любой анан перед сном вздрочнул, и уже засыпая, понял что моя жизнь пуста.
По этому теперь я буду делать ммо рпг.да, я нихуя не умею, а ещё я умственно отсталый, ну то есть у меня нет диагноза, но думаю если со мной пообщается психиатр, он будет...
Что мне нужно для этого?8
#98 #163272
>>163271

>ммо рпг


>Что мне нужно для этого?


Текстурки, модельки, анимации, декорации, спецэффекты, много кода, тестеры, идея, сюжет
#99 #163273
>>163272
Защита от читоров, большой-большой детализированный мир, серверное железо, сайт, форум, админ, багтрекер, демки, реклама, мувики
#100 #163274
>>163271
Еще потратить пару месяцев на изучение матчасти, чтобы понять основные принципы построения серверной логики
#101 #163275
Надеюсь, он не выпиливаться пошел?
#102 #163277
>>163266
Таким не занимался, но думаю это не сильно сложно сделать. Рисуешь стрелочки в OnDrawGizmos(), перехватываешь события мыши и тягаешь свои объекты куда надо.

>>163255
Visual Studio + Resharper

>>163250
Было бы другое поведение по умолчанию и мудило вроде тебя опять бы пришел жаловаться. Учись смотреть список перегруженных методов прежде чем обиженку строить.

>>163243
Если во время игры не будет использоваться метод для добавления объекта, то лучше вынести в эдитор. Ну и само собой это при условии, что этот метод не использует активно внутренние данные скрипта висящего на объекте.
#103 #163278
>>163271
Самое главное - это конечно же придумать название. Потом нужно создать паблик вконтактике и начать собирать команду. Ну а дальше оно само пойдет.
#104 #163284
А я умею ваять модельки и слегка кодить на плюсах.
Смогу запилить свою банишд?
596 Кб, 1600x900
167 Кб, 900x675
#105 #163285
>>163284
Но правда меня бесит квадратная застройка в банишед, буду пилить дороги по кривым безье.
#106 #163298
>>163272
Мир, идея, сюжет, есть.

>>163273
Форум и сайт написать могу. Знаю пхп(довольно хуёво).
Можно про железо попожробней?
Если я например запущу её в стим гринлайт, мне разрешат юзать сервера габена?

>>163274
Вот затем я к вам и обратился.
#107 #163299
>>163271
Принять Ислам. Сириусли, как вы, блин, не понимаете, что ммо — самые сложные, маштабные и затратные проекты? Первая мысль, что появляется у школьника — это ММО или СИМУЛЯТОР ЖИЗНИ.
#108 #163300
>>163298
Я так понимаю для начала мне в команду нужны:
Ххудожник, чувак знающий толк в серверах, (маркетолог на примете уже есть я его ебу точнее его руку) настоящий програмист а не обезьянка типа меня. Историк(игра будет типа историческая, а не фентези говно)
И всё ? Можно приступать?
#109 #163303
>>163299
Ну, у меня не с открытым миром, да и вообще это скорее шутан с прокачкой.
#110 #163305
>>163299
И да, я понимаю всю сложность этого дела, но если я этого не сделаю, меня изнасилуют, так что всё ещё жду толковых советов,
#111 #163308
Какой язык програмирования я должен знать?
#112 #163311
>>163213
Как вариант, можно без кодинга повесить навмеш только на эту тропинку и мобы не смогут ходит вне этой тропинки.
#113 #163314
>>163300

>мне в команду нужны



- художник,
- чувак знающий толк в серверах
- настоящий программист
- историк

Но нужен ли ты им?
Эпоха метамодернизма ёпт,
все нетакиекакфсе устали друг от друга,
попробуй-ка своим говном кого-то заинтересовать.
удачи, я в тебя верю

https://www.youtube.com/watch?v=P4hTa6uYAFs
#114 #163316
>>163314

>все нетакиекакфсе устали друг от друга,


Когда было иначе? Это же вытекает из определения "нитаких как все".
26 Кб, 674x694
#115 #163319
>>163314

>художник



Я готов
1251 Кб, 674x694
#116 #163320
>>163319
Я и в анимацию могу
#117 #163325
Я знаю что братся сразу за масштабный проэкт это сложно, но что если если бы также разсуждал Джобс:
-Стив! Я придумал охуенную тему! Мы запилим макентош!
-Нет, Стив, это слишком сложно, пошли лучше сосать хуи на трасе! Стив... пошли... сосать... хуи...
#118 #163327
>>163325
Apple, Apple II, Apple III, Apple Lisa, Macintosh.
Как-то так.
Свои охуительные выдумки впредь оставляй при себе.
#119 #163329
>>163327
Окай ну ты поня л что я имел в виду, они сразу взялись за компьютер, а не начали пилить калькулятор.
#120 #163333
>>163329
Ну так и тут никто не предлагает пилить крестики-нолики, можно начать с понга или змейки.
Впрочем, калькулятор - составляющая часть любого компьютера, так что они таки начали с него, да.
sage #121 #163336
>>163329

> сразу взялись за компьютер


Тогда все брались за него, глупыш. Такое было время, ПК как бизнес-концепции ещё не полноценно сложилась, процессоры и провода продавались россыпью. Они всего лишь оседлали тренд, сделав ставку на внимание к мелочам. Грубо говоря, выстрелило не охуенное инженерное новаторство возняка, а педантичность и скурпулёзность джобса, поданные под соусом элитности. Грубо говоря, они продавали полированные корпуса, когда остальные продавали корпуса с торчащими пластмассовыми излишками.
#122 #163354
>>163305
Мой тебе совет - смазку купи заранее.
#123 #163366
>>163191
Нужно разбросать эти элементы по разным холстам. Жаль, что пришлось самому себе отвечать.
#124 #163367
>>163366
Зачем тебе нажимать на кнопки, если над ними что-то есть? Настрой размеры rect transfom правильно, чтобы элементы друг на друга не налазили.
#125 #163373
Опять в ассет строе сломали кнопку покупки.
Схуя я должен покупать собственные асеты?
Вопрос по iOS #126 #163408
Братцы, кто-нибудь разрабатывал под этот ад? Интересуют следующие моменты:
Что с разрешением для разных девайсов? Айфон, айпад, ретина и всё это дерьмо? Нужно делать овер дохуя атласов и как-то между ними переключатся при запуске игры в зависимости от разрешения или юнька сама всё это делает ?
Мб есть ещё какие-то подводные камни, о которых лучше всего узнать в начале разработки?
Кликалка в стиле кетчаповских игорей
#127 #163442
>>163367
DamageScreen - это картинка с малиновым вареньем поверх всего. В нормальном состоянии альфа-канал у нее на нуле, при получении урона она на время становится видимой.
#128 #163446
>>163442
А чего бы ее не отключать в нормальном состоянии, а не ставить альфу в ноль? При нанесении урона - включаешь.
Не думал об этом, гений?

Я хуею с вас, ананасики. Придумывают себе ебанутую логику и ябутся с нею.
#129 #163462
>>163446
Но тогда, когда она включается(а это происходит во время блядь игры), на кнопки нажать не получится. И что в итоге - в тебя стреляют, ты пытаешься убежать или стрелять в ответ, но тебе мешает ВАРЕНЬЕ !
Мимопроходил
#130 #163463
>>163462
Ну так это тоже самое что и у него. Только у него всегда нельзя нажимать на кнопку, потому что ВАРЕНЬЕ блокирует.
А у меня хотя бы когда его нет - можно жать на кнопки, когда есть - нужно жать на варенье. Все логично жи.
#131 #163531
Нужно в скрипте указать базовый класс, и потом как-то назначить в эту переменную любой из наследников, да так чтобы они показывались в инспекторе и сериализировались. Это вообще возможно?
#132 #163532
>>163531
Например, у меня в игре есть класс Goal для целей персонажей. И много наследников этого класса, которые реализуют специальные цели. Я хочу в редакторе для каждого отдельного персонажа выбрать цель и настраивать ее.
#133 #163536
Начинаю осваивать это ваше Unity после N лет кодинга.
Буду писать, что мне не нравится и разбивать мечты о том, что юнити это дар божий.

Номер один.
Юнити, а как мне нарисовать прямоугольник?
Нет ничего проще! Берёшь, создаёшь текстуру 1х1, красишь этот самый пиксель нужным цветом, а, да, ещё тебе нужен гуйстайл. И уже после этого ты берёшь и создаёшь гуйпрямоугольник.

Brilliant. Нужно писать кастомную функцию, чтобы нарисовать прямоугольник. В 100% движков это есть из коробки.
#134 #163537
>>163536
Еще один умник, думающий что он лучше всех знает.
#135 #163538
>>163536
Зачем тебе рисовать прямоугольник? Ты что, ебанутый?
#136 #163541
>>163536
Юичепидор, ты задрал своим траленгом уже. Иди ебись с крестами в свой тред, тут тебе не рады. И да, юнити - не дар божий и все это прекрасно понимают.
62 Кб, 422x603
#137 #163542
Короче в пизду эти ммо, шутаны третьего поколения, ААА рпг с открытым миром, симуляторы ГОНОЧЕК И прочую йобу.
На одном бесплатном говне из ассет сторе нихуя стоящего не запилить, а за пизженный графоний потом ебало еще начистят, нахуй нахуй
Пойду пилить стратежку "квадратики против кругляшков"

мимо баттхертящая скриптомакака
#138 #163544
>>163542

> Пойду пилить стратежку "квадратики против кругляшков"


Так кстати и надо делать. Сначала делаешь интересно на уровне "крестики против квадратиков", потом делаешь/покупаешь подходящий контент.
38 Кб, 446x362
#139 #163555
>>163544
Я полтора года превозмогал, шароебился по всем интернетам в поисках фришных ресурсов, и только сейчас, наконец, СМИРИЛСЯ с тем, что так дальше не пойдет и йоба-шедевор, убийцу топовых инди тайтлов в штиме я с голой жопой, имея только навыки скриптоблядства, не запилю. Сейчас испытываю баттхерт и депрессию. Что у меня в итоге есть: исследованный вдоль и поперек юнити, десятки брошенных проектов совершенно разных направлений, разрушенные под фундамент амбиции и пустая голова идей.
#140 #163557
>>163536
По воплям ИСКАРОПКИ! всегда можно задетектить дебила с уеча.
#141 #163558
>>163531
Ответьте ему.
Мне тоже интересно
#142 #163559
>>163555
Дорогу осилит идущий.
#143 #163560
>>163555
За контент надо платить. Хотя бы для того чтобы не бросать и не делать фигню.
#144 #163571
>>163558
Никто мне не ответит. Тут нет таких профи в юнити.
Сам я решил использовать XML для настроек, добавлять его к как TextAsset и уже при старте все инициализировать.
#145 #163572
>>163571

[System.Serializable]
public class Goal
{
public string str;
}

class Child : MonoBehaviour
{
public Goal goal = new Goal();
}

Теперь уебывай, обоссанец, и велосипед свой забери.
#146 #163574
>>163572
И что это? Как это настроить в инспекторе? Мне не нужен базовый класс. Как мне в инспекторе выбрать наследник класса Goal, и настроить его переменные?
19 Кб, 280x335
sage #147 #163575
>>163574

>Как мне в инспекторе выбрать наследник класса Goal, и настроить его переменные?


Скачать себе УЕЧ и сьебать из треда, например
#148 #163587
>>163463
Во-первых, я эту херню не сам придумал, а спиздил из мануалов юнити. Во-вторых, когда ВАРЕНЬЕ и все остальные подобные экраны я перенес на другой холст - у меня все стало работать заебись. Ананасик.
#149 #163591
>>163300

>Я так понимаю для начала мне в команду нужны:


>Ххудожник, чувак знающий толк в серверах, (маркетолог на примете уже есть я его ебу точнее его руку) настоящий програмист а не обезьянка типа меня. Историк(игра будет типа историческая, а не фентези говно)


Я немного рисую, умею в тридє-модели, по образованию программист, шарп нормально знаю. Еще и историей с самого детства увлекаюсь, и неплохо, как я считаю, знаю ее (а еще шарю в археологии, поп. генетике, антропологии).
Опиши, что за игорь, может мне интересно будет?
#150 #163594
Здравствуй анон. Я кирил. Пилю "игру мечты". В качестве движка выбрал юнити. Возникли кое-какие вопросы. Потому я здесь. Пока что я разбираюсь с движком по видосам с ютуба, от "игроделов"-школьников. Итак, вопросы.

1. Как я понял из видосов, за управление объектами отвечают скрипты, приаттаченные к объектам. А есть ли возможность использовать в сцене некий глобальный скрипт, который будет управлять всеми объектами в сцене? Можно ли скрипты объектов объединять в неймспейсы? Как из скрипта, прикрепленного к одному объекту, получить доступ к полю класса, описанного в скрипте к другому объекту?

2. Как получить полный список всех объектов в сцене? Пока что я додумался только до передачи всех объектов сцены в скрипт, в качестве паблик полей класса. Но ведь должен же быть и вменяемый метод? Стандартная коллекция там какая-то.

3. Я нашел кусок кода, который программно создает объект (в данном случае снаряд, вылетающий из пушки):

Transform copy = (Transform) Instantiate (obj_to_copy, GameObject.Find("spawn_point").transform.position, Quaternion.identity);

Как я понял, создается объект "copy", в точке "spawn_point.transform.position", и вылетает в направлении "Quaternion.identity". Данный кватернион направляет вектор в соответствии со значением ротейта объекта, по отношению к родительскому объекту. То есть, если объект после создания не вращался, то выстрел произойдет точно в том направлении, куда смотрит родительский объект. Например, есть моделька хикки, которая смотрит в определенном направлении. У хикки в руках пистолет, ствол которого являет собою цилиндр из юнити. Цилинд создается в вертикальном положении. Потому, для того, чтобы он стал стволом, его нужно повернуть на 90 градусов по одной из осей. И тогда, при стрельбе получается, что снаряд летит в пол, из-за того, что Quaternion.identity возвращает 90 градусов по иксу. Как мне преобразовать этот кватернион, чтобы итоговый был смещен на "х" градусов по определенной шкале? Если можно, объясните попроще, без углублений в матан, потому что я тупой мудак.

4. Как мне задать уникальное имя каждому объекту, созданному кодом, описанным в предыдущем вопросе?

5. Как программно уничтожить объект? Например, как лучше всего уничтожить снаряды, создаваемые кодом, описанным в третьем вопросе? На вскидку у меня есть идея, прикрутить к базовой модели снаряда скрипт, который определит время жизни снаряда, и если снаряд не встретится с поверхностью, то скрипт должен будет применить к объекту какой-то деструктор (или как оно тут делается?).

6. Можно ли на юнити делать анимированные текстуры ГУИ? Например, анимированный прицел, с выводом информации, всякими прогрессбарами и вращающимися вокруг точки свистелками. Как вообще объединить текстовый гуибокс с гуитекстурой?

7. Поясните за скайбоксы. Как их вообще правильно делать? Как правильно искажать квадратную текстуру, ложащуюся на сторону скайбокс-куба, чтобы скайбокс не выглядел кубом, а выглядел сферой? Можно ли в скайбокс захуярить анимацию и шейдеры? Если да, то как это сделать?

Отдельно очень прошу поделиться гайдами (желательно на русском, ибо я не знаю ингриш на столько, чтобы читать объемные тексты) по темам, поднятым в моих вопросах (да и вообще любыми гайдами).
В общем, аноны выручайте, вся надежда на вас.
#150 #163594
Здравствуй анон. Я кирил. Пилю "игру мечты". В качестве движка выбрал юнити. Возникли кое-какие вопросы. Потому я здесь. Пока что я разбираюсь с движком по видосам с ютуба, от "игроделов"-школьников. Итак, вопросы.

1. Как я понял из видосов, за управление объектами отвечают скрипты, приаттаченные к объектам. А есть ли возможность использовать в сцене некий глобальный скрипт, который будет управлять всеми объектами в сцене? Можно ли скрипты объектов объединять в неймспейсы? Как из скрипта, прикрепленного к одному объекту, получить доступ к полю класса, описанного в скрипте к другому объекту?

2. Как получить полный список всех объектов в сцене? Пока что я додумался только до передачи всех объектов сцены в скрипт, в качестве паблик полей класса. Но ведь должен же быть и вменяемый метод? Стандартная коллекция там какая-то.

3. Я нашел кусок кода, который программно создает объект (в данном случае снаряд, вылетающий из пушки):

Transform copy = (Transform) Instantiate (obj_to_copy, GameObject.Find("spawn_point").transform.position, Quaternion.identity);

Как я понял, создается объект "copy", в точке "spawn_point.transform.position", и вылетает в направлении "Quaternion.identity". Данный кватернион направляет вектор в соответствии со значением ротейта объекта, по отношению к родительскому объекту. То есть, если объект после создания не вращался, то выстрел произойдет точно в том направлении, куда смотрит родительский объект. Например, есть моделька хикки, которая смотрит в определенном направлении. У хикки в руках пистолет, ствол которого являет собою цилиндр из юнити. Цилинд создается в вертикальном положении. Потому, для того, чтобы он стал стволом, его нужно повернуть на 90 градусов по одной из осей. И тогда, при стрельбе получается, что снаряд летит в пол, из-за того, что Quaternion.identity возвращает 90 градусов по иксу. Как мне преобразовать этот кватернион, чтобы итоговый был смещен на "х" градусов по определенной шкале? Если можно, объясните попроще, без углублений в матан, потому что я тупой мудак.

4. Как мне задать уникальное имя каждому объекту, созданному кодом, описанным в предыдущем вопросе?

5. Как программно уничтожить объект? Например, как лучше всего уничтожить снаряды, создаваемые кодом, описанным в третьем вопросе? На вскидку у меня есть идея, прикрутить к базовой модели снаряда скрипт, который определит время жизни снаряда, и если снаряд не встретится с поверхностью, то скрипт должен будет применить к объекту какой-то деструктор (или как оно тут делается?).

6. Можно ли на юнити делать анимированные текстуры ГУИ? Например, анимированный прицел, с выводом информации, всякими прогрессбарами и вращающимися вокруг точки свистелками. Как вообще объединить текстовый гуибокс с гуитекстурой?

7. Поясните за скайбоксы. Как их вообще правильно делать? Как правильно искажать квадратную текстуру, ложащуюся на сторону скайбокс-куба, чтобы скайбокс не выглядел кубом, а выглядел сферой? Можно ли в скайбокс захуярить анимацию и шейдеры? Если да, то как это сделать?

Отдельно очень прошу поделиться гайдами (желательно на русском, ибо я не знаю ингриш на столько, чтобы читать объемные тексты) по темам, поднятым в моих вопросах (да и вообще любыми гайдами).
В общем, аноны выручайте, вся надежда на вас.
#151 #163595
>>163594
1. Кратко - да. Теоретически, можно работать так, что в Юнити только ассеты класть, а все остальное кодом создавать, включая уровни (хранить в своем формате например).
2. По созданию и уничтожению. Так делать плохо, включается Garbage Collector, просадка по производительности. Гугли ObjectPool.
#152 #163596
>>163536
GL.QUADS
#153 #163597
>>163595
Спасибо за оперативный ответ. Поясни подробнее за программное создание всего. Где вообще точка входа? Куда лепить скрипт, который должен выполняться после загрузки сцены, и как он должен выглядеть (схематически)? Может, есть где про это почитать подробно?
#154 #163598
>>163597
Создаешь скрипт, кидаешь на сцену пустой ГО, в скрипте в Start() пихаешь инициализацию, в Update() организуешь главный цикл, например.
Но это самый инвалидский способ организации архитектуры в юнити, как по мне.

>>163594
3) Самое простое, домножь кватернион на Quaternion.Euler(90,0,0)
4)Ну хз, обычно этими именами особо не пользуются, но если надо, прибавляй при инициализации рандомную строку в имя.
5)Destroy(gameobject)
6)Ясен пень можно, ищи туторы, старый гуй не юзай, он говно.
7)Искажай как и везде, это не движкоспецифичный вопрос, а еще в пятой версии есть сносный процедурный скайбокс.

Про гайды ничего не скажу, на русском читал только древний FPS Tutorial чуть ли не от первых версий юнити, дальше ингриш и метод тыка.
#155 #163599
>>163541
Я юичепидор, но и то знаю про новый гуй юнити, где все можно мышкой таскать. Тот пидор просто юнитидебил, не читавший доки.
#156 #163601
>>163594
http://rutracker.org/forum/viewtopic.php?t=4907370 - посмотри эту серию уроков.
#157 #163602
>>163598

>3) Самое простое, домножь кватернион на Quaternion.Euler(90,0,0)


Я пробовал, ничего не меняется. Вот весь код запуска снарядов:

\t\tShotInstance = (Transform)Instantiate(bullet, GameObject.Find("BulletSpawnPoint05").transform.position, Quaternion.identity);
\t\tShotInstance.rigidbody.AddForce((transform.forward) * ShotForce);
Если умножать кватернион в Instantiate ничего не изменяется. Куда летело, туда и летит. Если менять вектор силы, то снаряд просто перестает вылетать вообще. В чем может быть проблема? Как вариант, скрипт можно перецепить на пустышку, которая у меня служит спавнпоинтом. Либо повернуть ствол в нулевой ротейт. Но все же хотелось бы знать, в чем проблема.

>6)Ясен пень можно, ищи туторы, старый гуй не юзай, он говно.


А можно подробнее про новый гуи. Что про него можно почитать, и как его искать вообще?

>7)Искажай как и везде, это не движкоспецифичный вопрос, а еще в пятой версии есть сносный процедурный скайбокс.


Проблема в том, что я вообще раньше не сталкивался с игровыми движками, и недавно впервые услышал про существование скайбоксов. Мб есть какие-то стандартные решения, для искажения? Ткни хоть, что почитать про это.
И да, спасибо.
#158 #163603
>>163601
Алан Thorn будет по C# основы, а также сценарий в единство с помощью языка C#. Здесь вы узнаете, как создавать основные файлы сценариев и получите и понимания для переменных, функций, события, циклы, условных заявлений, и классы, вы получите намочить ноги с программирование в единстве.
#159 #163604
>>163601
Благодарю, но боюсь не осилю. В текстовом варианте еще можно было бы попробовать, но на слух английский я вообще не могу.
#160 #163605
>>163602
3) Делай так: Instantiate(bullet, GameObject.Find("BulletSpawnPoint05").transform.position, GameObject.Find("BulletSpawnPoint05").transform.TransformDirection(Vector3.forward));
Если надо, еще умножь на кватернион нужного угла.
И да, лучше как можно меньше юзать поиск по имени. И ненадежно, и очень медленно. Лучше держать нормальную ссылку на объект.
6) На русском хз, на английском нормально ищется по "Unity 5 GUI", а вообще он довольно прост, если не считать некоторых моментов. Тянешь на сцену холст, на нем мышкой тягаешь элементы, можно спавнить их из префабов, держать несколько холстов на экране одновременно, этц. Для простых действий даже кодить не надо ничего.

7) Я не знаю, потому что скайбоксы либо воровал, либо юзал процедурные. Но так как это общий вопрос, найти будет несложно.
#161 #163606
>>163605
Спасибо большое.
215 Кб, 1366x768
#162 #163609
>>163213

Получилось у меня сделать им навмеш, налепил несколько плоскостей и сделал их невидимыми, но теперь проблема следующая, идут они по краям плоскостей, а мне нужно по центру. Есть идеи?
#163 #163610
>>163575
И что это? Ты добавил 2 одинаковых скрипта?
Мне надо допустим так:
Goal[] myGoals; в инспекторе это будет как массив целей. А мне надо, например, третьим элементом сделать CollectItemGoal.
#164 #163611
>>163610
Норкоман?
Создаешь массив объектов родительского класса. А потом мышой тягаешь туда то, что нужно.
Дочерние классы, ЕМНИП, прекрасно даже в инспекторе назначаются на такие переменные.
#165 #163612
>>163611

>А потом мышой тягаешь туда то, что нужно.


Что ты туда тягать собрался? Поля-то будут от класса Goal и сохранится он какGoal , а мне надо от CollectItemGoal или любого другого какой я выберу.
#166 #163630
>>163609
уменьши плоскости до небольшой полоски по которой они должны идти.
#167 #163631
>>163630

А менее костыльный способ есть?
#168 #163633
>>163631
1) Делаешь массив пустых объектов (это будут точки на которых мобы будут менять направление движения).

2) Для вычисления направления от текущего положения к заданной точке используй следующее:
Vector3 dir = (target.position - transform.position).normalized;

3) Для перемещения по заданному направлению:
Vector3 curr_pos = transform.position;
curr_pos += Time.deltaTime velocity dir;
transform.position = curr_pos;

4) Для вычисления угла поворота:
float angle = Vector3.Angle(transform.position, target.position);
transform.localEulerAngles = new Vector3(0, 0, angle);

5) Для проверки достиг ли моб целевой точки:
Vector3 curr_dir = target.position - transform.position;
if(curr_dir.xdir.x+curr_dir.ydir.y < 0) {
//достиг
}

Писал по памяти и весьма вероятны косяки
#169 #163634
>>163633

Спасибо, лучше уменьшу плоскости.
#170 #163639
>>163634
Лал. Вся суть местных кирюш.
#171 #163642
>>163639

Ну извини.
Доступ к компонентам после LoadLevel #172 #163643
Привет, Кириллы, я нуб, пилю класс Game Manager для простенькой головоломки. Хочу, чтобы он описывал действия, производимые игроком в главном меню (такие как выбор уровня и некоторые настройки, позволяющие кастомизировать головоломку под себя), а так же действия связанные непосредственно с решением головоломки, которая находится в отдельной сцене. Для этого использую неудаляемый при загрузке синглтон.
Проблема: сразу после загрузки сцены моему классу требуется доступ к некоторым объектам сцены (к Text, который хранит счётчик очков). Пишу:

>GameObject Score = GameObject.Find("Score");


Объект находится, но как только я пытаюсь получить доступ к его компоненту Text:

>Score.GetComponent<Text> ();


вылетает ошибка, что-то вроде null reference - сейчас нет возможности запустить код, чтобы проверить. В общем, компонент найти не удаётся. Если же подождать какое-то время через WaitForSeconds(), компонент становится доступен. Получается обратиться к Score я могу в следующей же строчке после загрузки сцены, а его компонентам нужно время чтобы прогрузиться?
Можно было бы запилить WaitForSeconds(0.1), но это же какой-то костыль. У меня такое ощущение, что я принципиально неправильно подхожу к проектированию структуры моей игры.
Буду рад советам.
#173 #163644
>>163643
кажется, я через жопу описал структуру проекта. Есть две сцены: MainMenu и Puzzle. В MainMenu создаётся неудаляемый синглтон GameManager, который по клику грузит сцену Puzzle и сразу пытается обратиться к компонентам её объектов. Тут-то и происходит фэйл.
#174 #163645
>>163594

>1. Как из скрипта, прикрепленного к одному объекту, получить доступ к полю класса, описанного в скрипте к другому объекту?


http://docs.unity3d.com/410/Documentation/ScriptReference/index.Accessing_Other_Game_Objects.html

>2. Как получить полный список всех объектов в сцене?



foreach(gameObject currentElement in FindObjectsOfType(typeof(gameObject)) as gameObject[])
{
//DoSomething
}
скорее всего это тебе не нужно, что бы ты ни задумал, можно сделать проще и быстрее.

>3. Я нашел кусок кода, который программно создает объект (в данном случае снаряд, вылетающий из пушки):


>Transform copy = (Transform) Instantiate (obj_to_copy, GameObject.Find("spawn_point").transform.position, Quaternion.identity);


>Как я понял, создается объект "copy", в точке "spawn_point.transform.position", и вылетает в направлении "Quaternion.identity". Данный кватернион направляет вектор в соответствии со значением ротейта объекта, по отношению к родительскому объекту. То есть, если объект после создания не вращался, то выстрел произойдет точно в том направлении, куда смотрит родительский объект. Например, есть моделька хикки, которая смотрит в определенном направлении. У хикки в руках пистолет, ствол которого являет собою цилиндр из юнити. Цилинд создается в вертикальном положении. Потому, для того, чтобы он стал стволом, его нужно повернуть на 90 градусов по одной из осей. И тогда, при стрельбе получается, что снаряд летит в пол, из-за того, что Quaternion.identity возвращает 90 градусов по иксу. Как мне преобразовать этот кватернион, чтобы итоговый был смещен на "х" градусов по определенной шкале? Если можно, объясните попроще, без углублений в матан, потому что я тупой мудак.



Самый простой способ - поставить пустой GameObject в руку хикки или в пистолет и развернуть его нужным образом. Скрипт-спавнер прицепить на эту пустышку.

>4. Как мне задать уникальное имя каждому объекту, созданному кодом, описанным в предыдущем вопросе?



Функция Instantiate сделает все сама.

>5. Как программно уничтожить объект? Например, как лучше всего уничтожить снаряды, создаваемые кодом, описанным в третьем вопросе? На вскидку у меня есть идея, прикрутить к базовой модели снаряда скрипт, который определит время жизни снаряда, и если снаряд не встретится с поверхностью, то скрипт должен будет применить к объекту какой-то деструктор (или как оно тут делается?).



скрипт добавляется к префабу пули. Пуля будет уничтожена через 5 секунд после инстанса
void Start(){
Destroy(this.gameObject, 5f);
}

>6. Можно ли на юнити делать анимированные текстуры ГУИ? Например, анимированный прицел, с выводом информации, всякими прогрессбарами и вращающимися вокруг точки свистелками. Как вообще объединить текстовый гуибокс с гуитекстурой?



Можно все. Про интерфейс гугли "unity 4.6 gui" это очень обширная тема

>7. Поясните за скайбоксы. Как их вообще правильно делать? Как правильно искажать квадратную текстуру, ложащуюся на сторону скайбокс-куба, чтобы скайбокс не выглядел кубом, а выглядел сферой? Можно ли в скайбокс захуярить анимацию и шейдеры? Если да, то как это сделать?



про скайбоксы http://www.unity3d.ru/distribution/viewtopic.php?f=11&t=10847

про более продвинутое небо гугли unity skydome, родных инструментов для этого у юнити пока нету, нужно делать свои.

>Отдельно очень прошу поделиться гайдами (желательно на русском, ибо я не знаю ингриш на столько, чтобы читать объемные тексты) по темам, поднятым в моих вопросах (да и вообще любыми гайдами).



Мануал на офсайте от корки до корки для начала прочитай, он на русском.
#174 #163645
>>163594

>1. Как из скрипта, прикрепленного к одному объекту, получить доступ к полю класса, описанного в скрипте к другому объекту?


http://docs.unity3d.com/410/Documentation/ScriptReference/index.Accessing_Other_Game_Objects.html

>2. Как получить полный список всех объектов в сцене?



foreach(gameObject currentElement in FindObjectsOfType(typeof(gameObject)) as gameObject[])
{
//DoSomething
}
скорее всего это тебе не нужно, что бы ты ни задумал, можно сделать проще и быстрее.

>3. Я нашел кусок кода, который программно создает объект (в данном случае снаряд, вылетающий из пушки):


>Transform copy = (Transform) Instantiate (obj_to_copy, GameObject.Find("spawn_point").transform.position, Quaternion.identity);


>Как я понял, создается объект "copy", в точке "spawn_point.transform.position", и вылетает в направлении "Quaternion.identity". Данный кватернион направляет вектор в соответствии со значением ротейта объекта, по отношению к родительскому объекту. То есть, если объект после создания не вращался, то выстрел произойдет точно в том направлении, куда смотрит родительский объект. Например, есть моделька хикки, которая смотрит в определенном направлении. У хикки в руках пистолет, ствол которого являет собою цилиндр из юнити. Цилинд создается в вертикальном положении. Потому, для того, чтобы он стал стволом, его нужно повернуть на 90 градусов по одной из осей. И тогда, при стрельбе получается, что снаряд летит в пол, из-за того, что Quaternion.identity возвращает 90 градусов по иксу. Как мне преобразовать этот кватернион, чтобы итоговый был смещен на "х" градусов по определенной шкале? Если можно, объясните попроще, без углублений в матан, потому что я тупой мудак.



Самый простой способ - поставить пустой GameObject в руку хикки или в пистолет и развернуть его нужным образом. Скрипт-спавнер прицепить на эту пустышку.

>4. Как мне задать уникальное имя каждому объекту, созданному кодом, описанным в предыдущем вопросе?



Функция Instantiate сделает все сама.

>5. Как программно уничтожить объект? Например, как лучше всего уничтожить снаряды, создаваемые кодом, описанным в третьем вопросе? На вскидку у меня есть идея, прикрутить к базовой модели снаряда скрипт, который определит время жизни снаряда, и если снаряд не встретится с поверхностью, то скрипт должен будет применить к объекту какой-то деструктор (или как оно тут делается?).



скрипт добавляется к префабу пули. Пуля будет уничтожена через 5 секунд после инстанса
void Start(){
Destroy(this.gameObject, 5f);
}

>6. Можно ли на юнити делать анимированные текстуры ГУИ? Например, анимированный прицел, с выводом информации, всякими прогрессбарами и вращающимися вокруг точки свистелками. Как вообще объединить текстовый гуибокс с гуитекстурой?



Можно все. Про интерфейс гугли "unity 4.6 gui" это очень обширная тема

>7. Поясните за скайбоксы. Как их вообще правильно делать? Как правильно искажать квадратную текстуру, ложащуюся на сторону скайбокс-куба, чтобы скайбокс не выглядел кубом, а выглядел сферой? Можно ли в скайбокс захуярить анимацию и шейдеры? Если да, то как это сделать?



про скайбоксы http://www.unity3d.ru/distribution/viewtopic.php?f=11&t=10847

про более продвинутое небо гугли unity skydome, родных инструментов для этого у юнити пока нету, нужно делать свои.

>Отдельно очень прошу поделиться гайдами (желательно на русском, ибо я не знаю ингриш на столько, чтобы читать объемные тексты) по темам, поднятым в моих вопросах (да и вообще любыми гайдами).



Мануал на офсайте от корки до корки для начала прочитай, он на русском.
#175 #163646
>>163643
В OnLevelWasLoaded(int) пытаешься свежезагруженные объекты ковырять?
Если да, попробуй WaitForUpdate, как раз все заинициализируется и уже сделаешь что надо.
22 Кб, 322x204
#176 #163647
Лолируйте с меня, аноны. В моей Tower Defense башни прощупывают цель с помощью рейкастов. И закрался как-то в мою игру баг: если у двух башен радиусы поражения пересекаются, то выстрелы происходят, а поражение цели нет. И решил я проверить, во что там рейкасты у башен упираются, не доходя до цели. Добавил в код дебаг с выводом хита. Как увидел лог (пикрелейтед) поржал с себя самого.
#177 #163648
>>163647

>Лолируйте


Лоллировал с рейкастов. Сами в себя тыкаются.

Может лучше загребать всех юнитов в сфере вокруг башни, а потом нехитрой геометрией проверять сектора обстрела?
#178 #163650
>>163643
в Awake все инициализируешь
в Start начинаешь обращаться
#179 #163663
Это нормально для каждого звука создавать свой AudioSource?
#180 #163675
>>163609
Использовать встроенный навмеш.
#181 #163690
Посоны, только не бейте -
как мне мой быдлокод (C#) для маленькой консольной программки (сорт оф калькулятор) заставить исполнятся в юнити?
Где именно - пофиг - хоть в кастомном окошке, хоть в консоли.
Желательно не в игре.
#182 #163694
>>163647
Повесь на цели тег и проверяй, во что упёрся райкаст по тегу или используй слои. Разве сложно так? Очевидно, что райкаст и должен упираться в райкаст.
#183 #163700
Никогда не понимал, зачем возиться с рейкастом если проще перебрать твои несчастные 10-20 мобов. И лучше и проще.
#184 #163703
>>163700
Ну, всё-таки часто пишут, что брутфорс - зло, мобов может оказаться больше и т.д, и т.д. Да и внезапно ссылок на мобов может нигде и не быть, если они инстансятся через жопу или наоборот, заранее растыканы по уровню, а ручками массивы забивать лень. И писать поиск мобов с добавлением в массив - тоже лень. Плюс, райкаст сразу даёт направление, сообщает нет ли пересечений с другой хуитой и т.д.
#185 #163704
>>163703
А райкаст не брутфорс чтоли?

>ссылок на мобов может нигде и не быть


Ясно. Программирование уровня /gd/. Ну ты им теги хотя бы поставь. Искать по тегу быстро.

>райкаст сразу даёт направление


Какое направление? Башня стреляет вокруг себя в определенном радиусе. Ты по всем возможным углам будешь рейкаст делать?
58 Кб, 556x349
#186 #163706
>>163703
>>163704
Я ж говорю, кастуй сферу и вытаскивай из выдачи всех мобов, что в этом-то сложного?
Обязательно надо изобретать самые невротъебенные обходные пути.

http://docs.unity3d.com/ScriptReference/Physics.OverlapSphere.html
#187 #163720
>>163690
для юнити интерпретатор с# какой-то опенсурсный когда-то видел, с помощью него наверняка можно.
#188 #163721
>>163720
Спасибо, погуглю.
#189 #163726
>>163721
В чем проблема заставить исполнятся твой код на юнити?
#190 #163727
>>163726
В том, что я не погромист,
так, любитель.
#191 #163731
>>163704

>А райкаст не брутфорс чтоли?


Так оно через физон, а физон работает быстро. В нём же оптимизации.

>Какое направление?


Очевидно, что от башни к мобу. Но я не тот анон, который пилит товер дефенс, просто написал, почему это может быть удобно использоваться. Когда-то пилил хуиту, ссылки на мобов хранились, но меж тем я всё равно раскастил из моба к игроку для различных целей. Хотя теперь понимаю, что можно было и обойтись, но хуй знает. И так работало и не тормозило.
#192 #163734
>>163727
тогда наверное ты имел в виду, как адаптировать существующий код калькулятора под юнити? Его просто надо подправить
#193 #163743
>>163727
Сконпелируй свой калькулятор как dll и кинь в папку с ассетами. Все.
#194 #163744
Козлики, решил запилить простенькую 3D браузерку с сетью на photon cloud. Стоит ли её создавать на Unity 5? Или лучше пока использовать четвёртую версию?
#195 #163750
>>163743

>Сконпелируй свой калькулятор как dll и кинь в папку с ассетами. Все.



Спасибо, не знал.
Пролинковал в VS UnityEngine и UnityEditor dllки,
в юнити импорт сетингс указал Эдитор/Стендэлон, ос Виндовс, х86-64,
а что в коде менять?
Это изначально калькулятор в виндовой консольке,
также, результат кроме окошка консоли выводился ещё в буфер обмена и в лог.тхт
а мне нужно чтобы эти значения вводились/считались где-то в юнити
#196 #163753
>>163744
Будешь юзать пятёрку - выброси стандартный террейн, если свет запекаться будет сотню лет. А так всё работает очень хорошо, для простеньких гуёв новый гуй лучше старого. Только с запеканием света накосячили, бист лучше был плюс запекание террейна может занять джве недели и всё равно не запечётся. Хуй знает, почему.

Кстати, про террейны, хочу к своей параше присобачить огромный бесшовный мир. В теории, точность ебучего флоата 7 знаков, 10 000 метров должно жрать спокойно. На деле у меня начинается проблема с этими флоатами уже на третьей тысяче, до двух с половиной ещё куда ни шло. Итого, мирок пять на пять, двадцать пять км квадратных, это как-то маловато для моей йоба-параши. В уе4 есть "ворлд атлас", но он говно, потому что уе4 говно и не хотелось бы жрать говно только потому, что ниасилил. Плюс там, если не ошибаюсь, прихуярили двойную точность, а это потеря флопсов раз в пять-десять. Нахуй надо, короч. Так вот, отошёл от темы. Если мирок можно хуйнуть не более 2.5км от центра мира, получается, что вариантов у нас не так много.
1. Загрузка других сцен.
2. Аддитивная загрузка других сцен.
3. Сдвигание центра мира.
Пилил кто-то что-то такое? Загрузка сцен выглядит самым простым, но тогда будет не один большой мир, а дохуя миров средних размеров. Аддитивная загрузка сцен - сдвигает ли она мировые координаты? А если нет - нахера она нужна вообще, блядь?
Ну и ручное сдвигание центра мира наверняка уебёт меня по башке проблемами с относительным позиционированием и физоном. Да, кстати, забавный хак, можно сделать везде скейл 0.5 вместо 1.0 и получить уже 5км от центра мира, но могут появиться проблемы с физонием. Сделал 0.75 хотя все скейлы 1.0, работает нормально. В принципе, теперь понятно почему во всей ммопараше персонажи выглядят, как милипиздрические куклы. Дохуя накатал, ну и хуй с этой хуйнёй. Попробую закодить каждый вариант. Инб: с этого и начинай, пидор графоманский.
#197 #163755
>>163750

>а что в коде менять?


using moyadll;
Если не ошибаюсь.
#198 #163756
>>163755
хаха, это я и сам догадался
#199 #163763
>>163750

>а что в коде менять?


Засунь весь свой код в класс MoyCalculator, да сделай функции работы с ним. В юнити где угодно пишешь var calculator = new MoyCalculator(); Debug.Log(calculator.poshitay(2,2)); как-то так
#200 #163766
>>163750

>результат кроме окошка консоли выводился ещё в буфер обмена и в лог.тхт


Ебать ты девелопер.

У Cosole есть выходной поток Out, задать можно через SetOut(TextWriter). Если назначить через него MemoryStreem то можно читать програмно вывод на консольку.

Коде:
// инициализация где-то в юните!
MemoryStream MS = new MemoryStream();
TextReader TR = new StreamReader(MS);
TextWriter TW = new StreamWriter(MS);
Console.SetOut(TW);

// где-то в недрах калькулятора
Console.WriteLine("Calculator Obezumel!");

// вот хз как часто делает это консолька - тут это в целях теста.
TW.Flush();

// чтение в юните
MS.Position = 0;
string MsgFromCalculator = TR.ReadToEnd();
// еба очистка сообщения
MS.SetLength(0);

// где-то в недрах калькулятора
Console.WriteLine("222222222222!");

TW.Flush();

MS.Position = 0;
string NextMsgFromCalculator = TR.ReadToEnd();

PS: работает но это просто для лулза.

> значения вводились/считались где-то в юнити


Дерни методы вычисления прямо на прямую из юните.
#200 #163766
>>163750

>результат кроме окошка консоли выводился ещё в буфер обмена и в лог.тхт


Ебать ты девелопер.

У Cosole есть выходной поток Out, задать можно через SetOut(TextWriter). Если назначить через него MemoryStreem то можно читать програмно вывод на консольку.

Коде:
// инициализация где-то в юните!
MemoryStream MS = new MemoryStream();
TextReader TR = new StreamReader(MS);
TextWriter TW = new StreamWriter(MS);
Console.SetOut(TW);

// где-то в недрах калькулятора
Console.WriteLine("Calculator Obezumel!");

// вот хз как часто делает это консолька - тут это в целях теста.
TW.Flush();

// чтение в юните
MS.Position = 0;
string MsgFromCalculator = TR.ReadToEnd();
// еба очистка сообщения
MS.SetLength(0);

// где-то в недрах калькулятора
Console.WriteLine("222222222222!");

TW.Flush();

MS.Position = 0;
string NextMsgFromCalculator = TR.ReadToEnd();

PS: работает но это просто для лулза.

> значения вводились/считались где-то в юнити


Дерни методы вычисления прямо на прямую из юните.
#201 #163773
>>163753

>Попробую закодить каждый вариант.


Аддитивная загрузка центр мира не сдвигает, потому сдвигаю сам. Всё игровые координаты пришлось перепаять в относительные вместо абсолютных, хуй знает, что из этого может выйти. Решил на всякий случай перевести их в даблы, чтобы не проебать всю точность. Либо потом навешаю "вейпоинтов" - если игрок находится в коллайдере Х_1, значит его координаты такие-то. Но как-то костыльно. Что весело - похоже, физонию похуй на мгновенное перемещение на тысячу метров влево-вправо. Осталось слепить триллион сцен с одним террейном и дело в шляпе.
#202 #163774
Едрить меня в корень. Попробовал сбилдить пустую сцену под ВебГЛ: 110 МБ в несжатом виде и 16 МБ в сжатом виде.
#203 #163782
>>163774
Так они весь рантайм вместе с моно на javascript портировали.
68 Кб, 785x440
#204 #163798
Анончик, помоги скачать на халяву без регистрации и СМС
https://www.assetstore.unity3d.com/en/#!/content/19764
Я знаю, у тебя есть.
#205 #163807
>>163798
на cgpeers нет
#206 #163808
Аноны, можете скинуть какой-нибудь годный скрипт для first person controller, только чтобы он работал без компонента Character Controller.
#207 #163812
Я совершенно новенький в юньке, что мне читать/смотреть, что бы разобраться как и что делается?
#208 #163814
>>163798
на cgpeers есть tasharen fog of war можт подойдет

вообще такое впечатление, что на cgpeers перестали ассеты юнити таскать свежие.
#210 #163826
Аноны, подскажите в чем может быть проблема.
Пилю игру для IOS/Android.
При нажатии на кнопку загружаю сцену стандартным Application.LoadLevel (name) и начинаются чудеса. Метод то срабатывает и загружается сцена - все норм, то просто наглухо виснет. ЧЗХ?!?! Я конечно загружаю сцену уже нагрузив 190мг на CPU и прибавляю еще 50 но даже 4s может еще чуть выдержать, да и к тому же профайлер на икскоде продолжает работать с мобилой как будто все норм . Конкретно игра стала так делать( ну так мне кажется) после обновления юньки( с 4.3 на 4.6f, кстати после обновления onMouseDown и подобные ему стали почему-то работать с тачем очередной ЧСХ! Вы не наблюдали?)
#211 #163830
>>163798
Самому запилить не судьба?
#212 #163834
>>163798
демка выдает не больше 5фпс лол
#213 #163859
>>163814
Там, кажется, и юньки свежей нет.

Анансы, а быстродеревья и не должны пихаться в террейновские деревья или я делаю что-то не так?
#214 #163864
>>163859

>Там, кажется, и юньки свежей нет.



Лол блядь, а нахуя она там?
Все функции открыли, нет, хочу воровать.
#215 #163878
>>163864
Кошерный тёмный интерфейс доступен только в pro версии.
#216 #163882
>>163864
Не пользуюсь линуксом потому, что не нашёл кряка под него.

>>163878
А также кастомный сплешскрин.

Что по быстродеревьям-то? Никто не пользуется?
#217 #163917
>>163882
Короче сам спросил, сам понял, что дурак. Если в быстродереве дерево тупо сохранить и сунуть в юнити, то оно там отобразится, как меш. В террейн ставится. Но на террейне не рисуется. Надо юзать экспорт. Но вот беда, для растительности на террейне юнити инключит в шейдоры этой самой растительности шейдор террейна и подмешивает туда цвета. Причём тупо умножением. Надо ебаться с хидден шейдорами и выпиливать к хуям эту фичу.
280 Кб, Webm
#218 #163931
>>163694
if (Physics.Raycast(shootRay, out hit, attackDistance, enemyLayer))

Не совсем понял как работает рейкаст. Если я четвертым аргументом передам слой, который нужно чекать, то при попадании луча в объект другого слоя луч останавливается и рейкаст возвращает фолс что ли? Ибо видно как одна из башен тупо провожает цель взглядом и не стреляет, потому что ее рейкаст нащупал другой рейкаст.
#219 #163936
>>163931
По-моему, надо уже после хита проверять
if(hit.transform.gameObject.tag == "Huita")
Или
if(hit.collider.tag == "Huita")

>>163917
Бля, но как эту педерастию побороть? В основном шейдоре цвет задаётся хуй знает зачем, потом альфа этого цвета (который сплошной) умножается для катаута. Если это убрать - ничего не ломается. Но если в основном шейдоре не задать цвет, то цветом будет считаться белый. Он каким-то образом потом добавляется к цвету в SpeedTreeCommon.cginc. Ну, не мешает и хуй с ним. Но из-за ебанистической системы юнити потом на этот же мейн колор снова умножается цвет где-то в недрах TerrainEngine.cginc. Я точно помню, что выпиливал когда-то это дерьмо для травы, потому что все цвета херятся. А сейчас нихуя не могу найти, где удалить. Ну же аноны, неужели никого не смутили беложёлтые деревь на террейне? Или крутанули цвет в серозелёный и забили?
#220 #163940
Срошу здесь. Как лучше всего сделать сделать разную статистику в игре. Например, для введения ачивок или для квестов "собери 10 черных мешков говна".
#221 #163942
>>163940
Хардкодить это, сами понимаете, не очень эффективно.
#222 #163946
>>163936
Так я проверяю.
#223 #163951
>>163940
Мне кто-нибудь помогать будет?
#224 #163954
>>163951

>Мне кто-нибудь помогать будет?



А ты, что называется, не охуел? Час только прошел. Изволь ждать, когда ответят если ответят.
Это не платная техподдержка и даже не стэковерфлоу, чтобы тебе все бросались отвечать. Гугл есть, в конце концов.
#225 #163959
>>163954

>ответят в юнити-треде


смешная шутка
#226 #163965
>>163936
Пиздооос. Короче проблема снова в энлигтехерн. Если при рисовании по террейну получаются белые деревья - надо запечь лайтмапу, потому что это к ней домножается мейн колор лишний раз. Но деревья будут один хуй ярче, чем вся остальная сцена, так что нельзя ставить мейн колор в 255, надо ставить по 128 и тогда ещё кое-как.

>>163940
Создаёшь новый тип объектов для ачивок, в объекте хранится инт и стринг. Создаёшь массив объектов-ачивок. Я так и собираюсь делать.
#227 #163968
>>163965

>Я так и собираюсь делать.


А проверять на выполнение ачивок ты как собрался?
#228 #163979
Кто уже писал шейдеры под 5-ку? чтоб пбр, все дела.
Как передать в стандартную модель освещения окклюжн?

Короче пишу o.Occlusion = _OcclusionTex.g
И ничего не происходит.
Что угодно пихаю туда - никаких изменений, и никаких ошибок. С остальными параметрами все отлично.
#229 #163984
>>163968
Почему бы не проверять в момент действия? Скажем, есть функция подбора вещи, при подборе ставим +1 в массив. Индекс ячейки - айдишник вещи, первое значение кол-во до достижения, второе - кол-во набранное. Для тех же квестов "убей триллион клопов" можно динамически создавать такие объекты и при киллах проверять, тот ли айди противника и тоже плюсовать. Ну хуй знает, я до этого пока не дошёл и точно не скажу, как удобнее.
94 Кб, 1452x1144
#230 #163988
В общем, посоны, как всегда спасибо за ваши ценные советы. Юнити-тред продолжает оставаться самым полезным тредом в /gd/. Я решил сделать так, с использованием REGISTRY паттерна.
#231 #163997
>>163979
Пишу шейдеры, проблем никаких.
Сейчас прикрутил 0-1 слайдер проверил оклюжн, работает как часы.
o.Occlusion = _AO;
Если сэмплишь его из текстуры, то надо же писать что то вроде
o.Occlusion = tex2d( _OcclusionTex, IN.uv_mainTex).g;
#232 #164000
>>163997

>Если сэмплишь его из текстуры, то надо же писать что то вроде


>o.Occlusion = tex2d( _OcclusionTex, IN.uv_mainTex).g;



Не, это понятно.
Вроде все так-же делаю.
Позже проверю на свежую голову.
#233 #164007
Тёмный интерфейс и кастомный сплешскрин достойны воровства вюнити?
#234 #164009
>>163988
Молодец, что не ждал три дня как некоторые, а сжал яйца в кулак и решил проблему. Почаще так делай, и игры может высплывут!
Добра тебе.
#235 #164014
>>163940
Observer.
#237 #164017
>>164015
>>163997

Не. Нашел в чем проблема.
Когда сэмплишь текстуру, координаты развертки обязательно нужно брать из uv_mainTex.

То есть вот так правильно: o.Occlusion = tex2d( _OcclusionTex, IN.uv_mainTex).g;
А вот так уже не работает: o.Occlusion = tex2d( _OcclusionTex, IN.uv_myTex).g;
Сук.

Похожая ерунда с o.Alpha в катаут шейдерах, кстати.
Если не _mainTex и не умножается на _Color - хрен тебе а не тени, дружок.
70 Кб, Webm
#238 #164018
мне тут кто-нибудь пояснить может за джоинты? мимоопхуй, если что, хотя вопрос уже чуть другой.

суть в вебмке. хочу жесткое соединение, а не этот пиздец.
что я делаю сейчас: AddTorque на белую палку. палка примотана hingeJointом к кругляшу.
#239 #164019
>>164017
Ну хуй знает, я MainTex вообще не использую, координаты генерю по мировым xz координатам вертекса и экранным, искажаю их, скролю, лерпю и похуй, работает как надо. Покажи код что ли.
#240 #164020
>>164018
тьфу блядь, который день сижу, а тут запостил и сразу разобрался.
некостыльного фикса нет, джоинты всегда вот так ебутся, когда сила очень... сильная.
#241 #164021
>>164020
Добавь дочерним элементом.
#242 #164027
Всего через полтора часа нам наконец-то объяснят как-же все-таки пользоваться новыми событиями в юнити
http://unity3d.com/learn/live-training/session/events-creating-simple-messaging-system
#243 #164028
>>164021
и так. дело было не в этом.
#244 #164029
>>164028
А в чем? Зачем ты добавил dynamic боди к объекту который должен быть намертво прибит?
#245 #164034
>>164019
Shader "Custom/Test2" {
\tProperties {
\t\t_Color ("Color", Color) = (1,1,1,1)
\t\t_MainTex ("Albedo (RGB)", 2D) = "white" {}
\t\t_Glossiness ("Smoothness", Range(0,1)) = 0.5
\t\t_Metallic ("Metallic", Range(0,1)) = 0.0
\t\t_OcclusionMap("Occlusion (G)", 2D) = "white" {}
\t}
\tSubShader {
\t\tTags { "RenderType"="Opaque" }
\t\tLOD 200
\t\t
\t\tCGPROGRAM
\t\t#pragma surface surf Standard fullforwardshadows
\t\t#pragma target 3.0

\t\tsampler2D _MainTex;
\t\tsampler2D _OcclusionMap;

\t\tstruct Input {
\t\t\tfloat2 uv_MainTex;
\t\t\tfloat2 uv_OcclusionMap;
\t\t};

\t\thalf _Glossiness;
\t\thalf _Metallic;
\t\tfixed4 _Color;

\t\tvoid surf (Input IN, inout SurfaceOutputStandard o) {
\t\t\tfixed4 c = tex2D (_MainTex, IN.uv_MainTex) * _Color;
\t\t\to.Albedo = c.rgb;
\t\t\to.Metallic = _Metallic;
\t\t\to.Smoothness = _Glossiness;
\t\t\to.Alpha = c.a;
\t\t\tfixed4 occ = tex2D(_OcclusionMap, IN.uv_MainTex);
\t\t\to.Occlusion = occ.g;
\t\t}
\t\tENDCG
\t}
\tFallBack "Diffuse"
}
#245 #164034
>>164019
Shader "Custom/Test2" {
\tProperties {
\t\t_Color ("Color", Color) = (1,1,1,1)
\t\t_MainTex ("Albedo (RGB)", 2D) = "white" {}
\t\t_Glossiness ("Smoothness", Range(0,1)) = 0.5
\t\t_Metallic ("Metallic", Range(0,1)) = 0.0
\t\t_OcclusionMap("Occlusion (G)", 2D) = "white" {}
\t}
\tSubShader {
\t\tTags { "RenderType"="Opaque" }
\t\tLOD 200
\t\t
\t\tCGPROGRAM
\t\t#pragma surface surf Standard fullforwardshadows
\t\t#pragma target 3.0

\t\tsampler2D _MainTex;
\t\tsampler2D _OcclusionMap;

\t\tstruct Input {
\t\t\tfloat2 uv_MainTex;
\t\t\tfloat2 uv_OcclusionMap;
\t\t};

\t\thalf _Glossiness;
\t\thalf _Metallic;
\t\tfixed4 _Color;

\t\tvoid surf (Input IN, inout SurfaceOutputStandard o) {
\t\t\tfixed4 c = tex2D (_MainTex, IN.uv_MainTex) * _Color;
\t\t\to.Albedo = c.rgb;
\t\t\to.Metallic = _Metallic;
\t\t\to.Smoothness = _Glossiness;
\t\t\to.Alpha = c.a;
\t\t\tfixed4 occ = tex2D(_OcclusionMap, IN.uv_MainTex);
\t\t\to.Occlusion = occ.g;
\t\t}
\t\tENDCG
\t}
\tFallBack "Diffuse"
}
38 Кб, 560x687
#246 #164035
>>164034
Звиняйте
#247 #164042
>>164034
>>164035
Хм, дело не в кривых руках. Похоже на баг, или дохуя интеллектуальную оптимизацию в парсере surface шейдеров. Надо бы забагрепортить.
Если в испекторе шейдера нажать на show generated code, то увидим что юнити нагенерировала из сюрфейс шейдера. А именно, в вертексном шейдере форварда uv_MainTex "пакуется" в float4
o.pack0.xy = TRANSFORM_TEX(v.texcoord, _MainTex);
а в фрагментом распаковывается обратно
surfIN.uv_MainTex = IN.pack0.xy;
На uv_OcclusionMap кладется хуй и он остается с нулевыми координатами.

В дефереде же все кошерно
o.pack0.xy = TRANSFORM_TEX(v.texcoord, _MainTex);
o.pack0.zw = TRANSFORM_TEX(v.texcoord, _OcclusionMap);
surfIN.uv_MainTex = IN.pack0.xy;
surfIN.uv_OcclusionMap = IN.pack0.zw;
Так что если переключишься в него, проблема пропадет. Ну или можно свою вертексную функцию дописать, в которой творить с координатами что угодно, если конечно есть такая необходимость.
#248 #164045
>>164042
Спасибо, хуясе знатоки в геде
В дефереде действительно все работает.
Но переключиться не могу, дело в том что пишу пак шейдеров для ассетстора и делать приписку мол "паcаны, тайлинг окклюжена работает только в дефереде" - не кошерно.
А вертексную функцию написать - скилов не хватает пока.
Так что оставлю как есть, наверное.
#249 #164048
>>164029
тому що этот кругляш - противовес, и кинематикой тут не обойтись.
45 Кб, 525x272
#250 #164073
>>164014
Кстати, да. Я решил МЕТРИКИ оставить для ачивок, а для миссий сделать события вдохновился вчерашним юнитистримом ололо.
Теоретически добавив событие и написав небольшую задачу-обработчик, можно сделать что угодно. Например, сделать событие изменения инвентаря, и в задаче проверять есть-ли столько предметов определенного типа. Или событие убийства монстра, а в задаче просто считать сколько монстров убито и т.д.
#251 #164150
Выпекаю хейтмапапу 65600х65600, чувствую себя реально грязным извращенцем с пластиковым кляпом в анусе и плёткой в зубах. Выпеклось уже примерно 65600х3500. Кажется, это на долго.
#252 #164172
Появилось первое обновление пятёрки,
вы вкурсе?
Чё туда напихали?
#253 #164177
#254 #164198
PAKANI, кто-нибудь запекал global illumination на террейне? У меня юнити тупо вылетает.
#255 #164200
>>164172
Разработчики стараются, пишут changelog каждой версии, что изменено, что пофиксено.
А потом приходит вот такой вася с вопросом: "че туда напихали?".
Нахуй иди.
#256 #164204
>>164198
Cделай террейн поменьше или включи своп и жди до второго пришествия. Террейн 3х3 км у меня запекается очень долго, 2х2 быстро. Это проблемы с энглихтерен, он кривой до ужаса и хуже по качеству, чем бист. Не понимаю, зачем его заменили.
#257 #164205
>>164200

>GI: Fixed inconsistent Enlighten build timings; now it should correspond to wall clock time (unless you move at near speed of light relative to your computer, in which case it might still be wrong).


Ага, даже стараются спетросянить. Лучше бы движок пилили, тот же лайтмапер ебучий.
#258 #164208
>>164150
Выпек. В процессе уменьшил разрешение в четыре раза, до 32832х32832. Только нахуя? Юнитивский террейн не может в хейтмапы. На 16 бит он обсирается, а на 8 бит пиздецовые ступеньки.
#259 #164211
>>164200

Мне не интересно, что тот эстонский педик в чейнжлоге написал, мне интересно как ананасам по ощущениям, так примерно можете сказать?
#260 #164220
>>164211
немного кисловато и слишком мутно. не качай.
#261 #164227
>>164220
Двачую. Нехватает какой-то перчинки... воздушности что-ли, дерзновенности и в то же время привязанности к корням, как-то всё пресно, и сумбурно слегка. Думаю, стало несколько плотнее, но это для любителей серьёзного погружения в суть вещей. Мне же больше нравилась поверхностная лёгкость и скольжение предыдущих.
Как-то так.
#262 #164236
>>164227
Низы кочяют? Сцена чувствуется? ТАрелочки цокают?
#263 #164247
>>164236
Если прогреть юнити в течении 30 минут каким-нибудь годным проектом, предварительно её "натаскав", запуская готовые хорошие игры (типа флапибёрдс, энгрибёрдс или любые другие. заканчивающиеся на "бёрдс"), в течении недели с периодичнсть раз в 15 минут - то что-то такое есть, но на грани восприятия. Естественно, нельзя забывать о хорошем компе с минимум с 8ГБ рама, обязательно последней виндой (можно бетку, главное, чтобы последняя) и последней видеокартой от Нвидиа (чтобы циферок в номере было побольше), ни для кого не секрет, что хороший мощный комп - 99% успеха в геймдеве. Ну, брэндовые клавиатура и мышь минимум за 100$ каждая - это настолько очевидно, что даже вспоминать стыдно. Набирать код на немеханическом говне за пять баксов, гы, даже представить сложно.
#264 #164273
>>164247

>хороший мощный комп - 99% успеха в геймдеве



Это половина успеха.
А вторая половина: борода+андэркат+рубашка в клеточку.
#265 #164275
>>164273
И еще носить шапку в комнате.
#266 #164279
>>164247
>>164273
>>164275
Теперь это СОСТАВЛЯЮЩИХ УСПЕХА итт тхрэадж!
#267 #164286
>>163988

>REGISTRY паттерна


Что это паттерн такой? Чето не помню, чтобы Банда Четырех что-нибудь говорила о таком паттерне.

мимо-паттерноёб
#268 #164287
Бля, какого хуя MonoBehaviour.OnMouseDrag() вызывается, если даже юзер не двигает мышку? Юнити обосрался даже здесь, ну как так можно-то?
#269 #164318
Рибята. Что мне нужно - сохранять данные об игре. Поэтому я хочу создавать текстовые файлы. А еще хочу проверять их существование, писать в них, читать и вообще. Нужно делать это платформонезависимым способом.

Я решил делать примерно так:

-----------------------------------------------------------------------------
string sep = Path.DirectorySeparatorChar.ToString();
string path = Application.persistentDataPath + sep + "ololoTest.txt";
StreamWriter sw = new StreamWriter(path);
sw.WriteLine("Hello There!");
sw.Close();
-----------------------------------------------------------------------------
string sep = Path.DirectorySeparatorChar.ToString();
string path = Application.persistentDataPath + sep + "ololoTest.txt";
StreamReader sr = new StreamReader(path);
string line = sr.ReadLine();
sr.Close();
-----------------------------------------------------------------------------

Какие подводные камни? Я слышал проблемы с созданием файлов через web-плеер, но меня это пока не сильно беспокоит. В общем есть ли способы лучше? Можно ли получить доступ к папке Resources?
#270 #164319
используй сериализацию класса для сохранений. храни всю инфу об игре в классе а-ля GameState
#271 #164320
>>164319
При чем здесь сериализация? Нет. Мне удобнее хранить в текстовом формате. Мне нужно будет читать "шапку" сохранения побыстрому и использовать хеш над данными из сохранения. В общем не суть. Вопрос насчет того КАК СОХРАНЯТЬ. А не что сохранять.

А-ля GameState? - Что это значит?
34 Кб, 1238x310
#272 #164321
можешь еще и воспользоваться юнитивской сериализацией и сохранять все в asset используя ScriptableObject. которая еще и сериализует ссылки на ресурсы(так-же как сериализуются геймобжекты в префабы).
только имеет множество других ограничений вроде отсутствия сериализации наследования, но ты всеравно похожу стринги хранить собрался.
#273 #164322
сериализация и есть процесс сохранения, бака
#274 #164323
ну если тебе НАДО, то пиши в текстовый файл. зачем ты вообще этот вопрос задал?

>А-ля GameState? - Что это значит?


значит, что состояние игры хранишь в этом классе. ты ведь в любом случае хранишь где-то это состояние, лучше хранить все в одном классе и сериализировать, десериализировать его тебе же НАДО
#275 #164324
>>164321
нельзя сохранять в ассет. из него можно только читать и редактировать в редакторе
44 Кб, 1351x227
#276 #164325
>>164324
а это что? магия? происходит в старте.
#277 #164327

>UnityEdtior


в редакторе играть собрался?
#278 #164328
>>164322
Ну да. Но обычно имеется ввиду что-то "автоматическое". Да не важно. Потом разберусь как удобнее.

>>164327
Он >>164325 таки обосрался?

>>164323
Как мне правильно писать в текстовый файл. В этом вопрос.

>>164323
У меня все итак в одном классе, конечно. Просто название GameState меня смутило.
#279 #164329
>>164328

>обычно имеется ввиду что-то "автоматическое"


https://msdn.microsoft.com/en-us/library/ty01x675%28v=vs.90%29.aspx
#280 #164330
>>164329
Ты думаешь я этого не видел или что? Потралькать решил?
Я понимаю, что советов мудрых дать хочешь, спасибо. Я не утверждаю, что использовать текст это круто. Я просто хочу правильно работать с файлами. Чем их наполнять дело другое. Понимаешь. Ответь на то, что я спрашиваю, пожалуйста.
#281 #164331
>>164330
Добавлю. Вопрос не по C# и погромированию. Вопрос именно по Unity3D.
#282 #164332
>>164287
Cогласно документации, вызывается каждый апдейт, пока юзер жмёт кнопку и похуй на движения. Кто ещё обосрался-то.

>>164318
Не пойму, в чём проблема. В юнити реализованы все фичи шарпа которые реализованы в моно, так что никаких проблем нет писать в файл что угодно. Сходи на мсдн и покури доки. Рекомендую пихать в джсон, очень удобно.

>Я слышал проблемы с созданием файлов через web-плеер


Через веб сохраняй в юзер.префс и засри реестр полностью. Но не похуй ли, в самом деле? Тем более, что скоро плеер вообще отвалится.
#283 #164333
>>164332
Хватит посылать меня в msdn. Я сеньер C# нет. Так в json и собираюсь.

В чем проблема? Я не разбираюсь в Unity3D. И не хочу. Я пытался писать в каталог Resources. На ПК все замечательно работало StreamWriter шалил, но на android нет по понятным причинам. Решил использовать путь Application.prе_что-то там_dataPath. Это лучшее решение. Т.е. абсолютная адресация это стандарт юнити? Или же есть штука типа Asset.CreateFile (str name) и так надо делать? Если лучше абсолютная адресация, то Application.prе_что-то там_dataPath это лучший выбор?

Неужели я так непонятно пишу юнитоиды?
#284 #164334
>>164333

>Я не разбираюсь в Unity3D. И не хочу.


>Пытается что-то писать на юнити


Топкек) ловите шизика))
#285 #164335
>>164334
Да брось. Я не 3D графин делаю. Знаний их нет из GL достаточно. Просто использую...

Да иди в жопу. Лучше проблему мою реши.
#286 #164336
>>164333

>Хватит посылать меня в msdn


Тогдя пожалуй пошлю тебя на хуй
#287 #164337
>>164328
да~ обосрался. UnityEdtior нет в сбилженых проектах, если не пользешьзуешься девелопмент билдом(вроде). читать можно, писать нельзя.

для файловых операций есть отдельно хуйня, кстати. http://docs.unity3d.com/ScriptReference/FileUtil.html
#288 #164338
>>164336
Это ты типа свой батхерт так выражаешь или что? Извини, если недопонял.

>>164337
Знаю, что нет в билде. Очевидно из названия.
Видел эту штуку, естественно. Это же просто обертка. Суть в том какой путь указать, если нужно так делать (через абсолютную адресацию).

Товарищи Вы меня расстраиваете. Сговорились что-ли? Никто не хочет прочитать мой вопрос внимательно, а только говорите первое, что придет в голову. И кидаете десадовские решения насчет погромирования.
#289 #164339
>>164338

>Т.е. абсолютная адресация это стандарт юнити?


да

>Если лучше абсолютная адресация, то Application.prе_что-то там_dataPath это лучший выбор?


да

>Неужели я так непонятно пишу юнитоиды?


да

>В чем проблема?


да

>Это лучшее решение.


да

Ты бы лучше объяснил чем тебе это решение не нравится, а то получается что-то вроде "Пацаны, я записал кароч float a = b + c;. Это лучшее решение для сложения? Или есть лучше?"
18 Кб, 975x180
#290 #164340
>>164338
у которой, лол, внезапно документация далека от полной. а даль, например можно иметь кнопку для создания пустых ассетов.

собственно что касается пути. ты это хочеш чтоли? http://docs.unity3d.com/ScriptReference/Application-dataPath.html
#291 #164341
>>164340
а. ты это и спрашивал. тогда
да
#292 #164342
>>164339
Стандарт говоришь. Тут поподробнее. Есть ссылка на местного Ричарда Гейба, который говорит это?

Мне все нравится. Только мне нужно быть уверенным, что это сработает на всех платформах. А гарантировать такое очень сложно. Вот я и подумал - юнити это штука для игр. Зачем мне юнити? Говорят она кроссплатформенная. Это то, что мне нужно, очень здорово! В играх часто нужно хранить информацию между сессиями. Так может юниты позаботились о кроссплатформенном хранении информации? вот только не кидайте видос про сейвы. Вы что думаете я не посидел в гугле пару дней перед тем как вопрос задать?

>>164340
Мама роди меня обратно. Ну там же сразу написано, что ридонли. Или я ослеп.

Друзья мне начинает казаться, что не все здесь сидящие настоящие эксперты игростроя.
#293 #164343
>>164339
Совсем забыл сказать. Есть лучше.
#294 #164344
>>164342

>Ну там же сразу написано, что ридонли.


А почитать дальше?

------>>>>>>use Application.persistentDataPath to save data<<<<<<------

То что там в скобках написано ридонли - это относится к этому свойству, а не к папке на которую оно указывает.
http://answers.unity3d.com/questions/458411/c-how-to-save-data-during-gameplay.html

>все здесь сидящие настоящие эксперты


Здесь просто настолько все офигенные профессионалы, что им смешны твои потуги.
#295 #164352
>>164318

>string path = Application.persistentDataPath + sep + "ololoTest.txt";


Для составления валидных путей есть Path.Combine(YuorPath, AdditionPathWithFileName).
Через File.Exist(Path) и Directory.Exist(Path) можно проверить существование файла/каталога.

>StreamWriter sw = new StreamWriter(path);


>ololoTest.txt


Тут наверно нужен TextWriter/Reader, иначе в файл будет записана бинарная параша.

>В общем есть ли способы лучше?


Хз, может XML?
sage #296 #164353
>>164342
Ты тупой или зеленый.

>Так может юниты позаботились о кроссплатформенном хранении информации?


Об этом позаботились писатели моно. Прост юзай стандартный путь схоранения файлов в папки для которых юнетики гарантируют их существование и доступность. Все.

Вчемблдьпроблема? Ко-ко-кок кросплатферменность ? Она из каропки.
Не знаешь как писать/читать текстовые фалы? Потренеруйся на кошках из мсдна, потом попробуй в юните.
#297 #164358
>>164342

> может юниты позаботились о кроссплатформенном хранении информации?



Позаботились.
PlayerPrefs.
#298 #164359
>>164344

>А дальше почитать?


Так я и так так делаю, что мне там читать?

>>164352

> Для составления...


Спасибо, ценная информация.

>>164352

>Через File.Exist


О, а как создать файл не подскажешь?
>>164352

>Тут наверно нужен


Первый год на шарпе?

> Может хмл


Спасибо, я как раз спрашивал в каком формате сохранять.

>>164353
А каким папкам они гарантируют существование и доступность? Можешь перечислить?

>>164358
Разве это эстетически правильно хранить большие и сложные структуры данных в PlayerPrefs?

>>164344
Это хорошо, что профессиональны. Это радует.
#298 #164359
>>164344

>А дальше почитать?


Так я и так так делаю, что мне там читать?

>>164352

> Для составления...


Спасибо, ценная информация.

>>164352

>Через File.Exist


О, а как создать файл не подскажешь?
>>164352

>Тут наверно нужен


Первый год на шарпе?

> Может хмл


Спасибо, я как раз спрашивал в каком формате сохранять.

>>164353
А каким папкам они гарантируют существование и доступность? Можешь перечислить?

>>164358
Разве это эстетически правильно хранить большие и сложные структуры данных в PlayerPrefs?

>>164344
Это хорошо, что профессиональны. Это радует.
#299 #164368
>>164333

>Я пытался писать в каталог Resources


Ты ж долбоёб.

>>164344

>Здесь просто настолько все офигенные профессионалы


Да даже если человек недельку с шарпами возится, даже без юнити - ему уже будет смешон этот "сениор". Клоун анальный, не знает, как файл записать, пиздец просто.

>>164352
Гарантированно валидный путь - директория игры же. Там можно и схоронять всё в папочку сейвов. И чем плохо писать бинарную парашу? Всё равно потом разбирать и не похуй ли, разбирать джсон, хмл или бинарные данные? Ну, разве что хмл чуть похуже.
#300 #164369
>>164368
Если я захочу записать в файл - то я погуглю и напишу за пару минут.

Писал в файлы я разве что, когда лабы делал в универе, а ещё тулза одна была помню, да только там NLog сам из коробки писал.

А так все данные как бы в бд хранятся.

Короче, сразу видно долбоёба, который из универа ещё даже не вылез.

мимо другой сениор
#301 #164370
>>164368
Спасибо за ценные непредвзятые комментарии и уважение к собеседнику. Сразу чувствуется стиль геймдизайнера - уметь слушать окружающих.

>>164368
Директория игры - это где в android не подскажешь? А в ios? Что насчет xbox?

>>164368
Чем плохо в бинарник? Я не говорю, что это плохо. Но мне стоит хорошо подумать как это реализовать. Потому что, если выйдет новая версия не хотелось бы терять совместимость сейвов на пустом месте.

И вообще что вы заладили. Я же сказал, что не спрашиваю в каком формате хранить. Зачем вы мне что-то такое советуете?
#302 #164371
>>164359

>Разве это эстетически правильно


Нет конечно.
Я пишу в текстовый файл. Но ты же спросил про универсальное кроссплатформенное решение.

>>164368

>Гарантированно валидный путь - директория игр


Хуй там.
В редакторе да, все хранится. А в билбе нужно заморочится с правами доступа.
Лучше Application.persistentDataPath
#303 #164376
>>164369
Пакетик чая этому разработчику. У меня наглости не хватило так глубоко обидеть предыдущего оратора. Молодцом, продолжай в том же духе ;)

>>164371
Думаю ты меня убедил. Буду так и делать. Как с самого начала. Спасибо.
#304 #164377
>>164369
Лол, вылез долбоёб, который не знает, что такое базы данных. Сеньёров без базовых знаний тред.

>>164370
Хорошо, поясню подробнее. Нельзя писать в папку ресурсов.

>>164370
>>164371

>Директория игры - это где в android не подскажешь? А в ios? Что насчет xbox?


Это не валидные устройства. Петросян жпг
В самом-то деле, так сложно зайти в справку и найти рекомендованные переменные окружения? Напоминает уёбков из эпик гейс, которые прописали путь к студии, как "С:/Program Files/Microsoft Visual Studio" прямо в коде блядь.
#305 #164378
>>164377
А что такое базы данных?

>>164377
А переменные окружения причем? На каждом устройстве в переменных окружениях хранятся валидные пути для сейвов? Почему я вообще должен об этом думать? Вот она кроссплатформенность?
#306 #164379
>>164378
Базы это файлы. Твоё окружение это не ось, а юнити. Кури мануалы, сделай пару уроков с сайта юнитеков. Потом сходи и почитай мсдн. Если уж ты вообще нихуя не понимаешь.
#307 #164380
>>164379
Если распостранить по дедукции, то твоя мамка тоже файл с открытым доступом. Извини вырвалось.
В самом деле неужели не понятно что мимодругойсиньер имел в виду. Зачем ты срач разводишь?

>>164379
А виндовс для девушек без страха мне не почитать? Лучше кинь ссылку где в окружении юнити есть абсолютный валидный платформонезавистмый путь, раз уж неплохо разбираешься в этом. И чем этот подход лучше Application.prе_что - то там_dataPath. Заранее спасибо.
#308 #164381
>>164368

>Гарантированно валидный путь - директория игры же


Виндовс предотвратила попытку программы внести изменения в систему. Разрешить программе от неизвестного поставщика внести изменения в данный компьютер?
ЧТО!? ВИРУСЫ! ЭТО ВИРУС!!! ЗАЧЕМ ТЕБЕ КОНТРОЛЬ НАД МОИМ КОМПЬЮТЕРОМ!?!?
АВТОР ГДЕ МОИ СЕЙВЫ Я ПЯТЬ ЧАСОВ ИГРАЛ НИХУЯ НЕ СОХРАНИЛОСЬ ТЫ МУДАК ОДНУ ЗВЕЗДУ ДЕРЖИ ДАЖЕ НЕ ДОСТОИН!!!!
#309 #164382
>>164380

>И чем этот подход лучше Application.prе_что - то там_dataPath.


Этот подход и есть Application.persistentDataPath. Его ввели в юнити 3 и тебе никто не мешает им пользоваться в юнити 5. Так понятнее? Это и есть разумный подход. Даже больше, в справке юнити и советуют его использовать, потому, блядь, я тебе и пишу, кури справку, блядь. Сам сказал, что вопрос касается юнити, вот и используй, что тебе юнити даёт. Есть ещё, как уже писал, Application.dataPath, который будет валидным для большинства устройств, потому что они на шиндовс.

>неужели не понятно что мимодругойсиньер имел в виду


Неужели не понятно, что я имею ввиду? Нихуя он не сеньёр, а какой-то хуй с горы, для которого бд - блэк бокс, юнити блэк бокс и так далее. К тому же, он не только не понимает работу инструментов, он не имеет понятия о юз кейсе и таких-то сеньёров точно быть не должно.
#310 #164383
>>164381
Существуют исключения, например. И почему "неизвестный" поставщик? Тут каждый первый сеньёр, вот и используйте сертификаты, блядь.
#311 #164385
>>164382
Ты говорил про переменные окружения. Расскажи про них.

>>164382
Кто на шиндовс? Андроид? Я не понимаю.

>>164382
О так ты разбираешься в БД. Очень хорошо! Подскажи как сейчас грамотные дяди обходят проблему хеллоуина? Т.е. как это модно теперь, чтобы на собеседовании не посмеялись?
#312 #164390
>>164385

>Ты говорил про переменные окружения.


>Твоё окружение это не ось, а юнити.


Ты начинаешь уже слишком толстить.

>как сейчас грамотные дяди обходят проблему хеллоуина?


Так же, как и все. Надеюсь, для тебя мелкомягкие и розрабы cql баз достаточно грамотные? Ведь ты наверняка, как и каждый предельно тупой человек, очень высокого мнения о себе. Так вот, к проблеме хеллоуина. Обходят её простой буферизацией данных. И снова - пиздуй читать мелкомягких https://technet.microsoft.com/ru-ru/library/ms190435(v=sql.105).aspx
А то ты не только на собеседовании позоришься, ты даже на двачах опозорился. А хуже уже нет.
#313 #164391
>>164390

>cql


sql, конечно же.
#314 #164396
Привет, аноны. Столкнулся я тут с одной проблемой и не знаю ка кее решить. Суть такова: есть скрипт1, в нем есть метод, принимающий один аргумент. В зависимости от того какое значение будет иметь этот аргумент, этот метод вызовет один из многих других методов. Так вот, пихать все это множество методов в скрипт1 неразумно, т.к. нужен будет лишь один. Поэтому я решил создать отдельный скрипт2 со всеми этими методами, доавил в него неймспейс и импортировал его в скрипт1. Теперь сама проблема: в методах, которые лежат в скрипте2, используется много переменных из скрипта1, а скрипт2, соответственно, о них не знает. Отсюда вопрос: можно ли как-нибудь это все реализовать, не передавая всю эту кучу переменных в качестве аргументов?
#315 #164398
>>164396
static
но судя по тому, что он у тебя используется - у тебя проблемы с архитектурой
#316 #164401
>>164396
Ты изобрел компоненты?
#317 #164402
>>164390
Ладно ты меня раскусил. Стало скучно и я решил затролить лалок. Но от твоего зоркого взгляда никуда не денешься. Не держи зла.
#318 #164412
>>164402

>обосрался с головы до пят


>ЭТО Я ТАК ТРАЛЛИЛ)))

#319 #164413
>>164412
Ну типа того.
#320 #164430
>>164396
У меня есть нечто подобное. Скорее всего, подход костыльный, но всё-таки. Есть класс, в котором хранится большая часть данных. Есть ссылка на класс. Ну и соответственно, скрипт1 и скрипт2 могут использовать myClass.var в любом месте.

>>164208
Всё получилось. Итого, нужно 8 бит, в фотошопе открывать нельзя, иначе хейтмапа превращается в говно (хуй знает, почему). Юнити с 16 бит категорически не дружит, что тоже досадно - слишком резкие переходы тонов. Лечится частично снижением высоты террейна и увеличением размера относительно размеров хейтмапы. Допилю алгоритмы и буду заниматься левелдизайном, расчётная площадь мира ~5к км квадратных + 25%.
#321 #164438
>>164430
Я уже по-другому придумал. Передаю в библиотеку методов компонент скрипта и в методах юзаю все эти переменные с префиксом скрипта. Правда пришлось все эти переменные сделать паблик. Даже не знаю хорошо это или плохо.
#322 #164439
>>164438
Ты нормально объясни что ты делаешь и для чего тебе это надо
#323 #164440
>>164438

> по-другому придумал


> описал практически то же самое

#324 #164447
>>164439
Хочу вызывать различные методы в зависимости от значения переменной. Хочу держать их всех в отдельном скрипте. А нужно это для того, чтобы избавиться от избыточности.
#325 #164453
>>164447
Непонятно что ты хочешь и зачем тебе вызывать разные методы в зависимости от переменной.
Может вообще есть другое более просто решение.
Ты рассказывай не что у тебя там в скрипте, а какую тебе надо прикладную задачу
#326 #164455
>>164377
Эк тебя порвало, обиженка. В принципе, я не удивлён, с такими то логическими конструкциями ты мало кому нужен.

Как дойти от записи в файл до устройства БД и юз кейсов. Для чайников.

тот самый сениор
232 Кб, 1366x768
#327 #164460
>>163213
>>163609

Это снова я. Мобы ходят, башни стреляют. Теперь занимаюсь механикой строительства башен. Решил использовать систему, которую видел в стратегии на UE4.

Есть заблокированная платформа, при клике на неё должно появляться предложение анлокнуть за X голды. После этого она становится анлокнутой. При клике на анлоктную платформу должны появляться три иконки с башнями, и при клике на соответствующую иконку должна строиться соответствующая башня.

Собственно, реализовал что при клике на залоченную платформу она анлокается, то есть тупо один префаб заменяется другим. Нарисовал все иконки и текстуры. Как реализовать строительство, как выводить "плавающие" в воздухе кликабельные иконки, как ввести переменную с голдой, как отнимать голду и как начислять голду за убитых мобов?
#328 #164476
>>164460

>Как реализовать строительство


Наверно надо написать компонент Stroitelstvo и дать его площадке - в нем считать время и показывать какой-нибудь ассет анимации, а потом подменять все это на башню.

>как выводить "плавающие" в воздухе кликабельные иконки


Хуй его знает, можно билборд+ригид_боди + рейкаст = костыль интерфеса. Можно взять центр платформы перевести его в пространство экрана и в этом месте нарисовать стд:юните_интерфейс(сам так делать буду).

>как ввести переменную с голдой


Я уже ввел в твою мамку!Не удержался. Попробуй в игрока. Ему понравится.

>как отнимать голду и как начислять голду за убитых мобов?


Пообуй заставить мобов генерить статический глобальный эвент - OnMobDied, а игроком на него реагировать(деньги начисляй).
#329 #164490
>>164460

> Как реализовать строительство, как выводить "плавающие" в воздухе кликабельные иконки, как ввести переменную с голдой, как отнимать голду и как начислять голду за убитых мобов?


Как хочешь!
#330 #164534
>>164455

>Уличили в тупости


>АЗАЗА ЗАТРАЛЕЛ


>я низнаю не талька чта такое базы данных, но и чё такае юскийс


Ну вот ты и доказал, что пиздобол обыкновенный, а не сеньёр. Первый хоть признался, что тралл. Лол.

>>164460

>Как реализовать строительство


Класс "вышка" с состояниями, каждое состояние - этап постройки вышки можно включительно с "непостроено". На смену состояния вешаешь смену префаба. Плавающие иконки легко и просто через новый гуй, там, кажется, даже канвас можно сунуть в префаб и отображать в скринспейсе.

>как ввести переменную с голдой


Непонятен вопрос. Добавь инт и с ним уже работай.
#331 #164537
>>164534
Что значит тралл? От того что я над тобой подшутил сеньером я быть не перестал.
мимопервый
#332 #164541
>>164534
Чувак, тебе сколько лет?
Серьёзно.

У тебя какие-то очень свои представления о том, что должен знать сениор, и это очень смешно.

К слову о тупости -
Какой еблан вспомнит про БД, когда речь идёт о простой записи в файл? Пиздец же. Как твоя фантазия дошла до юз кейсов я даже боюсь спросить.
sage #333 #164551
>>164541>>164537
Сеньоры и сеньерихи, иди нахуй из этого треда. Спасибо.
#334 #164572
>>164537
Так ты ж обосрался на тотальном незнании основ, какой с тебя нахуй сеньёр? Что первый, что второй.

>Какой еблан вспомнит про БД, когда речь идёт о простой записи в файл


Давай не передёргивай, уёбок. Речь о "я не пишу в файл, я пишу в бд". Тут-то тебя носом и ткнули, что ты нихуя не понимаешь, что такое бд.

> дошла до юз кейсов


Был бы хоть джуниором, понимал бы. А так обычный ноубрейн ноускилл.

>>164551
Поддвачну. Точно так же я мог бы написать, что я кармак или билл гейтс, но обосраться на чём-то примитивном. Незнании английского, например.
#335 #164575
>>162871
Вот и всё нахуй, гугл выключил старый апи. Юнити плеер в бравзере искаропки больше не работает.
#336 #164580
>>164453
TD. На каждый префаб башни вешается один и тот же скрипт, код в котором одинаков для всех башен. Единственный метод, который будет для каждой башни свой - это метод Shoot(). Этот метод будет отвечать за поведение башни при атаке. Смысла прописывать поведение для всех башен в один скрипт и вешать его на каждую башню я не вижу, поэтому хочу вынести все поведения в отдельный скрипт, а уж в зависимости от типа башни брать из этого скрипта нужное поведение.
Может и есть более правильное и красивое решение, я с радостью бы взял его на вооружение.
#337 #164583
>>164575
Сука, так вот почему ява не завелась. Плагин, блять, не поддерживается.
#338 #164586
>>164575
давай начнем с того, зачем ты пользуешься недобраузером?
#339 #164587
>>164583
Зато говнофлеш уже давно на новом апи и не отвалится. Когда он уже умрёт окончательно?

>>164586
Альтернатив-то нет.
#340 #164588
>>164586
Давай лучше не начинать это дерьмо.
#341 #164589
>>164580

>Единственный метод, который будет для каждой башни свой - это метод Shoot()


Ну так и запихни этот мотод в компонент(или интерфейс). Потом напили 100500 компонентов разных атак, и раздай их башням при их создании.
Получится как ты хочешь:

>хочу вынести все поведения в отдельный скрипт


Вместо проверки переменой башни каждый кадр для нужной атаки будет всего одна прверка в момент создания башни для определения компонента.
#342 #164590
>>164580
А, то есть ты сделал много скриптов для башен которые отличаются только методом Shoot()? Открой для себя наследование классов. Это идеально решает твою проблему.
Не хочешь делать наследование, можно сделать один скрипт поведения для всех башен и добавить к башням, а для каждого Shoot() создать свой компонент (что-то вроде Shootable) c методом Shoot()(, и когда башни нужно стрелять просто пишешь SendMessage("Shoot").
но лучше сделать наследованием, просто делаешь метод shoot виртуальным и переписываешь в каждой башне.

>Смысла прописывать поведение для всех башен в один скрипт и вешать его на каждую башню я не вижу, поэтому хочу вынести все поведения в отдельный скрипт а уж в зависимости от типа башни брать из этого скрипта нужное поведение.


Почему не сделать для каждой башни свой скрипт?
400 Кб, 2000x1147
#343 #164591
>>164587

>Альтернатив-то нет.


Проиграл с этого гуглоребенка. Добровольно есть во всем уступающее говно, которое еще теперь и (ебет) решает за пользователей что им нужно - это что-то вроде линукс-фанатиков.
#344 #164595
>>164588
Не любишь срачи в тематике?

>>164590
Кстати, тоже так делал, гораздо удобнее, когда не на каждой башне свой скрипт, а есть один объект, который руководит всеми башнями. Да и по производительности лучше должно быть.

>>164591
Единственный рабочий браузер, после ухода оперы с престо, это хром. Лиса уже лет пять, как недобраузер и не нужна.
#345 #164598
>>164595

>Лиса уже лет пять, как недобраузер и не нужна.


Не пизди. Единственный нормальный браузер.
#346 #164599
>>164588
Но это дерьмо начали в 2007м, а то и 2006м. Тебе стоило это сказать тогда, а сейчас уже ничего не сделать.
>>164598

>Единственный нормальный браузер.


Да. Но это не потому, что он хорош.
#347 #164600
Все ваши браузеры хуйня, но опера 12 устарела пиздец, хоть бы к вивальди быстрее плагины допилили.
#348 #164601
>>164595

>Лиса уже лет пять, как недобраузер


Все ясно, кукаретик. Сам я не видел, но пацаны рассказывали, да? А я вот сравнивал, пользовался обеими браузерами. И для меня выбор более чем очевидным.
Ты типичный ребенок, который установил хром ПОТОМУ ЧТО ОН У ВСЕХ ЖИ)))
ну сиди на это говне дальше. видимо хромоюзерам нравится чувствовать хуй у себя в жопе.
что вам там еще собираются отрезать? что там гугл считает хромодаунам еще нинужно?
#349 #164602
>>164572

>"я не пишу в файл, я пишу в бд". Тут-то тебя носом и ткнули, что ты нихуя не понимаешь, что такое бд.


Лол, пиздец же.
Теперь буду говорить, что я пишу в файл, когда речь идёт о бд.

Сосач такой сосач.
#350 #164603
>>164601
Хуй в жопе как раз у тебя, гугол двигает прогресс и по его инициативе юнитипидоры уже соснули сочного хуйца, и это только начало.
#351 #164606
>>164595

>Кстати, тоже так делал


То, что ты делал - это хуита, и так делать не нужно.
Может в твоем недоделанном примитивном tower defence это и показалось нормальным, но в нормальных больших играх так не надо делать, иначе кривая и не гибкая архитектура в будущем доставит много проблем.
#352 #164610
>>164603

>гугол двигает прогресс


>сломал юните


Лол, сектант даже не замечает как делит на 0.
#353 #164613
>>164610

>юнити


>прогресс


Кто из нас сектант?
#354 #164614
>>164613
Ты епт. Отрезали одну из возможностей, оставив тебе право только кукарекать НИНУЖНО.
#355 #164615
>>164601

> Сам я не видел


Я её несколько раз ставил. Первый раз она падала непонятно почему. Потом просто перестала запускаться. Хуйня короче.

>>164603
Я бы не сказал, что соснули, есть же компил в хтмл 5. Но это именно, что прогресс - старый формат апи это очень большая дыра в безопасноти. Хром теперь безопасен. Остальные браузеры - нет. И что же мы выберем, дырявое решето или нормальный браузер?

>>164606

>То, что ты делал - это хуита, и так делать не нужно.


Хуита - клонировать один и тот же скрипт на триллион префабов. И у меня была не тд, а фпс и так я руководил ботами. Сначала вешал по скрипту на бота, но быстро понял, что такой подход уёбищный, кривой, неудобный и не подходит для нормальной игры. Потому сделал всё аккуратно через класс-"менеджер", что упростило архитектуру и сделало её более гибкой и расширяемой.
#356 #164620
>>164615

> И что же мы выберем, дырявое решето или нормальный браузер?


Браузер, естественно. То есть firefox.

>Хуита - клонировать один и тот же скрипт на триллион префабов.


Как я сразу не догадался что ты этот хромодаун.
#357 #164621
>>164603
Пока что хуйца соснули только пользователи хрома.
#358 #164628
>>164589
Что ты имеешь ввиду под словом компонент? Еще один скрипт?
#359 #164632
Такой вопрос: как лучше всего определять, какой звук нужно играть, например, при ходьбе по определенной поверхности, или разные звуки попадания пуль в зависимости от типа пуль.
#360 #164633
>>164632
На счет ходьбы по различным поверхностям: можно пускать рейкаст вниз и прощупывать им поверхность и на основе этого выбирать какой звук проигрывать.
#361 #164634
>>164633
И как выбирать? Как звуки лучше хранить?
#362 #164635
Например, один персонаж одет в сапоги, а другой в валенки. И нужно для каждого типа поверхности и типа обуви делать свои звуки.
#363 #164637
>>164621
Теперь в копателя онлайн не поиграть, бида бида.
#364 #164639
>>164633
Пиздец совет. Лучше раскидать по уровню области-триггеры и в OnTriggerEnter менять звук на нужный. А с рейкастом тебя в приличном обществе нахуй пошлют.
#365 #164641
>>164639
В приличном обществе рейкастами не пользуются?
15 Кб, 271x195
#366 #164644
>>164639
Почему? Звук как правило вешается на событие анимации. Пара рейкастов в секунду максимум. А триггером ты что сделаешь?

В общем я пока думаю сделать как-то так. Осталось придумать как лучше добавить теги к объектам.
#367 #164645
>>164620

>Браузер, естественно. То есть firefox.


На ноль поделил.

>>164644
Он предлагает, походу, по границе типа местности наставить триггеры и переключать по ним звук. Но, во-первых, игрок же может спрыгнуть с высоты и перепрыгнуть триггеры. Во-сторых, их надо будет очень дохуя, а у физона лимит на 65к, вроде, объектов в сцене. Опять же, производительность по пизде пойдёт. Но и пара райкастов в секунду - это слишком дохуя. В крае получаются данные из типа материала, на котором стоит персонаж. В юнити без костылей так не сделать но и в крае через костыли, другое дело, что там этого не видно.
#368 #164657
>>164600

>вивальди


сделан на движке хрома и является таким же ненастраиваемым куском засохшего твердого говна. опера была годной потому что ее можно было настроить под себя как угодно. в лисе с этим похуже, но хотя бы можно кнопки таскать.
ну а с хромом все понятно. хромодебилы пусть кукарекают что нинужно, уродливые табы на самом деле красивые, эта ебанутая кнопка нового таба очень эстетично выглядит, а гиганский шрифт в адресс-баре очень кстати - ведь часто приходится читать адресную строку, вдруг там появится важное сообщение!
#369 #164665
>>164645

>пара райкастов в секунду - это слишком дохуя


лол
#370 #164666
>>164644
для обычных объектов можешь просто смотреть что там за материал, для террэйна хуй даже знает. можешь смотреть координату игрока на террэйне и смотреть какой индекс сплат-мапа там преобладает, есть ли, или нет там трава.
#371 #164668
>>164666
А если у меня ДВАДЕ
229 Кб, 1167x767
#372 #164669
>>164665
и правда лол. пара рэйкастов в секунду наверно вот расплавит компьюторы.
у меня, например, мешанина из вертексов переводится в карту высот просто рэйкастами. этак 1к * 1к. секунды три может пека и думает.

о ужас страшно представить как же новый гуи определяет куда тычут курсором?

>>164668
а хуй тогда знает как. я двадэ не смотрел.
#373 #164678
>>164669

>у меня, например, мешанина из вертексов переводится в карту высот просто рэйкастами.


Так написал будто гордишься тем что ты уебок.
139 Кб, 1366x768
#374 #164680
Вот у меня есть переменная, PlayerMoney, как мне вывести её значение в, предположим, левом верхнем углу экрана?
#375 #164683
>>164680
Тащишь мышью Гуй Текст в левый верхний угол, в скрипте создаешь переменную public Text text, перетаскиваешь мышью этот текст на созданную переменную. при изменении значений playerMoney делаешь text.text = playerMoney
#376 #164684
>>164683
так лучше не делать.
#377 #164685
лучше натаскать мышкой нормальный гуй в редакторе и добавить на него скрипт обновления.
#378 #164687
>>164678
сам уёбок! сам!

>>164680
ты хочешь новый, или старый гуи?
#379 #164689
Как же приятно видеть боль копателе-детей. А дебил-разработчик даже не позаботился о страничке, которая бы перенаправляла игроков в другой браузер, хотя об этом предупреждали ещё в прошлом году. Воистину необучаемый.
#380 #164714
Псс, посоны, дайте наводочку почему может быть так:
В Update пишу

Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit2D hit = Physics2D.Raycast(ray.origin, ray.direction);
if(hit != null)
{
\tDebug.Log(hit.collider.name);
}

И он у меня выводит постоянно "NullReferenceException: Object reference not set to an instance of an object"

Ведь проверочка на отсутствие объекта установлена. Чому же так может быть?
#381 #164715
>>164714
Лол блядь, написал и понял в чём обосрался - нужно проверять hit.collider а не прсото hit.

Всем спасибо!
#382 #164726
>>164714

>hit != null


Вдогонку, RaycastHit2D это структура т она всегда имеет значение, так что проверять её на нулл - долбоебизм. Рад что нашел проблему сам. Добра.
#383 #164741
>>164689
Лол, а кстати - что теперь будет? Только хром ВЗБУНТОВАЛСЯ против юнити или все браузеры нахуй его шлют? И если все, то что предпринимает совет директоров юньки? Делают ставку на WebGL ? Но он же сейчас выглядит совсем монструозно - сраная сценка с кубиком под 100 метров + низкая производительность. Планируется исправить это дерьмо?
#384 #164742
>>164741
Да вообще всем похуй. Кому нужен юнити в вебе? Онлайн-параша отвалится, ну и слава богу. Я бы все выпилил нахуй, и флеш и вебгл. Меньше дерьма в интернете было-бы
#385 #164747
>>164665
Я исхожу из того, что чем меньше - тем лучше. Ведь ещё есть куча других задач, на которые расходуются ресурсы. Делай как хочешь, а по-моему, дохуя.

>>164684
Это же, вроде, православный новый гуй, что тебе не нравится?

>>164741
Четыре блядь года все знали, что старый апи вот-вот отвалится. Всем было похуй. Апи отвалился. Всем по-прежнему похуй. В каком-то ещё браузере, что-то там про подгорелую лису, тоже хотят отказаться от этого апи. Тем более, никто не мешает внезапно, заюзать новый апи в жабе или юнити - давалось 4 года на это и гугл ждал, пока процент использующих плагины с этим апи станет ниже 30% и только тогда выпилил его нахуй. Похуй всем, было есть и будет. Я вообще хром не обновлял пока - но мне похуй, флеш выключен, юнити выключен, джава выключена.
#386 #164751
>>164742
>>164747
Ну хуууй знает. Теперь не получится всякие прототипчики быстро показывать - нужно устанавливать билды, а это нахуй никому не нужно. На том же самом gamejolt довольно много приличных игр на юньке было. И что же теперь? Скачивать и ставить?
#387 #164752
>>164751
Ну ладно, пока я добрый, юзай флаги. chrome://flags/#enable-npapi
Лол, но учти, в сентябре выпилят и это. Ставка на самом деле делается на хтмл5, хотя у него производительность - просто пизда. Ну и похоже, что адоб отстегнул монету - флеш-то не помер.
#388 #164755
>>164751
есть рабочий билд webgl. что еще нужно?

>gamejolt довольно много приличных игр на юньке было


приличных игр онлайн нет. их на десктопе-то мало, а в онлайне их нет вообще.
#389 #164757
>>164752
Спасибо, няша

>флеш-то не помер


Ох лол - представляю как бы сильно рвались у всех жопы. Даже не представляю что будет если кто-то откажется от флеша резко и прямо в ближайшее время - у юзеров, сайтодержателей, банеро-фрилансеров КРИЗИС наступит.
#391 #164781
>>164776
Если вы не поняли о чем речь, то в юнити при удалении объекта (Destroy) он на самом никуда не девается, а просто возвращает фальшивый null. И это приводит к фейлу если использовать не юнитивские объекты.
#392 #164783
>>164781

>он на самом никуда не девается


то есть если у вас где-то остались ссылки на него
#393 #164806
>>164781
Где там вообще речь про Destroy?
#394 #164818
>>164776
Читал уже как-то о такой проблеме в контексте "подтекания памяти".
Вот здесь и просто дестрой описано
http://blogs.unity3d.com/2014/05/16/custom-operator-should-we-keep-it/
Хуй знает, как лучше дестроить объекты, чтобы они реально уничтожались.
#395 #164819
>>164806
Там может и нигде. Это я столкнулся с такой проблемой. Хранил ссылки на объекты в System.Object.

>>164818

>Хуй знает, как лучше дестроить объекты, чтобы они реально уничтожались.


if (myObject == null) myObject = null;

>null check was more expensive than expected, and was the cause of not seeing any speed benefit from the caching


пидоры рукожопые. так и не понял зачем они вообще эту хуиту использовали.
#396 #164828
>>164819

>пидоры рукожопые


Я так понял, что вся проблема в интеграции шарпа в крестоёбский код.
#397 #164829
Где можно посмотреть исходники шейдеров?
Ну или мне просто нужен шейдер для 2D, который бы работал с sortingOrder. А то спрайтовому нельзя назначить текстуру, а другим на sortingOrder плевать.
#398 #164834
>>164829
http://unity3d.com/ru/get-unity/download/archive
Вот тут можно скачать встроенные шейдеры. Если не переназвать шейдер и кинуть в ассеты, то он заменит стандартный.
#399 #164858
>>164818
По твоей же ссылке сказано, что объекты реально уничтожаются. Обертки только остаются, но они места занимают чуть меньше чем нихуя. Высосали проблему из пальца.
#400 #164859
>>164430
Блядство натуральное. Хотел разбить сцену на несколько сцен и грузить их в рантайме при необходимости, а ненужное выгружать. На самом деле LoadLevelAdditiveAsync блокирует нахуй основной игровой поток и порождает фризы, то есть не асинхронная операция и в справке пиздёж. Нагуглил на форуме десяток подобных вопросов, от которых юнитеки тупо отморозились.
52 Кб, 960x719
#401 #164884
Пиздец, нет, меня это заебало. Ищу кодера, который поможет с интерфейсом. У меня нихуя не получается.
#402 #164887
>>164884
Это потому что ты даун.
#403 #164888
Могу сделать интерфейс за половину прибыли
#404 #164889
>>164884
чего там у тебя случилось, няша?
#405 #164893
Многие новички заблуждаются насчет программирования интерфейсов. На самом деле программирование интерфейсов - это целая наука. Запрограммировать хороший интерфейс не проще чем сделать хорошую игру. Вот как!
51 Кб, 604x403
#406 #164896
>>164889

Я вот этот кун >>164460 которому всё объяснили, но у меня все равно нихуя не получается, и я каждый раз сажусь и психую нахуй, от того что у меня ничего не получается.

>>164893

Я и не говорил что считаю это чем-то простым, просто столкнулся с суровой реальностью - я слишком тупой чтобы это сделать.

>>164888

>половину прибыли



Которой нет.
#407 #164899
>>164896
а что сделал и что хотел сделать? как хотел сделать и как сделал?
#408 #164901
>>164899

Хотел сделать классический Tower Defense. Вот список нерешенных задач:

1. Выводить деньги игрока в левом верхнем углу экрана.
2. При клике на специальный объект на игровом поле над объектом появляется кнопка с предложением разблокировать объект за X денег.
3. При клике на разблокированный объект появляются две иконки с башнями, одну из которых можно построить на этой платформе.
4. Механика башни, пассивно замедляющей и атакующей врагов на расстоянии X.
5. Механика башни, атакующей только один класс врагов (летающие).

Собственно, есть готовая карта, с модельками и иконками, есть модельки башен, есть логика монстров (идти до базы игрока и получать урон) и простая логика башни (найди таргет - стреляй). Монстры идут по пути, и при столкновении с базой игрока уничтожатся.
#409 #164903
>>164901
Могу сделать за половину прибыли
#410 #164904
>>164903

Прибыль составляет 0 рублей, так что пили свои контакты, с радостью поделюсь.
#411 #164905
>>164904
Прибыль за все время
#412 #164906
>>164905

С РАДОСТЬЮ ПОДЕЛЮСЬ!
#413 #164915
>>164901
Все вопросы решаются за полчаса гуглинга. Сириусли. Тем более, тебе уже писали, как вывести деньги. Добавил в сцену канвас, добавил на канвас элемент "текст", якоря в центр экрана или растянул по углам. Скриптом меняешь значение текста.
#415 #164946
>>164906

>С РАДОСТЬЮ ПОДЕЛЮСЬ!


хе-хе! Смотри же, не обмани!

Рассказывают как вести деньги:
1. создаешь Canvas,
2. нажимаешь правой кнопкой мышки - create empty,
3. называешь его MoyGUI
4. нажимаешь на новом объекте правой кнопкой мышки - UI - create text - называешь его MoiDenezhki.
5. Выбираешь шрифт, цвет, перемещаешь куда надо.
6. Снова выбираешь MoyGUI - Add Component - New Script.
7. добавляешь using UnityEngine.UI;
8. пишешь 2 переменные: Text moiDenezhki и GlobalVars moiPeremennye.
9. в Start() пишешь: moiDenezhki = transform.Find("MoiDenezhki").GetComponent<Text>(); moiPeremennye = FindObjectOfType<GlobalVars>();
10. в Update() пишешь: moiDenezhki.text = moiPeremennye.PlayerMoney.ToString();
11. PROFIT
#416 #164947
>>164946
вместо пункта 9 можешь просто объявить переменные как public и перетащить в них текст и объект на котором висит твой GlobalVars
#417 #164948
>>164941
на, ссук, сойдет тебе как пример использования гуи?
http://rghost.ru/89mlFyxqz
#418 #164949
>>164941
Ты забыл про
using UnityEngine.UI;
Ну и, как пишет юнька, задай "Текст".
#419 #164960
Имеет смысл заморачиваться с пулами объектов если объектов не создается много? Например, просто использовать AudioSource.PlayClipAtPoint, который создает и удаляет AudioSource'ы, или делать пул объектов?
#420 #164961
>>164960
Зависит от частоты создания/уничтожения. Если это происходит не чаще раза-двух в секунду, то можно плюнуть на пулы.
#421 #164963
Сап, анон! Хочу сделать игру, в которой система передвижения/атаки будет похожа на алиен шутер, то есть перемещение идет по двум осям, при помощи WASD, а стрельба/скиллы/прочее вылетает в сторону курсора. Собственно вопрос - как такую штуку замутить? Графика 3d, понимаю что надо будет использовать Animator, но я практически с ним не работал. Даже не представляю пока, какие анимации мне нужны, и в каком направлении капать.
#422 #164966
В юнити ещё фокус в том, что разная ёбань так или иначе кешируется. Попробуйте сделать две кнопки, по клику первой кнопки префаб инстансировать, по второй - уничтожать. На первом клике будет лаг, микрофриз при первом инстансировании. Дальше этот префаб уже подгружен в память и при следующих инстансированиях фриза не будет. Я не говорю, что следует полагаться полностью на эти механизмы учитывая, что там может работать кеш на уровне ос или жестяка, но и совать пулы объектов на каждое попёрдывание - избыточно слегка.
#423 #164969
>>164963
Во-первых, возьми 2д, так как с 3д ты обосрёшься, инфа 1488%.
Во-вторых, посмотри туториалы по юнити, аниматору, скриптингу. А ещё лучше, брось юнити и подрочи C++ годик-другой, иначе так и будешь задавать глупые вопросы в стиле «чуваки, как сделать перемещение wasd».
#424 #164971
>>164969
Я здраво оценил плюсы и минусы 2д и 3д, и выбрал 3д. Я хорошо знаю юнити, но именно с аниматором не работал, поэтому спрашиваю, по какой системе это реализовывается.
#425 #164972
>>164966
Тут проблема в том, что каждый раз когда создается объект - под него выделяется память, и когда память кончается, то запускается юнитевский garbage collector, который, как пишут в интерентах, является полной хуитой и тормозит игорь.
#426 #164977
>>164972
Такими историями только юнитидетей и пугать.
4 Кб, 530x204
Велосипеды #427 #164990
Накатал пару функций для выбора N случайных элементов из списка без повторов.

http://pastebin.com/BAAyteiq

Рейтми. Может можно проще?
#428 #164994
>>164990

>public static


Первая строчка кода, а уже ошибка. Потом ещё и вложенные циклы. Ты совсем ебанут, парень. Выкидывай рандомное число от 0 до длины списка, потом проверяй, нет ли уже этого значения в выборке. Ещё лучше - выброси нахуй списки, у них хуёво с производительностью, используй православные массивы.
#429 #165003
>>164994
Какая ошибка? Это выдраны функции. Без внешнего класса код не скомпилится.

>Выкидывай рандомное число от 0 до длины списка, потом проверяй, нет ли уже этого значения в выборке.


Так и при выборе 17 из 20 сколько в среднем раз надо рольнуть рандом(0 20) и проверить ранее составленый список на повторы?

Вот на пике выше приведены два самых неудобных юз кейса для каждого типа выборки. Версия с исключениями оче ничего, портит все изначальное копирование всех элементов в новый список.

Мне кажется с вероятностью быстрее работает.
Померил. Версия с рандомом ~= 0.8 х версии с включениями. Подводный камень, рандом для типов значений не может в выбору одинаковых элементов по разным индексам.

>Потом ещё и вложенные циклы.


Недобор без внешнего вайла составлял около 10% от нужного числа элементов. Это костыль.

>Ещё лучше - выброси нахуй списки, у них хуёво с производительностью, используй православные массивы.


Нет, мне не подходит, нужна динамическая длина, при ней массив вырождается в велосипедный список.
#430 #165005
>>165003

>Какая ошибка


Первое правило статик переменных. Если ты используешь статик - ты что-то делаешь неправильно.

>Так и при выборе 17 из 20 сколько в среднем раз надо рольнуть рандом(0 20) и проверить ранее составленый список на повторы?


Очевидно, что нужно 17 раз рольнуть рандом или написать функцию, которая тебе даст сразу список из 17 чисел.
Навскидку, ты можешь использовать https://msdn.microsoft.com/ru-ru/library/system.random.nextbytes(v=vs.110).aspx
А каждый объект в списке будет иметь флаг "чекед". Так мы избавляемся многократной генерации рандомных значений, от многократных проверок на повторение каждый раз тупо ставим "чекед", похуй, если уже чекед. Но тянем дохуя ненужной хуиты, лол.
#431 #165010
>>164901
Учись по видосам, по мануалу, родной. Сириусли, интерфейс - это как раз то, что занимает большую часть разработки, и то, по чему тебя будут судить игроки. Охуенная игровая механика в хуевом интерфейсе = хуевая игра.
22 Кб, 240x270
16 Кб, 222x237
78 Кб, 223x455
#432 #165011
Мужики. Есть панель с вертикальным лэйаутом, в этой панели еще две панели (может быть и больше), и в каждой из этих дочерных панелей лежит текст.
Нужно сделать так, чтобы высота дочерних панелей зависела от количества текста, который вложен в них, при этом самая главная панель не должна сжимать вложенные панельки.
Как это запилить?
#433 #165012
>>165005

>NextBytes


Былобы охуеyно если бы можно было сгенерить n установленых бит в N заданых байт и использовать это как масrу для исходного листа. А так это ничем не отличается от простой проверrb на вхождение. Пичалька.

>Если ты используешь статик - ты что-то делаешь неправильно.


Лол, да ты фонатик. Это вспомогательная функция, она не хранит состояния. Их там целый класс таких красивых(ты еще со строками не идел кашмарца). Оче удобно. Рикоминдую.

Кстате на пастбине два злобных бага в первых ифах.
правильно
if (NeedSelect >= SomeList.Count) { return new List<T>(SomeList); }
if (NeedSelect <= 0) { return new List<T>(); }
#434 #165013
>>165011

>Мужики.


Блж, мы тут дети, а ты пидофил, лол.

Самое очевидное узнать высоту шрифта, количество строк, а потом сделать что типа:
Panel.Height = Font.Height StringCount;
не сижу в юните*
#435 #165015
>>164990
Зачем ты принес сюда это говно?

>>165011
Content Size Fitter
#436 #165016
>>165012
С удаффкома к нам?
#437 #165017
>>165005

>Первое правило статик переменных. Если ты используешь статик - ты что-то делаешь неправильно.



Мда, а то, то геймдев имеет мало общего с прочим говнокодом тебя походу совсем не волнует. Статика плоха по той же причине, по которой не стоит широко пользоваться синглтонами - хуево тестировать. А вообще лепить игру надо так, как будет удобно конкретно тебе, разрабу.
мимосеньор-150к-месяц
83 Кб, 250x252
72 Кб, 283x218
#438 #165018
>>165015

> Content Size Fitter


А как заставить дочернюю панельку не вылазить за верхний край главной панельки? Ну или наоборот, не вылазить за нижний край, а вылазить только за верхний.
#439 #165021
>>165012
Ну, мой подход позволит свернуть твою портянку в десять строк кода. Если не нравится - хуярь по-своему.

>>165017

>Проявил отсутствие навыков


>Подписался сеньором


А это уже входит в традиции гд.
119 Кб, 321x323
#440 #165022
>>165018
Хотя этот Content Size Fitter тоже не ок, ведь когда набирается несколько панелек, то получается такое
#441 #165023
>>165018
в смысле?
добавляешь на самую верхнюю панель vertical layout, content size fitter, выбираешь preferred size, на дочерние добавляешь vertical layou
5 Кб, 326x408
#442 #165024
>>165022
Просто у тебя руки из жопы
#443 #165025
Что за люди. Даже не могут элементарный мануал на оф. сайте прочитать про компоненты движка.
45 Кб, 242x329
21 Кб, 243x274
#444 #165026
>>165024
А чу оно сдвигает все вложенные панельки вверх и вниз?
#445 #165027
>>165021
Пошел нахуй.
мимосамыйпервыйсеньер

А вообще вы спорите о хуйне у которой есть решение. В Кормене, например.
#446 #165028
>>165026

>It’s worth keeping in mind that when a Rect Transform is resized - whether by a Content Size Fitter or something else - the resizing is around the pivot. This means that the direction of the resizing can be controlled using the pivot.

#447 #165029
>>165028
Ну я вроде дергаланусэтот пивод сразу же, но нифига не произошло, мб не тот пивот дергал, лол.
#448 #165030
>>165029
О, терь все збс, дернул нужный пивот, лол.
#449 #165031
>>165021

>Проявил отсутствие навыков



А как я за 1 пост проявил их отсутствие? Ты не со мной до этого беседу вел, если что. Ты меня прямо аж заинтриговал.
180 Кб, 1208x805
#450 #165032
Джве проблемы.

1. Меш коллайдеры без конвекса не работают вообще. Даже сетка не отображается. Что за хуйня?

2. Тот же меш коллайдер, с рижидбоди и залоченным вращением. Вибрирует на террейне. Если вращение не блокировать, то лежит спокойно. Если залочить любую ось - начинает вибрировать. Даже на плоском.

Юзаю юнити 5.
2890 Кб, Webm
#451 #165036
>>165015

>Зачем ты принес сюда это говно?

#452 #165037
А вы знали, что если в префабе в качестве префаба указать самого себя и вызвать Instantiate(), то клонируется не префаб, а сам этот уже инстансированый объект?
#453 #165038
Пришлось сделать копию префаба и указать уже ее.
#454 #165044
>>165005

>Первое правило статик переменных. Если ты используешь статик - ты что-то делаешь неправильно.


Поржал с эксперта. Куда по твоему следует отнести все функции из класса Mathf?
#455 #165045
>>165027
Мало тебя обоссали, что ты опять вылез.

>>165044
Так они рид онли. Хоть один ИТТ пидор со статик переменными их рид онли делает? Плюс, в треде уже выше было, что юнитеки иногда поступают, как жопорукие пидорасы и их уж точно в пример приводить не стоит. Там же дохерища старого легаси кода, который по признанию самих юнитеков "лукс одд". Почитайте хоть о возможных косяках со статик переменными, сеньёры и сеньёриты, раз уж реального опыта нет нихуя.
500 Кб, 405x228
sage #456 #165046
>>165044
Встроить в язык, очевидно же. А ещё лучше вообще выпилить нахуй, чтобы было 3-4 уёбищнейших любительских либы. Да здравствует C++-style, аллах акбар.
#457 #165050
>>165045

>функции


>так они рид онли


поехавший раз...

>думает, что в вопросе статик/не статик рид онли играет какую-то роль


поехавший два...

>юнитеки иногда поступают, как жопорукие пидорасы


http://docs.oracle.com/javase/7/docs/api/java/lang/Math.html
https://msdn.microsoft.com/ru-ru/library/system.math(v=vs.110).aspx
поехавший три...

жопа дибила гори!
#458 #165052
Давно хотел спросить, какие есть пути для неосиляторов рисования? Вообще не могу в графику. Что предпринять? Кубы, как в Майнкрафте? В стиле инди-говна с простыми фигурами? Плагиат? Но это совсем зашквар.
#459 #165057
>>165037
>>165038
Ебать даун. Нахуй тебе инстанциировать префаб из самого себя? Нахуй тебе дали Resources.Load? Копию он сделал, охуеть просто. Решение уровня гд.
#460 #165058
>>165057
инстанс самого себя можно и не только из него делать. например схватил ты предмет, дестроишь его, но вместо ссылки на префаб для дальнейшего инстанциирования у тебя остается ссылка на дестроеный обжект в сцене.
4772 Кб, 352x350
#461 #165067
Почему такое бывает, аноны?
#462 #165068
>>165052
Ищи человека, нет другого пути. Поверь, школорисовальщиков по скиллу сопоставимых с твоим школоюнитипрограммированием очень много. Зайди в тот же /pa/, создай уютный тредик, заведи фейкомыльце. Поработать вместе будет полезно вам обоим.
#463 #165069
>>165050
Мавродий.жпг. Ты очередной раз проявил ноускилл.
#464 #165071
>>165067
Джва часа ломал голову. Потом решил написать в тред и опаньки - сразу понял в чем дело.
#465 #165072
>>165067
Потому что, стреляет без упреждения. Алсо, у тебя цели движутся быстрее снарядов.
#466 #165087
>>165057
И? Почему я не могу сохранить ссылку на префаб в самом этом префабе, как это работает с другими префабами? Это баг.
#467 #165097
>>165087
Потому что даун ебаный, иерархия так работает. Если бы все ссылки на родительский объект вели к префабу, ты бы не смог в своем говноскрипте повернуть игрока. Ты бы ссылался на префаб. Пошел нахуй короче, говна кусок.

>>165058
Сам понял что спизданул?
784 Кб, 911x916
#468 #165120
Посоны, поясните за альфаканал. Я спиздил в интернетах текстурку земли. Делаю планету. Добавил две маски альфы к текстуре. Одна подсвечивает белым воду, а темным континенты, вторая наоборот. Схоронил картинку в двух экземплярах, с разными альфами. Юзаю текстуры на сферу. В обоих случаях отражают континенты, а вода не отражает. Я думал, мб чего перепутал, уже несколько раз переделывал. Результат один и тот же. Что я делаю не так?
Пикрелейтед.
#469 #165125
>>165120
Используй tga, люк.
#470 #165131
>>165125
Попробовал ТГА. Теперь спекуляр совсем игнорирует альфаканал. В смысле отражает все вообще.

В тиф-формате отражала только земля, вне зависимости от того, какая маска стоит.
#471 #165140
Посоны-посоны, кто-нибудь знает, есть ли возможность привязать, хм.. изменения РИТМА музыки к переменным? Т.е. например ребята которые сделали Audioshift - они же привязывали изменения гоночной трассы и вообще говоря расположение элементов к музыке.
И если это читает кун так или иначе связанный с разработкой своего музыкального буллет-хела для стима хотя он наверное ВОЗГОРДИЛСЯ и считает посещать gd зашкваром - как вы сделали в своей игре привязку к музыке? Тупо ручками всё подстраивали ?
42 Кб, 557x604
#472 #165143
Начинаю изучать юнити, скачал юнити 5. Так вот, почему там на сцене по дефолту небо с солнцем? Как это убрать? Как сделать, чтобы все было синее? И еще, пытаюсь через Player Settings изменить разрешение, а оно не меняется. Что делать?
Делаю все по этому туториалу
http://www.youtube.com/watch?t=398&v=e7Px2yJA6S4
69 Кб, 709x512
#474 #165158
>>165097
йеп. например смотри. в сцене префаб ссылающийся на префаб в проекте. и в проекте префаб ссылающийся сам на себя. если перенести префаб из проекта в сцену, то получаем уже префаб в сцене ссылающийся сам на себя, вместо префаба в проекте.

простое решение это сделать два префаба ссылающихся друг на друга. адекватное это сделать массив с префабами в проекте и использовать его для инстансинга геймобжектов.
#476 #165178
>>164859
Кажется, обошёл и это. Немного попилил интерфейс - новый гуй какой-то дубовый, хуеватый. Но работать с ним можно, события хорошо сделали. Назрел вопрос по поводу растительности.
Хочу травку с коллизиями с игроком. И кусты. Как я понимаю, в шейдоре коллизии получить нельзя, то есть нам нужно вешать на каждый куст коллайдер-триггер, вешать скрипт на него и скриптом передавать коллизии в шейдор? Предвижу, что скрипты не будут вешаться на кусты, расставляемые через террейн энжин. Другого способа нет?
#477 #165180
>>165178
можешь передавать в шейдер положение игрока и так шевелить.
#478 #165243
Посоны, поясните за коллизии на больших скоростях. Запилил пулемет летающему гробу. Если у пули небольшая скорость, то все норм. Но если большая, то пересечения не определяются. Пытался гуглить, но так нихуя и не понял толком. Мб кто-то знает, как это починить?
sage #479 #165246
>>165243
Удлинить хитбокс снаряда, чтобы его положение на текущем и следующем кадре перекрывалось (было без зазоров).
#480 #165247
>>165180
Сразу предвижу овердохуя проблем. Ну ладно, скорее всего, это тоже решаемо - поебусь и сделаю.

>>165243
Пуля проходит через коллайдер за время меньшее, чем тик физ движка. Это никак не исправить. Разве что к пуле прихуярить райкаст и проверять на наличии хуиты перед пулей. Сотню раз тема обсасывалась уже.
sage #481 #165248
>>165247

> Это никак не исправить.


-- >>165246
#482 #165252
>>165243
Попробуй поменять у компонента rigidbody параметр Collision Detection c Discrete на Continuous.
#483 #165253
>>165248
Глупый и бессмысленный костыль, который в 90% случаев не поможет. Разве что делать коллайдеры пули по метру, но это повлечёт другие проблемы. Честную скорость пули это запилить не поможет.

>>165252
Периодически не срабатывает, по крайней мере, в четвёрке баг этот был. Ну и по производительности бьёт. Хотя лучше, чем метровые коллайдеры.
#484 #165254
>>165253
А, ещё забыл, можно установить тик физ движка поменьше, но это, опять же, ударит по производительности.
#485 #165258
>>165253

>Периодически не срабатывает


Пруфы

>Ну и по производительности бьёт


Ты так говоришь будто есть альтернативы гораздо лучше. В некоторых физ движках такой режим обнаружения коллизий включается параметром isBullet, что как бы намекает.
sage #486 #165260
>>165253

> Глупый и бессмысленный костыль, который в 90% случаев не поможет.


У тебя по геометрии трояк?

> Разве что делать коллайдеры пули по метру


По расстоянию полёта пули за такт.

> но это повлечёт другие проблемы.


Максимум - недорисовку трека пули на один кадр (если треки пуль вообще рисуются), т.к. в следующем пора рисовать взрыв (или другой эффект попадания). Если к этому эффекту пририсовать недостающий кусочек трека, то проблемы не будет даже на покадровом просмотре.

> Честную скорость пули это запилить не поможет.


Поможет.
#487 #165264
>>165253

>Честную скорость пули это запилить не поможет


Хочу чтоб пуля честно летела! Каждую пулю из очереди чтоб видно было! И чтоб у каждой меш-коллайдер! И чтоб сопротивление воздуха и гравитацию можно минять! И чтоб три тома баллистики нужно было изучить чтобы попасть в цель! Чтоб влажность воздуха влияла на скорость! Пуля будет главной изюминкой в игре! И чтоб у пули был параметр точность изготовления, чтоб если хуево сделали на заводе - она плохо летела! Только пуля важна, на все остальное похуй! Графон, окружения, геймплей - все в печку! Только Честная Пуля! Пу-ля, пу-ля, пу-ля!
#488 #165266
Как найти расстояние от объекта до камеры, так чтобы он полностью попадал на экран? Камера смотрит прямо на него.
#489 #165268
>>165258

>Пруфы


http://answers.unity3d.com/questions/52455/issues-with-continuous-dynamic-collision.html
Например вот. Говорю же, в четвёрке был баг, хуй знает, как в пятёрке.

>Ты так говоришь будто есть альтернативы гораздо лучше


Нет, но если он пилит на мобилки - хорошей альтернативой будет снизить скорость пули и увеличить её.

>>165260

>У тебя по геометрии трояк?


Нет, ты.

>По расстоянию полёта пули за такт.


Скорость пули старенького калаша 800 метров в секунду. Тик физ движка по дефолту - 50 раз в секунду. Итого, нам нужен коллайдер длинной 16 метров. Заебись, чё.

>Поможет.


Нет, потому что тянется триллион и один баг из-за шестнадцатиметровых пуль.

>>165264
А вдруг он пилит армаклон? Я когда-то хотел.
#490 #165270
>>165246
А как его грамотно удлинить? Я задал его сразу длинным, но в итоге он летит не продольно, а хуй пойми как. Как задать направление, что он всегда торцом вперед летел?
sage #491 #165271
>>165268

> нам нужен коллайдер длинной 16 метров


И в чём же проблема? В том, что у тебя в голове не укладывается такой размер?
sage #492 #165273
>>165270
Не знаю, я в юнити не шарю, Я тебе принцип объяснил, а детали меня уже не интересуют.
#493 #165280
>>165271
И когда же должно срабатывать столкновение? За 16 метров до цели? Или 8? Или пуля должна убивать тех, кто был позади стреляющего?
#494 #165281
Привет, девелоперы. Столкнулся с такой проблемой: как связать значения радиуса коллайдера одного объекта и размера другого объекта(плейн)?
sage #495 #165284
>>165280

> И когда же должно срабатывать столкновение?


Столкновение сработает строго тогда, когда и должно, с точностью до тика физического движка. У тебя и правда тройбан по геометрии.
#496 #165287
>>165268
Можешь попробовать так: в 5 юнити поменяли статик коллайдеры, теперь их можно двигать из скрипта без потери производительности. Собсно, вот берешь этот рельсотрон, который тут предлагают, делаешь его статиком. При стрельбе инстантиируешь рельсу по курсу оружия, а с ней должен быть скрипт, который будет двигать рельсу каждый фикседапдейт на её длинну. Если охота заморачиваться, можешь даже через Нное количество перемещений ПОНИмного её приближать к земле, имитируя влияние гравитации.
Собсно, зачем весь этот цирк? Потому что рельсотрон правильно сделаный действительно дает 100% точность схватить попадание, но обсчитывать полет рельсы физ.движком - это оверкил, когда можно же применить выше описанный способ.
Алсо, надо бы сделать и вариант с рейкастом, да замерить производительность и сравнить. Но т.к. сейчас ты, анончик, встрял в проблему, то давай и делай, а в следующем треде отпишись. А то тема дейсвтительно постоянно всплывает.
#497 #165289
>>165284
У него не по геометрии, а по юнити троебан. Нахуй я весь этот опус >>165287 сейчас писал. Ведь судя порепликам - он даже мануал по коллайдерам осилить не может.
#498 #165292
>>165280
А фокус в том, что тут чистый рандом на выходе, зависит от того, сколько времени прошло с прошлого тика. Может получиться так, что игрок прячется за стеной толщиной 15 метров, но этого мало! Её пробивает шестнадцатиметровое копьё и он всё равно погибает. Либо игрок 1 стоит за игроком 2, у игрока 1 есть бронежилет, у второго нет. И тут по ним стреляют, копьё-пуля прошивает игрока 1, но попадает в броню и ХП не отнимает. Игрок 2 погибает. Плюс баги с поперечным касанием. Ультраебанистический подход, это даже хуже червя-пидора, советовать такое может только законченный шизофреник с тройбаном по физике и колом по геометрии. А если скорость пули полторы тысячи? Для честного физона это точно не подходит.

>>165287

>Можешь попробовать так


Я не собираюсь этого делать, потому что я не анон с летающим гробом. Но имею обширный опыт работы с юнити, потому и говорю о тех или иных проблемах. Даже иногда с пруфами протухшими.

>дает 100% точность схватить попадание


Охлади трахание.

>надо бы сделать и вариант с рейкастом, да замерить производительность и сравнить


Наверняка будет быстрее райкаст, потому что там можно вообще отказаться от коллайдеров плюс рассчитывать всю траекторию в момент выстрела. В БФ4 так и делали, но через жопу. Потом в анус вставили пару костылей и оно начало работать немного получше.
#499 #165300
>>163408
NGUI -> UISprite(UIWidget) -> Anchor
#500 #165301
>>164941
Графон вроде норм у тебя. Могу помочь закодить всю хуйню. Но шоб сука если взлетит поделился, пидорас. Не взлетит - похуй. Контакты оставь.
#501 #165305
>>165292

>А фокус в том, что...// дальше идет высер человека, не читающего доки


Ты же просто не понимаешь как работает физ. движок. Разницу между Update и FixedUpdate уясни для начала, потом тут пиши, ладно? Копье прошивает, вообще охуеть. Знаток юнити, ты знаешь, что можно получать массив коллиженов? выбирать из них, кто был ближе, вот это все хоть раз делал или кукарекать сюда пришел?
#502 #165306
>>165305
Кирилл, сколько можно под себя срать? Поди подмойся.
#503 #165308
>>165305

>Разницу между Update и FixedUpdate


А там разница только в двух вещах. И ты её не знаешь.

> выбирать из них, кто был ближе


Кек. Получается так :
1.Предложил костыльный уёбищный подход - обосрали.
2. Предложил ещё более уёбищный подход, с ещё большими костылями.
А ты знаешь, что у нас нет доступа к деревьям? И вариантов узнать, кто ближе - всего три, олигофрен вроде тебя выберет первый. Это брать все ГО в сцене и брутфорсом перебирать их позиции. Второй - самый сложный. Написать свои деревья. И третий - использовать райкаст. Так почему блядь не райкастить с самого начала? Делать шестнадцатиметровые пули интересней? Надо быть анацефалом, чтобы такое предлагать, срсли. Надеюсь, ты просто очень, очень толстый. А я всё это пишу, чтобы у юнитиновичков не закралось подозрение, что пули-копья это норма и так может сделать психически здоровый человек.
#504 #165310
>>165308
Лол, копье-пуля - костыль, а пуля с лазерным дальномером - не костыль. Потому я и писал анону, чтоб делал оба варианта и смотрел, что в его случае подойдет лучше. Зачем ты тут слюной изливаешься, если оно тебе даже не надо? Это я пишу для того, чтобы юнитишкольники учились примерять все к своей ситауции, а не думали, что вешать рейкаст на быстродвигающиеся коллайдеры - это так и задумано.
#505 #165312
Дурачки, прежде чем делать 10-метровые пули и лазерные целеуказетели на них (лол), вы хотя бы collision detection на всех объектах правильно выставили?
Баги у них лол. Мы как всегда мануалы не читаем и это не мы обсираемся, это как обычно unity во всем виноват.
#506 #165314
>>165308

> И третий - использовать райкаст.


Три вопроса знатоку. Дженерик деревья юнити содержат коллайдер? Физический рейкаст срабатывает на что-либо кроме коллайдера? Ты хоть раз реализовывал то, о чем со мной тут споришь?
#508 #165328
>>165314
Я не тот знаток, с того знатока диванного сам проигрываю.

Слушай сюда, если надо сделать честную пулю, то всю жизнь делали так: у пули есть свойства PositionPrev и PositionCur. Это кэшированная позиция в прошлом кадре и позиция в текущем кадре. В текущем кадре мы хуячим либо лайнтрейс либо капсуль трейс между старой кэшированной точкой и текущей позицией. Выбираем из всего, что пересекает трейс то, что нас интересует. Сортируем квадраты расстояний от PositionPrev до каждого срабатывания трейса. Выбираем наименьшее. Бинго. Обрати внимание - расстояния можно использовать квадратичные (без извлечения корня), ибо нам важно найти минимальное, а не получить точные значения.
#509 #165332
>>165328
А что, если оба объекта пересеклись между обновлениями? Использовать встроенную функцию юнити религия не позволяет?
#510 #165334
>>165332
Никакого "между" там нет. Считаем каждый кадр. Атомарнее некуда. Встроенная функция юнити (точнее PhysX) работает точно также (или ты думаешь, что она у аллаха спрашивает, а не пересеклись ли объекты МЕЖДУ), просто орут что глючит, поэтому вот ручной велосипед.
#512 #165339
>>165336
Ты по мухам из гаусса стрелять собрался? Во всех экшонах хватает трейса предыдущая/текущая позиция чтобы детектить произвольно ебануто летящую пулю и объект уровня головы анона. По мухам стрелять - это тебе надо трейсить еще и мух, очевидно. Ну и искать точку пересечения двух отрезков (тоже есть простой алгоритм).
#513 #165342
>>165336
>>165339
Иными словами, сначала ты хотел тип детекта Bullet-Moveable, теперь по картинке ты хочешь тип детекта Bullet-Bullet. Это ваще пиздец, честно говоря. Не припомню ни одной игры, где можно пулей сбить другую пулю.
#514 #165345
>>165310
Костыль. Но более рабочий. Идеально вообще отказаться от физических пуль, хуй знает, нахуй они впились, писал уже - в том же бф4 их нет и никто не жалуется. Точнее, сначала жаловались из-за кривой реализации и запуска в продакшн без тестирования, потом пофиксили и всё играется.

>а не думали, что вешать рейкаст на быстродвигающиеся коллайдеры


Анон спросил совета, а ему посоветовали шестнадцатиметровые пули. Я понял, что это кретин пишет, а анон ещё и поверить может. По доброте и пишу.

>>165314

>у нас нет доступа к деревьям


>содержат коллайдер?


Толще ты просто не смог.

>хоть раз реализовывал


Именно так. Только без пуль шестнадцатиметровых, лол.

>>165328

> того знатока диванного сам проигрываю.


> слепошарый описал то, что было чуть выше в треде


С первого поста обосрался. Это ж уметь надо. Или ты думал что обозвал райкаст лайнтрейсом и всё, изобрёл новый метод?

>>165336
И что пиком сказать хотел? Или подсказать, как реализовать? На самом ситуация интересная, потому что коллайдер на самом деле не имеет толщины и без контунуос режима будет фейлиться такое регулярно даже на относительно низких скоростях и крупных объектах. Особенно прямоугольных. А если баг чуть выше не пофикшен, то и с континуос тоже будут фейлы регулярные.
#515 #165380
>>163082

>Но только я начинаю об этом думать, только ставлю на закачку юнити.


Когда я пишу код на юнити и игра выдаёт мне кучу ошибок, то я тоже становлюсь грустным и иду сидеть в уголке комнаты и плакать.

>Как вспоминаю сколько игорей уже сделано, сколько идей уже реализовано, ито что я хочу сделать например уже гдето было.


У меня наоборот куча годных идей, но максимум что я могу сделать - платформер без анимаций персонажей.
#516 #165394
>>165345

>описал то, что было чуть выше в треде


Ну не обижайся ты, все будет хорошо. Извини, что в твоих дерьмовых формулировках я не увидел солнцеликого ответа. И кстати, до сих пор не вижу. Видимо, плохо умею в говне ковыряться.
#518 #165419
>>165394

>Я слепошарый уёбок


Ну ладно.
#519 #165458
>>165419
Ну не обижайся, а. Ну че ты такой обидчивый, как девочка. Не обижайся, петя-петушок.
Тред утонул или удален.
Это копия, сохраненная 8 июля 2015 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
« /gd/В начало тредаВеб-версияНастройки
/a//b//mu//s//vg/Все доски