using UnityEngine; public class FireScript2D : MonoBehaviour { [Header("Снаряды")] public BasicProjectile projectilePrefab; public Transform muzzle; public float shotSpeed = 20f; void Update() { if (Input.GetKeyDown(KeyCode.F)) { 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 p = Instantiate(projectilePrefab, launchPos, Quaternion.identity); p.transform.localScale = new Vector3(-facing * p.transform.localScale.x, p.transform.localScale.y, p.transform.localScale.z); p.Launch(dir, shotSpeed); var myCol = GetComponent(); var pCol = p.GetComponent(); if (myCol && pCol) Physics2D.IgnoreCollision(myCol, pCol, true); } } }