Вопрос-[ответ] по Unity
| |
QWER56 | Дата: Понедельник, 09 Августа 2010, 10:58 | Сообщение # 1 |
старожил
Сейчас нет на сайте
| Вопрос-[Ответ] по Unity3d
База скриптов Unity3d Курс Уроков по Unity 3D от Alcatraz
ConsMark - поисковик по интернет магазинам.
Сообщение отредактировал QWER56 - Вторник, 26 Июля 2011, 20:54 |
|
| |
GantZ_Yaka | Дата: Четверг, 24 Июля 2014, 20:35 | Сообщение # 6341 |
почетный гость
Сейчас нет на сайте
| Fr0sT, из всех систем видимости, что я тестил (в т.ч. и встроенный culling в unity), мне больше всего понравилась M2H Culling (она free и писалась довольно давно, но работает славно). Там ничего мудреного нет, в отличие от конкурентов, она не пускает лучи из камеры, не нужно на объекты вешать всякие теги, слои, коллайдеры. Просто расставляешь в сцене области видимости (area или кубики) и указываешь в выпадающих списках в какой области какие области видеть, а какие не видеть, и все. Дальше скрипты все сделают сами. Для расчета нахождения игрока и объектов в областях используются габариты объектов (bounds), что систему нагружает по минимуму. Добавлю еще, из личных тестов находил слабые места в производительности так: во время запущенной игры по очереди отключаешь объекты в сцене (целиком, вместе со скриптами) и смотришь как это влияет на fps в статистике - можно так быстро и легко выявлять слабые места, нередко бывает, что не очень хорошо написанные скрипты с кучей поисков объектов по тегу или просто перегруженным Update всякими расчетами нехило кушает fps. Далее, все недвижимые объекты должны быть static (галочка в инспекторе) и должен быть включен static batching. На некоторых объектах имеет смысл отключать recieve shadow и cast shadow, об едином меше у объектов с одним материалом стоит думать заранее в 3d-реедакторе, и делать так везде, где есть возможность. У камеры снизить до приемлимого минимума дальность видимости. Постараться избавиться от использования в системах частиц своих собственных мешей - нехило грузит тоже. Ну а основное, чему стоит уделить внимание - это все те же mesh renderer, skinned mesh renderer и т.п. на объектах, которые если вовремя отключать, дают хороший прирост к производительности.
|
|
| |
White9 | Дата: Четверг, 24 Июля 2014, 20:57 | Сообщение # 6342 |
заслуженный участник
Сейчас нет на сайте
| Laush, если в лоб, то можно просто каждый кадр ставить позиции по Z нужное значение в цикле. Справка сейчас у меня не открывается, но команда вроде бы Код transform.position.z = 0;
|
|
| | |
JonLivingston | Дата: Пятница, 25 Июля 2014, 12:31 | Сообщение # 6344 |
почетный гость
Сейчас нет на сайте
| Со своей проблемой давно разобрался. Просто заменяем
Код motor.movement.maxForwardSpeed = 0; motor.movement.maxSidewaysSpeed = 0; motor.movement.maxBackwardsSpeed = 0;
на
Код motor.canControl = false;
Теперь возникла другая проблема. Импортирую из блендера (*.fbx) персонажа со скелетной анимацией. В настройках импорта все анимации проигрываются как надо, но стоит запустить их в Animator'е, как случается странный баг. Правильно проигрывается любая анимация, которая начинается с нулевого кадра, все остальные выглядят так: персонаж становится в стандартную позу (стоит прямо, руки расставлены) и проигрывается только анимация кистей и пальцев. Самое интересное, что там и записана то только анимация кистей и пальцев, остальной скелет просто выставлен в правильную позу, но как раз в нее то он и не становится.
Такая проблема встречается только с анимациями из этой конкретной сцены блендера. Остальные работают нормально. Понятно, что самый ожидаемый ответ - косяк в данной анимации, и если все остальное работает нормально, то необходимо просто ее переписать. Но мне необходимо понять, в чем именно косяк, ведь анимация записывалась точно так же, как и остальные, да и, если начинать с нулевого кадра, все работает. Значит проблема все-таки в юньке?
"Почему труднее всего на свете заставить птицу поверить в то, что она свободна?" - Ричард Бах Наша первая игра Dark Forest Let's play на Dark Forest
|
|
| |
allods | Дата: Пятница, 25 Июля 2014, 15:29 | Сообщение # 6345 |
почти ветеран
Сейчас нет на сайте
| кто может сказать .
Я использую Photon для мульта, где мне хранить данные о игроках? На каком сервере или че еще ?Добавлено (25.07.2014, 15:29) --------------------------------------------- я нащел MySQL
|
|
| |
Laush | Дата: Пятница, 25 Июля 2014, 16:03 | Сообщение # 6346 |
почти ветеран
Сейчас нет на сайте
| White9 Это же я думаю на производительность будет влиять, или нет? В метод update пишу, оно ошибку выдаёт Цитата Assets/PositionZ.cs(13,27): error CS1612: Cannot modify a value type return value of `UnityEngine.Transform.position'. Consider storing the value in a temporary variable
[PC/Android/iOS/WEB] 30 Days to survive [PC] Dead Defense [PC] Саламандра - история пирата
|
|
| |
JonLivingston | Дата: Пятница, 25 Июля 2014, 16:07 | Сообщение # 6347 |
почетный гость
Сейчас нет на сайте
| Laush, а почему бы не попробовать так
Код transform.position = new Vector3(transform.position.x, transform.position.y, 0);
"Почему труднее всего на свете заставить птицу поверить в то, что она свободна?" - Ричард Бах Наша первая игра Dark Forest Let's play на Dark Forest
|
|
| |
GantZ_Yaka | Дата: Пятница, 25 Июля 2014, 19:09 | Сообщение # 6348 |
почетный гость
Сейчас нет на сайте
| JonLivingston, можно попробовать в кадре, с которого должна проигрывается анимация, добавить ключи анимации для каждой кости в 3d редакторе.
|
|
| |
JonLivingston | Дата: Воскресенье, 27 Июля 2014, 19:43 | Сообщение # 6349 |
почетный гость
Сейчас нет на сайте
| GantZ_Yaka, это изначально было сделано, поэтому проблема вероятно в другом.
"Почему труднее всего на свете заставить птицу поверить в то, что она свободна?" - Ричард Бах Наша первая игра Dark Forest Let's play на Dark Forest
|
|
| |
Adom | Дата: Понедельник, 28 Июля 2014, 18:08 | Сообщение # 6350 |
Печенька!
Сейчас нет на сайте
| Создал новый проект в Unity . И уже столкнулся с проблемой . Когда пытаюсь добавить любой скрипт на объект вылазит это. Can't add component "Скрипт" because it doesn't exist. Check to see if the file name and class name match Я это перевел и оказывается что данного скрипта вообще не существует. Потом я создал новый скрипт в этом проекте ,но результат тот-же . И еще внизу выходит такая ошибка при входе в Unity. Код Could not start compilationApplicationException: Unable to find csharp compiler in C:/Program Files/Unity/Editor/Data/Mono\lib/mono/unity UnityEditor.Scripting.Compilers.MonoCSharpCompiler.GetCompilerPath (System.Collections.Generic.List`1 arguments) (at C:/BuildAgent/work/d63dfc6385190b60/Editor/Mono/Scripting/Compilers/MonoCSharpCompiler.cs:72) UnityEditor.Scripting.Compilers.MonoCSharpCompiler.StartCompiler () (at C:/BuildAgent/work/d63dfc6385190b60/Editor/Mono/Scripting/Compilers/MonoCSharpCompiler.cs:43) UnityEditor.Scripting.Compilers.ScriptCompilerBase.BeginCompiling () (at C:/BuildAgent/work/d63dfc6385190b60/Editor/Mono/Scripting/Compilers/ScriptCompilerBase.cs:47) Добавлено (28.07.2014, 14:51) --------------------------------------------- Неужели придется переустанавливать Unity ? Добавлено (28.07.2014, 18:08) --------------------------------------------- В общем переустановил ...
|
|
| |
MadMandarin | Дата: Вторник, 29 Июля 2014, 16:39 | Сообщение # 6351 |
уже был
Сейчас нет на сайте
| Прошу помогите с таким вопросом. Пишу одну маленькую игрушку для android, но сейчас захотелось что бы игра могла просматривать изображения из папки image а потом выводить их, как получше это можно реализовать?
|
|
| |
Adom | Дата: Вторник, 29 Июля 2014, 19:47 | Сообщение # 6352 |
Печенька!
Сейчас нет на сайте
| Возможно была такая тема , но я не смог найти поэтому извините. А вопрос таков . Как перед созданием объекта в точке была полупрозрачная модель ? Что-бы игрок понял как все будет выглядеть до постановки объекта ? Такое есть в The forest.
|
|
| |
buftler | Дата: Среда, 30 Июля 2014, 15:48 | Сообщение # 6353 |
Добряк
Сейчас нет на сайте
| Adom, альфа канал в материале объекта ставим на нужное значение renderer.material.color = new color32(r,g,b,A); А значение прозрачности могу ошибаться в написание функции но общий смысл таков, у объекта есть переменная int если много состояний или bool если два(создан и не создан) если объект не создан то добавляем к цвету материала прозрачностьДобавлено (30.07.2014, 15:48) --------------------------------------------- Adom, альфа канал в материале объекта ставим на нужное значение renderer.material.color = new color32(r,g,b,A); А значение прозрачности могу ошибаться в написание функции но общий смысл таков, у объекта есть переменная int если много состояний или bool если два(создан и не создан) если объект не создан то добавляем к цвету материала прозрачность
|
|
| |
Adom | Дата: Среда, 30 Июля 2014, 16:11 | Сообщение # 6354 |
Печенька!
Сейчас нет на сайте
| buftler, Спасибо
|
|
| |
buftler | Дата: Среда, 30 Июля 2014, 22:06 | Сообщение # 6355 |
Добряк
Сейчас нет на сайте
| Adom, не за что)
|
|
| |
allods | Дата: Среда, 30 Июля 2014, 23:44 | Сообщение # 6356 |
почти ветеран
Сейчас нет на сайте
| кто знает почему не возможно произвести анимацию
public AnimationClip[] animAttacks;
anim.Play (animAttacks[atRand]);
atRand просто Random
вот такая ошибка
Assets/Plugins/controller.cs(50,38): error CS1502: The best overloaded method match for `UnityEngine.Animation.Play(UnityEngine.PlayMode)' has some invalid argumentsДобавлено (30.07.2014, 23:44) --------------------------------------------- сделал через string работает , пришлось в ручную прописывать названия анимаций
|
|
| |
Astralangel | Дата: Четверг, 31 Июля 2014, 00:00 | Сообщение # 6357 |
STF Games
Сейчас нет на сайте
| Цитата allods ( ) atRand просто Random Как это просто Random? Можно весь кусок кода пожалуйста?
Весь мир театр, все люди в нем актеры и каждый не одну играет роль (с) Шекспир
|
|
| |
allods | Дата: Четверг, 31 Июля 2014, 00:18 | Сообщение # 6358 |
почти ветеран
Сейчас нет на сайте
| да тут и кусок кода не нужен
atRand=Random.Range(0,animAttacks.Length);Добавлено (31.07.2014, 00:18) --------------------------------------------- не в это дело так как через string работает
|
|
| |
Artaniel | Дата: Суббота, 02 Августа 2014, 02:38 | Сообщение # 6359 |
частый гость
Сейчас нет на сайте
| allods, осмелюсь предположить что Random.Range() возвращает дробное число. Оно не может быть индексом в массиве. Проблему может решить приведение к int, т.е. например Код anim.Play (animAttacks[(int)atRand]); Если бы в показанном участке кода было бы видно где это atRand объявлено, возможно было бы проще о нем говорить.
Если не сработает, посмотри вообще принимает ли Animation.Play() объекты типа AnimationClip.
Сообщение отредактировал Artaniel - Суббота, 02 Августа 2014, 02:51 |
|
| |
JonLivingston | Дата: Суббота, 02 Августа 2014, 19:38 | Сообщение # 6360 |
почетный гость
Сейчас нет на сайте
| Artaniel, нет, на сколько я помню, Random.Range возвращает целые числа. Проблема скорее всего в том, что Цитата Artaniel ( ) вообще принимает ли Animation.Play() объекты типа AnimationClip Я бы попробовал сделать что-то типа
Код anim.Play (animAttacks[atRand].name);
"Почему труднее всего на свете заставить птицу поверить в то, что она свободна?" - Ричард Бах Наша первая игра Dark Forest Let's play на Dark Forest
|
|
| |
|