private void OnCollisionEnter(Collision collision) { if (collision.collider.tag == "Wall" || (collision.collider.tag == "Enemy" && !ricocheted)) { ricochet.NewMove(ricochet.Speed, Vector3.Reflect(ricochet.Trajectory, new Vector2(collision.contacts[0].normal.x, collision.contacts[0].normal.z))); ricocheted = true; } else if (collision.collider.tag == "Enemy" && ricocheted) { Destroy(collision.collider.gameObject); Destroy(gameObject); } }
void Update() { if (Input.GetAxisRaw("Fire1") > 0 && Time.fixedTime > lastShot + gunTimer) { Vector2 mousePos = Input.mousePosition; mousePos.x -= Screen.width / 2; mousePos.y -= Screen.height / 2; Vector3 position = new Vector3(transform.position.x + mousePos.normalized.x, transform.position.y, transform.position.z + mousePos.normalized.y); bullet = Instantiate(bulletPrefab, position, Quaternion.identity); shot = bullet.GetComponent <MoveBullet>(); lastShot = Time.time; shot.NewMove(bulletSpeed, mousePos); } }