Note: 3.0.8 F6 (posting because I don't see the fix in the F7 release notes).
Shouldn't the line below:
if (movement == Movement.Horizontal || movement == Movement.Unrestricted)
be:
if (movement == Movement.Horizontal)
as otherwise if you have movement == Unrestricted and custommovement = {0,1} it will scroll horizontally instead of vertically (because the code then is "new Vector3(mScroll * 0.05f, 0f, 0f));" which scrolls in X even if custom movement is along the Y.
This certainly fixed the problem I was having.
// Apply momentum
if (mShouldMove && !mPressed)
{
if (movement == Movement.Horizontal || movement == Movement.Unrestricted)
{
mMomentum
-= mTrans
.TransformDirection(new Vector3
(mScroll
* 0
.05f, 0f, 0f
)); }
else if (movement == Movement.Vertical)
{
mMomentum
-= mTrans
.TransformDirection(new Vector3
(0f, mScroll
* 0
.05f, 0f
)); }
else
{
mMomentum
-= mTrans
.TransformDirection(new Vector3
( mScroll * customMovement.x * 0.05f,
mScroll * customMovement.y * 0.05f, 0f));
}