2d how to make a recoil for the player with the gun?
Hi I'm implementing a recoil system in my 2d platforme project of unity, but i using a transform.translate and works, but when i have the final of the map near, the player teleports outside the map, this is the code(srry for my english):
public class CharacterHandleWeapon : CharacterAbility
{
//Recoil, pls work :( (when you press the A botton the is in use the +1 recoil for teleport the player +1, and when the D botton is pressed is in use the recoilRight for teleport the player -1, according with the animations of the character)
public Vector2 recoilLeft = Vector2.zero;
public Vector2 recoilRight = Vector2.zero;
public Vector2 recoilRight2 = Vector2.zero;
void Update()
{
if (Input.GetKeyDown(KeyCode.A))
{
recoilRight = recoilLeft;
Debug.Log("'A' button");
return;
}
if (Input.GetKeyDown(KeyCode.D))
{
recoilRight = recoilRight2;
Debug.Log("'D' button");
return;
}
if (Input.GetKeyDown(KeyCode.W))
{
Debug.Log("'W' button");
return;
}
Debug.Log(recoilRight+ "is the actual valor of recoil, i think...");
}
public virtual void ShootStart()
{
// if the Shoot action is enabled in the permissions, we continue, if not we do nothing. If the player is dead we do nothing.
if ( !AbilityPermitted
|| (CurrentWeapon == null)
|| (_condition.CurrentState != CharacterStates.CharacterConditions.Normal)
|| (_movement.CurrentState == CharacterStates.MovementStates.LadderClimbing))
{
return;
}
//This is for teleport the player -1 or +1, depenging the values entered on the inspector
transform.Translate(recoilRight);
Debug.Log(recoilRight);
CurrentWeapon.WeaponInputStart();
}
I think the problem is i teleport my player, and i the to push it with force when he shoot with the gun.
I saw something in reddit and answers from the unit, but I don't know how to implement it in my code, I'm stuck with this for 4 hours (doing the backspace) I don't know much about code but I'm trying to know more, if there is a solution and I don't would mind helping me, would be eternally grateful, thanks
Best Regards, Bek.
Gif:
Your answer
Follow this Question
Related Questions
How would I make a 2D gun knockback? 1 Answer
My character is shaking while walking. 2D game 0 Answers
How do I play an audio clip when my character goes past a certain y level? 0 Answers
Need help making a ledge climber. The problem, transform.position always returns to vector( 0, 0) 0 Answers
2D projectiles not rotating 0 Answers