using UnityEngine; public class TrickCollisionManager : MonoBehaviour { [SerializeField] private string trickLayerName = "Trick"; [SerializeField] private string playerLayerName = "Player"; [SerializeField] private string treatLayerName = "Treat"; private bool initialized; private void Awake() { Initialize(); } private void Initialize() { if (initialized) { return; } var trickLayer = LayerMask.NameToLayer(trickLayerName); if (trickLayer == -1) { Debug.LogWarning("Trick layer not found. Create a layer named 'Trick' and assign it to Trick prefab."); return; } Physics2D.IgnoreLayerCollision(trickLayer, trickLayer, true); IgnoreLayerPair(trickLayer, playerLayerName); IgnoreLayerPair(trickLayer, treatLayerName); initialized = true; } private void IgnoreLayerPair(int trickLayer, string otherLayerName) { var otherLayer = LayerMask.NameToLayer(otherLayerName); if (otherLayer == -1) { Debug.LogWarning($"Layer '{otherLayerName}' not found. Configure it if you want Trick to ignore collisions with it."); return; } Physics2D.IgnoreLayerCollision(trickLayer, otherLayer, true); } }