могет в папочке Editor у вас лежал интересный скриптик для редактора? хде-то я видел подобную сериализацию величин и возможность их изменять слайдерами, вот не помню только, где эта статья была. явно в топиках про расширения для редактора, ИМХО. http://www.3dbuffer.com/ Текстуры, Unity3D, Blender: Эффекты, скрипты, моделирование, текстурирование, скульптинг VKонтакте 3Dbuffer
Есть-ли аналог функции "Relative" для velocity? Двигаю объект посредством rigidbody, но функция AddForce дает постоянное ускорение. Rigidbody.velocity держит скорость, но проблема в том, что объект движется не по своим координатам, а по мировым. Как решить этот идиотский вопрос?
P.S Transform в данном случае не подходит. Больше никогда не буду делать игры.
Кто-нить пробовал анимировать параметры с помощью меканим и потом управлять анимацией скриптом? Т.е. например есть компонент Halo. Знаем, что он не анимируется скриптом напрямую, так как его параметры не доступны из скрипта. Однако его параметры, к примеру Size можно анимировать с помощью системы анимации. Так вот если бы можно было скажем сделать кривую анимации от 0 до 100 за 10000 кадров мы бы получили возможность менять скриптом его параметр в пределах от 0 до 100 с точностью 0,01, что вполне удовлетворительно. Вот только не могу разобраться с самой системой анимации. Я вроде создал анимацию, она проигрывается, параметр исправно меняется. Из скрипта она успешно останавливается через GetComponent.(Animator).speed = 0; А вот выставить нужный фрейм почему-то не могу. Кто-нить знает как это делается? Перерыл всю оф документацию... То ли я слепой, то ли не туда смотрю.
public float speed = 15f; float direction = -1f; public static int destroyNum = 0; public float speedBonus; public float timeActive; private float effectDuration; public static float currentDuration;
Собственно говоря, технически все работает четко, в скриптах проблем нет. Но есть одно но. Фон не просто меняет скорость, а сразу передвигается на некоторое расстояние, а после окончания времени действия буста, передвигается на прежнее расстояние, и движется с прежней скоростью. То есть на время того, как работает буст, показывается будто другой фон с новой скоростью, а потом по окончании снова старый. Короче проблема только в renderer.material.mainTextureOffset. Хотелось бы, чтобы фон "запоминал", насколько он изменился с прежней скоростью, и продолжал потом со старой с того же места.
Добавлено (30 января 2015, 01:37) --------------------------------------------- http://answers.unity3d.com/questions/813671/scroll-parallax-2d-with-small-jumps-and-more.html http://answers.unity3d.com/questions/644283/renderermaterialmaintextureoffset-based-on-player.html http://answers.unity3d.com/questions/674356/infinite-parallax-background-with-no-lineal-veloci.html
Если я не сильно понятно объяснил, то вот по ссылкам описания этой же проблемы других людей. Решений там нигде нету, полдня по инету лазаю-ищу, не знаю как исправить.
Добавлено (30 января 2015, 01:48) --------------------------------------------- Нашел решение здесь: http://gamedev.stackexchange.com/questions/83328/pause-on-scrolling-backgrounds
Может кому пригодится, если столкнется с такой же проблемой.
Добавлено (30 января 2015, 03:28) --------------------------------------------- Немножко улучшил скрипт, если кому нужен:
Код
using UnityEngine; using System.Collections;
public class ScrollScript : MonoBehaviour {
public float speed = 0; public static float original_speed = 1f; public static float boost_speed = 1f; private Material currentMaterial; private float offset;
Подскажите как можно выровнить объекты так чтобы они: 1) были на одинаковой высоте (ну например два кубика) 2) и как "положить" объект на террейн или на другой объект (чтобы он не был выше или ниже объекта на котором стоит)?
Сообщение отредактировал Vetek - Пятница, 30 Января 2015, 08:05
Vetek, программно? 1) сделать массив объектов. Туда добавить 2 объекта и в цикле переберания массива присвоить одну высоту. Псли не программно, то тупо написать в параметре высоты в компоненте transform одно число. :/ 2) для начала, на него нужно повесить коллайдер. Можно добавить rigidbody. Теперь объект будет твердым и падать вниз, если внизу другой объект с коллайдером, то он остановится. Опять же, как ты хочешь "положить"? Flist - social platform PuzzleSystem - Open-source Unity Asset [2D] Mission: Defender
Сообщение отредактировал romeo98 - Пятница, 30 Января 2015, 08:28
romeo98, Положить т.е. например скамейку на террейн чтобы ножки скамьи не проваливались и не висели в воздухе. Я просто привык в программе blender, в ней есть выравнивание где один объект можно состыковать с другим, выравнять по осям, думал что в unity есть похожий способ выравнивания.
romeo98, Положить т.е. например скамейку на террейн чтобы ножки скамьи не проваливались и не висели в воздухе. Я просто привык в программе blender, в ней есть выравнивание где один объект можно состыковать с другим, выравнять по осям, думал что в unity есть похожий способ выравнивания.
Если я верно тебя понял, то V зажимаешь, жмякаешь на угол одного объекта, и на угол другого. Это привязка вершин, объект совместится с другим объектом, сопоставившись углами.
Сообщение отредактировал choopie - Пятница, 30 Января 2015, 13:08
Никто не знает, есть ли способ получить евент OnTriggerEnter одного объекта из другого? т.е. колайдер отмеченный, как триггер висит на одном объекте, а скрипт на другом, из из этого скрипта надо узнать сработал ли этот эвент, не добавляя к объекту с триггером код.
Как добавить время, через которое функция должна быть выполнена?
Код
if (isGrounded == false)
Если нет соприкосновения, то через заданное время выполняется условие... Делал таким образом: if (isGrounded == false && Time.time > nextTime), но толку никакого. Больше никогда не буду делать игры.