Hello All,
I’m currently writing a pinch to zoom method within the InputTouch of player controller. I currently have:
//Within BeginPlay
ATouchPawn* Pawn = Cast<ATouchPawn>(this->GetPawn());
BoomArm = Pawn->BoomArm;
Boom_InitLength = BoomArm->TargetArmLength;
Boom_LastLength = BoomArm->TargetArmLength;
//Within InputTouch on moved
if (Handle == ETouchIndex::Touch1) {
Touch1Loc = TouchLocation;
}
if (Handle == ETouchIndex::Touch2 && !T3D)
{
Touch2Loc = TouchLocation;
T2D = true;
FMath::Clamp(BoomArm->TargetArmLength, -50.0f, 1000.0f);
VecLength = FVector2D::Distance(Touch1Loc, Touch2Loc);
BoomArm->TargetArmLength = Boom_LastLength - (VecLength * -1);
}
//Within TouchInput on touch end
if (Handle == ETouchIndex::Touch2 && !T3D)
{
T2D = false;
Boom_LastLength = BoomArm->TargetArmLength;
}
The problem I’m encountering is that when the touch is made, its detected as a move, and the distance between the fingers is calculated setting the boom arm outwards without actually moving your fingers.
I’m not sure how to better write it to prevent this problem in the future.
Any help is appreciated.
Thank you.