/// Shift the camera by the vertical offset
 public void Apply(InputShiftableCamera camera)
 {
     if (camera == null)
     {
         return;
     }
     camera.Value = Direction.Vertical;
 }
        // Perform any one-time init actions
        private void Initialize(Rigidbody2D body, Camera camera)
        {
            _initialized = true;
            _shiftCamera = camera == null ? null : camera.gameObject.GetComponent <InputShiftableCamera>();

            if (Config.Directions != null)
            {
                return;
            }
            var root = body.gameObject.transform;

            while (root.parent != null)
            {
                root = root.parent;
            }
            _.Log("Warning: No direction set for GenericMotion; selecting default: {0}", root);
            Config.Directions = root.gameObject;
        }