Как ограничить движение камеры? 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;
}