Ошибка сообщает вам, что не существует неявного преобразования из double
в float
.
Причина в том, что тип double
является 64-битным числом (с двойной точностью), а тип float
- только 32-битным числом (одинарной точности), поэтому существует возможность потери точности при преобразовании из double
в float
, и авторы не хотели, чтобы эта потеря произошла «случайно» во время задания.
Однако вы всегда можете явно привести значения к правильному типу:
x = (float) Math.Sin(yvel);
y = (float) Math.Sin(xvel);
Или, что еще лучше, просто использовать типы double
на всем протяжении :
void Update()
{
double xVel = rb.velocity.x;
double yVel = rb.velocity.y;
double x = Math.Sin(yVel);
double y = Math.Sin(xVel);
transform.Rotate(x, y, 0);
}
Или, точнее:
void Update()
{
transform.Rotate(Math.Sin(rb.velocity.y), Math.Sin(rb.velocity.x), 0);
}