knockback player along the Y-axis
I don't think the Y-axis for my code is working. Iv'e tried increasing the yForceToAdd and the localScale.y but (when I collide with the object that has this script attached to it) my player only goes (when I collide at the top of the object) X=1, Y=1 or X=-1, Y=1 and not X=0, Y=1 as well. the same problem with the bottom of my object X=0, Y=-1 doesn't seem to work either. can someone help with this problem? so basically:
when player collides with object, player should get knock back
depending on where the player hits I want the script to calculate the player's direction when it bounces off the object
The script does that, but the Y-axis is not working properly
when the player hits the center of the objects box collider the player is sent of diagonally not straight forward
I want (when my player hit the center on the box collider) my player to go straight forward.
public float xForceToAdd;
public float yForceToAdd;
void OnTriggerEnter2D(Collider2D other) {
if (other.gameObject.tag == "Player")
{
//Store the vector 2 of the location where the initial hit happened; Vector2 initialHitPoint = new Vector2 (other.gameObject.transform.position.x, other.gameObject.transform.position.y); float xForce = 0; float yForce = 0; //Grab our collided with objects rigibody Rigidbody2D rigidForForce = other.gameObject.GetComponent<Rigidbody2D>(); //Determine left right center of X hit if (initialHitPoint.x > (this.transform.position.x + (this.transform.localScale.x /3))) { xForce = 1; } else if (initialHitPoint.x < (this.transform.position.x - (this.transform.localScale.x /3))) { xForce = -1; } else { xForce = 0; } if (initialHitPoint.y > (this.transform.position.y + (this.transform.localScale.y /3))) { yForce = 1; } else if (initialHitPoint.y < (this.transform.position.y - (this.transform.localScale.y /3))) { yForce = -1; } else { yForce = 0; } rigidForForce.velocity = new Vector2(xForce * xForceToAdd, yForce * yForceToAdd); } }
Your answer
Follow this Question
Related Questions
How would I orient VTOL engines relative to the direction of a ship's movement? 1 Answer
Knockback player on collision 2 Answers
Vector 2 direction problem (knockback) 1 Answer
Why is my knockback direction script inconsistent with it's knockback direction? 1 Answer
How can i rotate an object using LookAt with only 1 axis? 0 Answers