-90 ?
Mathf.RoundInt(Angle/90)*90
Возможно будет тоже полезно https://docs.unity3d.com/ScriptReference/Vector3.Dot.html
вещь полезная но она не позволит в 4 значения сделать, только 3 состояния
angle = (angle=angle%360),(angle<-180)?angle+360:(angle>180)?angle-360:angle; а потом Mathf.RoundInt...
операторы условия срсли) не дороговато?
angle = (angle + 90)%360 - 90;
Ну это на уровне троллинга)
Неверно. Нужно наоборот
У тебя изменились они
Давай посчитаем. 180/90=2 2*90=180 вроде верно 154/90=1.7111 округляем до ближайшего = 2 2*90=180 Вроде тоже верно 220/90=2.4 округляем до ближайшего = 2 2*90=180 ... я чего-то не знаю?
Протестируй свой код сначала. Потом пиши. У меня код - работает. Второй вариант лишний
Протестил mono /tmp/V6ZIlROD3E.exe result 0 0 90 result 0 25 90 result 90 50 90 result 90 75 90 result 90 100 90 result 90 125 90 result 180 150 90 result 180 175 90 result 180 200 90 result 270 225 90 result 270 250 90 result 270 275 90 result 270 300 90 result 360 325 90 result 360 350 90
// Online C# Editor for free // Write, Edit and Run your C# code using C# Online Compiler using System; public class HelloWorld { public static void Main(string[] args) { for(float a=0;a<360;a+=25){ Console.WriteLine (string.Format("result {0} {1} {2}",RoundBy(a,90),a,90)); } } static float RoundBy(float x,float y){ return ((int)(x/y+0.5f))*y; } }
моё потести теперь
Твое даже теоретически бред выдавать будет
у меня теоретически и практически работает в проекте на ура
mono /tmp/V6ZIlROD3E.exe result 0 0 90 result 25 25 90 result 50 50 90 result 75 75 90 result 100 100 90 result 125 125 90 result 150 150 90 result 175 175 90 result 200 200 90 result 225 225 90 result 250 250 90 result 275 275 90 result 300 300 90 result 325 325 90 result 350 350 90
Значит либо проект мусор, либо ты не читал что требуется
давай ты помолчишь?
// Online C# Editor for free // Write, Edit and Run your C# code using C# Online Compiler using System; public class HelloWorld { public static void Main(string[] args) { for(float a=0;a<360;a+=25){ Console.WriteLine (string.Format("result {0} {1} {2}",RoundBy(a,90),a,90)); } } static float RoundBy(float x,float y){ return ((int)(x*y+0.5f))/y; } }
Твой код не меняет никак значение и это видно из кода, хули там тестить.
отправьте его в рид-онли. он от души тут пишет а не по факту
Обсуждают сегодня