private void OnCollisionEnter2D(Collision2D collision) { Debug.Log("Collision"); BRPyu pyu = collision.gameObject.GetComponent <BRPyu>(); if (pyu && pyu.team != team) { lowerHP(); firstHitTime = Time.time; } }
private void OnCollisionStay2D(Collision2D collision) { //Add damage per second BRPyu pyu = collision.gameObject.GetComponent <BRPyu>(); if (pyu && pyu.team != team && Time.time > (firstHitTime + (1.0f / (float)dmgPerSecond))) { lowerHP(); firstHitTime = Time.time; } }
// Update is called once per frame void Update() { float minDist = 0; if (tournament.contenders.Count > 1 && tournament.nbOfTeamsLeft() > 1) { foreach (BRPyu pyu in tournament.contenders) { if (team != pyu.team) { float dist = Mathf.Sqrt(Mathf.Pow(pyu.transform.position.x - transform.position.x, 2) + Mathf.Pow(pyu.transform.position.y - transform.position.y, 2)); if (minDist == 0 || dist < minDist) { minDist = dist; closestPyu = pyu; } } } Vector3 dir = new Vector3(closestPyu.transform.position.x - transform.position.x, closestPyu.transform.position.y - transform.position.y, 0); dir.Normalize(); dir *= speed; celerity = dir; } else { celerity = Vector3.zero; } if (color != sr.color) { sr.color = color; } }