![]() |
Ответ: Фак по Юнити.
50 советов по работе с Unity (eng)
http://devmag.org.za/2012/07/12/50-t...est-practices/ Smart Unity programmers tips from ESE https://docs.google.com/document/d/1...nnE/edit?pli=1 |
Ответ: Фак по Юнити.
Не могу использовать стандартный фпс-контролер при работе с сетью. С редактора всё работает, но в скомпилированом приложении при попытке движения сыпятся
Цитата:
Что я делаю не так? |
Ответ: Фак по Юнити.
Покажи как двигаешь игрока по сети.
|
Ответ: Фак по Юнити.
Фпс-контролером и двигаю.
|
Ответ: Фак по Юнити.
Стандартный Фпс контроллер не предназначен для работы с сетью в том виде, в котором он есть. Он не передает никакой логики серверу.
|
Ответ: Фак по Юнити.
Ну я передаю координаты в OnSerializeNetworkView(), этого недостаточно? Самое интересное то, что в редакторе всё работает без ошибок.
|
Ответ: Фак по Юнити.
Достаточно. Передаешь и читаешь?
|
Ответ: Фак по Юнити.
Ага.
|
Ответ: Фак по Юнити.
Уважаемые гуру юнити, и с# в частности. Ни у кого нет желания написать краткий фак по андроиду, либо перевести яваскрипты с standart mobile assets на си-шарп и прокоментировать? Нет, перевести с явы на си-шарп я и сам могу, но хотелось бы разобраться полностью в особенностях написания приложения для смартфона. Курение мануалов даётся со скрипом. Был бы весьма признателен, да и в копилке уроков не помешало бы.
|
Ответ: Фак по Юнити.
Начал писать LOD, блин, я начинаю влюбляться в юнити, знаю 5% движка, а уже чтото получается )
Написал 3-х ступенчатый LOD, конечно дорабатывать еще надо, но не сегодня (поздновато) Сделал чтобы пользователь ложил меши сам, но косяк в том, что материалы должны быть разные. Наверное самый простой вариант это префабы ложить? И еще вопрос, как можно сделать такой же скроллер дистанций как в Про версии LOD'a ? А еще как можно достать уровень графики, ну чтобы знать fantastic она или normal..? Также, если у меня чтото сильно коряво, пишите! |
Ответ: Фак по Юнити.
1. Материал назначить renderer.sharedMaterial = myMaterial;
2. Для того чтобы написать скроллер надо писать кастомный редактор своего скрипта (компонента). 3. http://docs.unity3d.com/Documentatio...lityLevel.html |
Ответ: Фак по Юнити.
Вложений: 1
Вопрос появился, по поводу маски, но нарыл ответ, опять же спасибо тебе )
Нашел в одном ответе ты дал ссылку на шейдер маски, вот только там очень не хватает выбора основного цвета. У меня текстуры почти одинаковым цветом. Помои плиз, можно же как то палитру туда загнать, как например в диффузе, я бы сам с удовольствием сделал, но до CG мне еще очень далеко, я немного только в HLSL работал. Сам шейдер Я понимаю что там надо считать _MainTex c инспектора, но как... Нашел как пипетку вставить, _Color ("Main Color", Color) = (1,1,1,1) А вот как сделать связь не могу найти |
Ответ: Фак по Юнити.
В этом шейдере нет CG, тут чистый ShaderLab и следовательно это Fixed Function (OpenGL ES 1.1)
PHP код:
UPD: Хотя я тут вероятно ошибся... а может и будет работать, я вроде маску покрасил и с ней скомбинировал... попробуй |
Ответ: Фак по Юнити.
Вложений: 1
СПАСИБО ПАКС!!
Цитата:
Сделал две версии шейдера MaskedTexture MaskedTexture Fast Расскажу в чем разница, в втором варианте я оставил включенном Z-буффер и отключил альфа смешивание Blend SrcAlpha OneMinusSrcAlpha. На сколько я понимаю, таким образом должно работать быстрее, если нет, сообщите. Слева на рисунке фаст, разница не большая, а при использовании на большом расстоянии вообще остуствует. |
Ответ: Фак по Юнити.
Там вероятно я недописал во второй SetTexture
PHP код:
PHP код:
|
Ответ: Фак по Юнити.
Спасибо пакс, да как я сделал тоже норм )
Вот только сейчас заметил большой косяк PHP код:
В коде я просто беру ссылку меша префаба и ложу в ссылку ГеймОбжекта, и то же самое с материалом. Их как то надо копировать? А старые компоненты надо зачищать? |
Ответ: Фак по Юнити.
Свойство mesh и material создают новые экземпляры объектов, которые можно менять в рантайме, но обычно это делают над объектами сцены. Для получения ресурсов без ущерба для префаба используй следующее:
PHP код:
|
Ответ: Фак по Юнити.
Блин, Паск, ну ты точно Сэнсей!!! ))
|
Ответ: Фак по Юнити.
Разобрался, получается что, transfom.position.y может только хранить значение, но ложить туда нельзя?? И что изменить y, на нужное значение самый простое решение transform.position = newVector3(transform.position.x, 10 , transform.position.z); ?? :4to: |
Ответ: Фак по Юнити.
Код:
var position= transform.position; |
Ответ: Фак по Юнити.
Помогите оптимально реализовать задачу.
Есть объект со скриптом, который со временем будет создавать такие же объекты с таким же скриптом. Как лучше задавать значения в новом скрипте? Т.е. у меня будет допустим один объект трава, второй объект дерево. И они будут размножаться. Мой вариант такой, при создании нового объекта, в новый скрипт передавать только один параметр (допустим plantType). А при инициализации скрипта делать выборку по plantType. Мой вариант PHP код:
Есть предложения? |
Ответ: Фак по Юнити.
Что-то вроде?
PHP код:
|
Ответ: Фак по Юнити.
Посидел, помозговал и решил сделать отдельный скрипт, хранящий всю нужную инфу, чтобы не таскать её за каждым созданным скриптом.
Получилось так: Скрипт где хранятся переменные А тут в другом скрипте достаю данные из первого: Единственное что у меня не получилось, это узнать сколько в enum хранится констант.. |
Ответ: Фак по Юнити.
Enum.GetNames(typeof(eType)).Length
|
Ответ: Фак по Юнити.
Нету такого,даже справка ничего не выдала
|
Ответ: Фак по Юнити.
PHP код:
|
Ответ: Фак по Юнити.
Цитата:
|
Ответ: Фак по Юнити.
Вложений: 1
Усёк, спасибо! )
Ребят, помогите, вроде ничего особенного не делал, а проект нагнулся походу. Добавлял меши, префабы, к ним цеплял скрипты. Ошибок не показывает а при запуске пишет исправьте перед запуском. Потом нажал Build and Run и тут у меня высыпалось такое (рисунок в аттаче) Пробовал удалить добавленные префабы, не помогло.. Пиз*ец, удалил скрипты, проверил - ошибка, закрыл без сохранения, а скрипты всё равно удалились, и ошибка осталась :"( Нашёл скрипты в Saves/Data/Managed/скрипты. Но они какието другие, в моно ничего по ним не показывает, можно както восстановить??? |
Ответ: Фак по Юнити.
Интересная ошибка, никогда такую не видел...
|
Ответ: Фак по Юнити.
Вложений: 1
Капец, видимо косяк из-за того что с работы собирался, в спящий режим отправил с включённой прогой.
Скрипты то можно както восстановить из того что на скрине?? |
Ответ: Фак по Юнити.
У меня была такая ошибка пару раз. К сожалению, я не нашёл способа восстановить скрипты/префабы.
|
Ответ: Фак по Юнити.
Цитата:
|
Ответ: Фак по Юнити.
А каким образом повредились скрипты? они же все в папке Assets должны быть? И зачем ты сделал билд в папку ассетов? Там же все dll, которые подключатся к проекту...
|
Ответ: Фак по Юнити.
Это стандартный путь где хранятся сохраненные сцены, туда и билды он пихает. А скрипты не повредились.
Цитата:
|
Ответ: Фак по Юнити.
Ребят помогите разобраться. Начал осваивать корутины, но в моём примере ниже, корутина выполняется только один раз. т.е. FPSCount = 1, и корутина останавливается.
Я скорее всего смысл их не полностью знаю. Я думал что корутина работает постоянно, пока её не остановишь или return не сделаешь. |
Ответ: Фак по Юнити.
Опять же нарыл пример Пакса )
Разобрался немного, но суть всё равно до конца не понимаю... Но работает :-) |
Ответ: Фак по Юнити.
Удали билд из папки ассетов, там их не должно быть. Никогда не делай билд в папку ассетов, в папку преокта можно, но не в Assets.
Корутина это функция, выполнение которой может прерываться на какое-то время, например до следующего кадра (yield return null), на определенное время (yield return new WaitForSeconds(0.1f)), до конца кадра (yield return new WaitForEndOfFrame()), до конца скачивания файла (смотри пример в классе WWW) и т.д. |
Ответ: Фак по Юнити.
Хорошо что рано косяк произошел, теперь чаще буду экспортировать свои ассеты.
Ребят, подскажите. Мне надо обратиться к текстуре2д. Но когда я пытаюсь считать пиксель, компилятор говорит что текстура не читабельна (not readable), говорит изменить настройки импорта (умный собака ) ). Не нашёл такую настройку. Подскажите. |
Ответ: Фак по Юнити.
Нашёл!!
Чтобы можно было манипулировать текстурой, надо выбрать текстуру, Texture Type выбрать Advanced, и поставить галочку Read/Write Enable. |
Ответ: Фак по Юнити.
В импорте 3д моделей есть ньюанс, в 3д максе вертикальная ось Z, в юнити Y. При импорте модель расположена нормально (вертикально), НО при локальной трансформации вместо Y меняется Z.
К примеру: PHP код:
Может как то можно глобально менять масштаб? я не нашел |
Ответ: Фак по Юнити.
Цитата:
Почитай тут: http://gamecreatingcommunity.ru/forum/59-5419-1 |
Ответ: Фак по Юнити.
Там написано просто повернуть пивот по оси Х на 90 градусов. Но таким образом ось Z будет направлена в противоположную сторону.
Ну да ладно, попробую сначала.. |
Ответ: Фак по Юнити.
Цитата:
|
Ответ: Фак по Юнити.
Ты не прав, при экспорте твоя модель будет смотреть на тебя, а должна от тебя.
|
Ответ: Фак по Юнити.
А результат в Unity? И еще не видно в каких координатах ты работал в 3ds max...
|
Ответ: Фак по Юнити.
Вложений: 3
Пакс, оси в максе видно, они мелкие слева снизу.
Проверил локальную трансформацию объекта в юнити, всё работает правильно! Вот правильный вариант 1) Повернуть пивот по оси Х на 90 градусов. (Affect Pivot Only) 2) Повернуть модель по оси Z на 180 градусов. (Affect Object Only) |
Ответ: Фак по Юнити.
Вложений: 1
Каждый загруженный меш автоматически создает свой материал, как можно обратиться в скрипте к материалу в загруженном меше.
PHP код:
Я вот про этот материал, в аттаче |
Ответ: Фак по Юнити.
Меш не связан с материалом, материал определяет рендерер при визуализации меша который импортируется на тот же объект (gameObject.GetComponent<Renderer>.material)
У тебя там MeshRenderer и у него есть свиток Materials |
Ответ: Фак по Юнити.
ЕССС! Работает! СПАСИБО ПАКС!!!
Только для обращения надо использовать MeshRenderer.sharedMaterials[0], чтобы материал с MeshRenderer не слетел. PS. Твоя школа. :cool: :-D |
Ответ: Фак по Юнити.
Пакс, помнишь ты объяснил про MeshRenderer, с материалом разобрались. А как сам меш достать? не получается )
PHP код:
|
Ответ: Фак по Юнити.
Второй вариант должен работать...
|
Ответ: Фак по Юнити.
Извиняюсь, я сначала в скрипте написал Mesh, объявил префабы, потом заменил Mesh на MeshRenderer, а переменные не переобъявил. Компиль был прав ) |
Ответ: Фак по Юнити.
Подскажите пожалуйста, мне нужен совет в реализации.
Есть динамически появляющиеся объекты, и мне надо чтобы игрок при взаимодействии с ними получал различные ресурсы, при условии что два разных дерева могут иметь один ресурс (древесина), и несколько ресурсов в одном объекте (например дерево имеет древесину и листву). Помогите как лучше реализовать, своё имя, свой тэг, либо к объекту крепить скрипт с информацией о ресурсах. |
Ответ: Фак по Юнити.
Как-то так:
PHP код:
|
Ответ: Фак по Юнити.
Спасибо Пакс! Было много вопросов, но решил на практике проверить и почти все отпали )
Получается System.Serializable задаётся для класса, и позволяет задавать значения в инспекторе для массивов этого класса? И еще вопрос появился, для различных действий, с разными объектами такой же методой лучше пользоваться? Разъясню, что я хочу сделать, допустим есть трава - её можно сорвать или срезать ножом, дерево - можно потрясти или срубить. Но и у разных деревьях должны быть разные характеристики, в зависимости от типа и размера. Как думаете, подойдёт такой метод, допустим при нажатии кнопки, если у калайднутого объекта есть скрипт с набором действий, то проверять какое из существующих в нём действий выполнить.? |
Ответ: Фак по Юнити.
Цитата:
Цитата:
1. базовый скрипт с виртуальным(или абстрактным) методом действия 2. скрипты наследники с выполнением нужного действия в этом методе (override) 3. вешаешь ан каждый объект нужные скрипты 4. при столкновении получаешь базовый скрипт с объекта и вызываешь этот метод, который у всех будет работать по разному, но вызываться одинаково это называется полиморфизм |
Ответ: Фак по Юнити.
Спасибо Пакс, но мне пока что override не о чем не говорит, кроме перевод слова перезапись...
Рано походу мне до такого.. |
Ответ: Фак по Юнити.
Думаю это прояснит ситуацию немного: http://msdn.microsoft.com/ru-ru/library/ms173152.aspx
Ну и про наследование для общего развития http://msdn.microsoft.com/ru-ru/library/ms173149.aspx |
Ответ: Фак по Юнити.
Можно ли проверить, есть ли какой-либо геймобжект в определенной точке пространства? Если да, то пните меня в нужном направлении, пожалуйста.
|
Ответ: Фак по Юнити.
Если только так
Код:
GameObject[] goCollection = FindObjectsOfType(typeof(GameObject)) as GameObjectt[]; |
Ответ: Фак по Юнити.
Цитата:
Цитата:
|
Ответ: Фак по Юнити.
Подскажите правильно ли я сделал..
У меня есть трава, которая растет пучками и с которым мне надо взаимодействовать по наведению на нее. Решил использовать луч от центра экрана, но чтобы "колайднуть" траву, ей приходится создавать коллайдер, а чтобы игрок не врезался в траву - сделал её триггером. Но чтото мне подсказывает что при условии что травы будет пару сотен к примеру - ничего хорошего для производительности это не приведёт - ведь проверки нахождения в триггере будут каждый кадр проверять на каждом пучке. Прав ли я? И что лучше сделать? |
Ответ: Фак по Юнити.
Есть слои и в настройках физики можно настраивать столкновение между слоями.
http://docs.unity3d.com/Documentatio...csManager.html Стрелять по слою травы можно используя маску с нужным слоем. |
Ответ: Фак по Юнити.
Спасибо Пакс, помог! Только у меня луч не хочет находить конкретный слой.
Распишу: создал новый слой "JustRayCast" в первой пользовательской ячейке (User Layer 8 ) , выбрал на паре примитивов этот слой, на других оставил Default. Когда начал кастить именно этот слой - ничего не выбирает, когда Default - все выбирает. Хотя lay = 8.. Матрицу коллизий пока не трогал PHP код:
|
Часовой пояс GMT +4, время: 14:22. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot