перепробовал все что смог придумать... теперь вся надежда на вас.
дело вот в чем, я решил начать свое обучение со зднания аналога гитар хиро. На нынешней стадии програмирую движение текстуры грифа, так чтобы он двигался с соответсвующей скоростью. при, кроме этого требуеться чтобы текстура грифа растягивалась так, чтобы каждый бегущий по нему огонек(хз как еще назвать) распологался на ладу. Тоесть чем выше тем тем сжатее текстура(т. к. огоньки бегут чаще). вот мой код:
function Update ()
{
Speed = ConstScript.SPEED/10;
//опытным путем установил что расстояние в текстурах измеряется в 10раз меньших единицах чем расстояние в самой три-д комнате.(я прав??)
Scl = (MainScript.Temp3)*(Speed)*12 ;
//12 - число ладов * РАСТОЯНИЕ которое проходят тригеры за одну долю(время*скорость). мысль в том, чтобы посчитать какой длинны должен быть один лад(одна 12-ая текстуры) и соответственно умножить на 12.
Til = 1/Scl;
renderer.material.SetTextureScale ("_MainTex", Vector2(1,Til));
offset += Time.deltaTime*Speed*(Til);
if(offset/Mathf.Round(offset) == 1)
{
offset = 1;
}
renderer.material.SetTextureOffset ("_MainTex", Vector2(0,offset));
}
Вот. но! из-за чего-то стала возникла ошибка - текстура очень медленно, но заметно уезжает. из-за того что ее размер не подходит накапливается сдвиг. Я не могу понять почему
все мои попытки исправить:
- проверил - это не скорость больше чем нужно. а именно размер текстуры неподходящий
- подумал о том, что время в юнити неравномерно. и что нужно задавать не обсолютную скорость в секунду а скорость в секунжу как -то учитывая то сколько длился последний кадр. потом понял что так невыйдет из-за того что мы не можем сказать точно сколько кадров в каждую секунду.
- пробовал считать не через время доли, а через реальное время последней доли - текстура резко скачет и савсем не попадает.
было еще что-то.. но не важно... вообщем если кто-то может помочь советом, буду очень признателен.