void OnCollisionEnter2D(Collision2D col) { MiniHoovers_Slime slime = col.gameObject.GetComponent <MiniHoovers_Slime>(); if (slime == null) { collideGrowCurrent = CollideGrowAmount; Vector3 normal = (Vector3)col.GetContact(0).normal; if (player.IsActionButtonPressed() && MoveSpeed > 0f) { transform.up = transform.up - normal * 2f * Vector3.Dot(transform.up, normal); r.velocity = transform.up * BounceVelocity; } else { MiniHoovers_Player player = col.gameObject.GetComponent <MiniHoovers_Player>(); if (player != null) { // Bounce away. r.constraints = RigidbodyConstraints2D.FreezeRotation; Vector3 fromPlayer = (transform.position - player.transform.position).normalized; r.velocity = fromPlayer * BounceVelocity; } else { r.velocity += col.GetContact(0).normal *BounceVelocity; } } } }
public void GetSucked(MiniHoovers_Player player, bool spawned) { if (claimed) { return; } claimed = true; if (!spawned) { Destroy(gameObject); slimeCounter.MinusSlime(); return; } GameObject leftover = GameObject.Instantiate(SlimeLeftover); leftover.transform.localScale = transform.localScale; leftover.transform.position = transform.position + Vector3.forward * 0.1f; offset = transform.position - player.transform.position; offset.z = 0f; targetPlayer = player; slimeCounter.MinusSlime(); Destroy(GetComponent <Rigidbody2D>()); Destroy(GetComponent <CircleCollider2D>()); }