public void Follow(ScaledSprite3D objectToFollow, float speed = 0.2f, bool overrideGoto = false) { if (objectToFollow == null) { throw new ArgumentNullException("objectToFollow"); } if (_objectToFollow == objectToFollow || (State & CameraState.Goto) == CameraState.Goto) return; _objectToFollow = objectToFollow; Target = new Vector3(objectToFollow.Position.X, Camera.Position.Y, Camera.Position.Z); Speed = speed; State = CameraState.Goto | CameraState.Follow; Goto(); }
/// <summary> /// Issue a request to move camera to target location /// </summary> /// <param name="target"></param> /// <param name="speed"></param> public void Goto(Vector3 target, float speed = 0.2f) { Target = target; Speed = speed; _objectToFollow = null; State = CameraState.Goto; Goto(); }