Question by
ExcellS23 · Jan 12, 2016 at 12:22 PM ·
2d game2d-physics2d-gameplay
2D Collision Problems...
Hey guys, I am have an issue with my fighting game. I am trying to get the enemy to pick a "Death Sequence" contingent upon his Collider colliding with the players "HitBox" and if he is on the left or right. I used Mecanim to activate and deactivate the players HitBox upon animation keys and I can visually see when it happens. My problem is that it only activates the Animator and doesn't read the rest. The enemy has a RigidBody 2D and I have verified that his tag does say "Enemy". The HitBox has a BoxCollider2d and is a Trigger.
public class PlayerHitBox : MonoBehaviour {
private int randomNumber1;
private int randomNumber2;
void Update(){
randomNumber2 = Random.Range (2, 4);
randomNumber1 = Random.Range (0, 2); //just an example.
}
public void OnTriggerEnter2D(Collider2D other){
if (other.gameObject.tag == "Enemy") {
if (other.gameObject.GetComponent<EnemyMoveScript>()._isonLeft == true) {
other.gameObject.GetComponent<EnemyHealth>().DeathSequences(randomNumber1);
}
else if (other.gameObject.GetComponent<EnemyMoveScript>()._isonLeft == false) {
other.gameObject.GetComponent<EnemyHealth>().DeathSequences(randomNumber2);
}
}
}
}
public void DeathSequences(int deathNum){ // on enemy script
switch (deathNum){
case 0:
rb.AddForce(new Vector2 (1,1) * kbForce); //when striking an enemy on the right.
this.transform.Rotate(Vector3.forward, -rotateSpeed * Time.deltaTime) ;
em._defeated = true;
anim.SetBool("flyback1", true);
break;
case 1: rb.AddForce(new Vector2 (1,0) * kbForce); //from the right
anim.SetBool ("dead3", true);
break;
I have tried to just create a method on the enemy that takes in values that update Addforce in FixedUpdate, but that doesn't help either. Not sure where to go with this...
Comment