private void Start() { GameObject managers = GameObject.FindGameObjectWithTag("Managers"); sfxManager = managers.GetComponentInChildren <SFXManager>(); // We need to do this, just in case we have an animator to setup IsShell = isShell; topCollider.OnCollisionEnter2DEvent += collision2d => { TurnIntoShell(); basicEnemy.CanMove = false; }; leftTopCollider.OnCollisionEnter2DEvent += collision2d => { if (IsShell && !hasSetShellMovement) { SetEnemyMovement(shellMoveSpeed, false); hasSetShellMovement = true; } }; rightTopCollider.OnCollisionEnter2DEvent += collision2d => { if (IsShell && !hasSetShellMovement) { SetEnemyMovement(shellMoveSpeed, true); hasSetShellMovement = true; } }; shellCollider.OnCollisionEnter2DEvent += collision2d => { if (IsShell) { IKillable killable = collision2d.gameObject.GetComponent <IKillable>(); if (killable != null) { killable.KillAndFall(); } } }; }