public void attaquer(bool ataqueInterne) { if (apartienAuJoueur1 || ataqueInterne == false) { Vector3 departRay = new Vector3(this.transform.position.x + positionBaseRay, this.transform.position.y, this.transform.position.z); //Debug.Log(directionRay); RaycastHit2D[] toucher = Physics2D.RaycastAll(departRay, new Vector2(directionRay, 0), distanceRay, HitLayers); //Debug.DrawRay(departRay, new Vector3(90, 0, 90), Color.red, 5); foreach (RaycastHit2D hit in toucher) { Debug.Log(hit.rigidbody.gameObject.name); VieJoueur joueur = null; joueur = hit.rigidbody.gameObject.GetComponent <VieJoueur>(); if (joueur != null) { Debug.Log("hit"); joueur.faireDegat(degats); if (this.gameObject.transform.parent.transform.position.x > hit.rigidbody.gameObject.transform.position.x && quantitierKnockBackx > 0) { quantitierKnockBackx *= -1; } else if (this.gameObject.transform.parent.transform.position.x < hit.rigidbody.gameObject.transform.position.x && quantitierKnockBackx < 0) { quantitierKnockBackx *= -1; } //hit.rigidbody.AddForce(new Vector2(quantitierKnockBackx, quantitierKnockBacky)); GestionnaireAttaque.declancherEvenement("VieJ1Changer", degats, joueur.name, quantitierKnockBackx); } } } }
private void OnTriggerEnter2D(Collider2D collision) { if (collision.gameObject.layer == this.gameObject.layer) { Debug.Log("collision" + collision.gameObject.name); VieJoueur joueur = null; joueur = collision.gameObject.GetComponent <VieJoueur>(); if (joueur != null && collision.gameObject.GetComponent <mouvement>() != null) { GestionnaireAttaque.declancherEvenement("VieJ1Changer", degat, collision.gameObject.name, 0); areterFleche(collision); } else if (collision.gameObject.GetComponent <ObjetRamasable>() == null) { areterFleche(collision); } } else { areterFleche(collision); } }