Как ограничить движение камеры? sharpdx

Есть куб и камера. Куб находится в начале координат. Как ограничить движение камеры, чтобы нельзя было проходить сквозь куб?

Ниже код, задающий движение камеры по WASD:

Vector4 moveDirection = Vector4.Zero;
if (_inputController.KeyW) moveDirection += Vector4.UnitZ;
if (_inputController.KeyS) moveDirection -= Vector4.UnitZ;
if (_inputController.KeyD) moveDirection += Vector4.UnitX;
if (_inputController.KeyA) moveDirection -= Vector4.UnitX;
                
moveDirection.Normalize();
Matrix rotation = Matrix.RotationYawPitchRoll(_camera.Yaw, _camera.Pitch, _camera.Roll);
Vector4.Transform(ref moveDirection, ref rotation, out moveDirection);
moveDirection = moveDirection * _cameraSpeed * _timeHelper.DeltaT;
_camera.MoveBy(moveDirection);

public virtual void MoveBy(Vector4 delta)
{
  _position += delta;
  _position.W = 1.0f;
}

Ответы (0 шт):