using UnityEngine; public class FireScript2D : MonoBehaviour { [Header("Снаряды")] public BasicProjectile projectilePrefab; public Transform muzzle; public float shotSpeed = 20f; public KeyCode actionKey = KeyCode.F; void Update() { if (Input.GetKeyDown(actionKey)) { if (projectilePrefab == null) { Debug.LogWarning("No projectilePrefab"); return; } float sx = transform.localScale.x; float facing = Mathf.Sign(sx == 0 ? 1 : sx); Vector2 dir = facing > 0 ? Vector2.right : Vector2.left; Vector2 launchPos = muzzle ? (Vector2)muzzle.position : (Vector2)transform.position + new Vector2(1.4f * facing, 0f); BasicProjectile projectile = Instantiate(projectilePrefab, launchPos, Quaternion.identity); projectile.transform.localScale = new Vector3(-facing * projectile.transform.localScale.x, projectile.transform.localScale.y, projectile.transform.localScale.z); projectile.Launch(dir, shotSpeed); var myCol = GetComponent(); var pCol = projectile.GetComponent(); if (myCol && pCol) Physics2D.IgnoreCollision(myCol, pCol, true); } } }