Достаточно не сложный код, минимальные действия работы функции на ПК - работает безупречно!
Я делаю билд и запускаю на Honor 6x , и функция заметно работает медленнее!! До этого у меня были Карутины,
работало также, я замених их на Update более костыльным способом , чтобы убедится, что карутины работают хуже чем Update.
Думал отправить в отдельный поток, но юнити не дала этого сделать...
На выходе одно и тоже.. Стал винить функции класса Mathf такие как Abs , Lerp... помогите плиз, в сцене 20 дровколов. 60 fps стабильно.. Но скорость работы функций не меняется.
вот код из функции! ИЗИ костыль. Разница с компьютером 190 fps и на телефоне 60fps , настройки полностью Low, верт синхронизации нет, света нет only ambient, рефлекшинов нет, в общем голяк.
Синтаксис:
Используется csharp
public void ManeuverUp()
{
if (myTransform.position.y < RadiusManeuver) // Атака + движение
{
float y = Mathf.Lerp(myTransform.position.y, RadiusManeuver * 2, speedUpDown / 100);
myTransform.position = new Vector3(myTransform.position.x, y, myTransform.position.z);
if (targetRoad != null)
{
float a = Mathf.Abs(targetRoad.transform.position.y + CollisionRoadDistance);
float b = Mathf.Abs(myTransform.position.y);
if (b <= a && ExplosionRoad)
{
targetRoad.Destruction(Part.AllLines);
ExplosionRoad = false;
}
}
}
}
{
if (myTransform.position.y < RadiusManeuver) // Атака + движение
{
float y = Mathf.Lerp(myTransform.position.y, RadiusManeuver * 2, speedUpDown / 100);
myTransform.position = new Vector3(myTransform.position.x, y, myTransform.position.z);
if (targetRoad != null)
{
float a = Mathf.Abs(targetRoad.transform.position.y + CollisionRoadDistance);
float b = Mathf.Abs(myTransform.position.y);
if (b <= a && ExplosionRoad)
{
targetRoad.Destruction(Part.AllLines);
ExplosionRoad = false;
}
}
}
}
мучаюсь не могу понять ) Может кто сталкивался?