Camera Shake или как передать ощущения игры
3232

Доброго времени суток! Нашёл баг в решении. Хочу поделится правильным решением. Ошибка в методе  private void ShakeRotateCameraInternal(...).
Должен выглядеть следующим образом:
private void ShakeRotateCameraInternal(Vector2 direction, float angleDeg, float degVelocity)
{
    _degVelocity = degVelocity;
    direction = direction.normalized;
    direction *= Mathf.Tan(angleDeg * Mathf.Deg2Rad);
    Vector3 resDirection = ((Vector3)direction + Vector3.forward).normalized;
    _targetRotation = Quaternion.FromToRotation(Vector3.forward, resDirection);
}
Прошу прощение за кривой формат кода.
По сути вместо transform.forward нужно использовать Vector3.forward, потому что именно таким будет направление взгляда локальное.

Ответить