Я использую скрипт, который имитирует снаряд с сопрограммой.Скрипт отлично работает на Unity Editor, сборке Windows, сборке Android, кроме сборок iOS.У меня есть публичное плавание под названием гравитация.В зависимости от его значения изменяется скорость снаряда.Проблема в том, что на iOS-сборках значение силы тяжести изменяется в зависимости от условий сценария, но скорость снаряда остается неизменной.Ниже приведена часть скрипта (C #), где я имитирую снаряд.
float gravity = 8; // this value increases over time
IEnumerator SimulateProjectile()
{
// Calculate distance to target
float target_Distance = Vector3.Distance(player.position, target.position);
// Calculate the velocity needed to throw the object to the target at specified angle.
float projectile_Velocity = target_Distance / (Mathf.Sin(2 * firingAngle * Mathf.Deg2Rad) / gravity);
// Extract the X Y componenent of the velocity
float Vx = Mathf.Sqrt(projectile_Velocity) * Mathf.Cos(firingAngle * Mathf.Deg2Rad);
float Vy = Mathf.Sqrt(projectile_Velocity) * Mathf.Sin(firingAngle * Mathf.Deg2Rad);
float elapse_time = 0;
while (player.position.y >= 3.3f)
{
player.Translate(Vx * Time.fixedDeltaTime, (Vy - (gravity * elapse_time)) * Time.fixedDeltaTime, 0);
elapse_time += Time.fixedDeltaTime;
yield return null;
}
}