using System.Collections; using System.Collections.Generic; using UnityEngine; public class GunScript : MonoBehaviour { [SerializeField] private Rigidbody2D rb; public GunScript Gun; private Vector2 mousePosition; public GameObject bulletPrefab; public Transform firePoint; public float fireForce = 20f; // Start is called before the first frame update void Start() { } // Update is called once per frame void Update() { if (Input.GetButton("Fire1")) { Gun.Fire(); } mousePosition = Camera.main.ScreenToWorldPoint(Input.mousePosition); } private void FixedUpdate() { Vector2 aimDirection = mousePosition - rb.position; float aimAngle = Mathf.Atan2(aimDirection.y, aimDirection.x) * Mathf.Rad2Deg - 90f; rb.rotation = aimAngle; } public void Fire() { GameObject bullet = Instantiate(bulletPrefab, firePoint.position, firePoint.rotation); bullet.GetComponent().AddForce(firePoint.up * fireForce, ForceMode2D.Impulse); } }