UnityGameProjectsCode / Rise2Point0Game / Tools / OnWallTriggerEnter.cs
OnWallTriggerEnter.cs
Raw
using UnityEngine;

public class OnWallTriggerEnter : MonoBehaviour
{
    public SpriteRenderer floorSprite;
    public GameObject secretArea;
    private DeathWall dWall;
    public GameObject siblingWall;
    private SoundManager soundMgr;

    public bool entranceTrigger;
    private float timeSinceAreaOpened = 0.0f;
    public float timeToWait;
    private bool secretExited = false;

    private void Start()
    {
        dWall = ObjectManager.GetObject(2).GetComponent<DeathWall>();
        soundMgr = ObjectManager.GetObject(4).GetComponent<SoundManager>();

        if (!entranceTrigger)
            GetComponent<BoxCollider2D>().enabled = false;
    }

    private void Update()
    {
        if (!secretExited)
        {
            if (secretArea.activeSelf && !entranceTrigger)
            {
                timeSinceAreaOpened += Time.deltaTime;
                if (timeSinceAreaOpened >= timeToWait)
                {
                    GetComponent<BoxCollider2D>().enabled = true;
                    secretExited = true;
                }
            }
        }
    }

    private void OnTriggerEnter2D(Collider2D collision)
    {
        if (entranceTrigger)
        {
            floorSprite.enabled = true;
            secretArea.SetActive(true);
            dWall.SetDisabledState(true);
            soundMgr.PlayMusicTrack(38);

            Color currentColor = GetComponent<SpriteRenderer>().color;
            GetComponent<SpriteRenderer>().color = new Color(currentColor.r, currentColor.g, currentColor.b, 0.2f);
        }
        else
        {
            floorSprite.enabled = false;
            secretArea.SetActive(false);
            dWall.SetDisabledState(false);

            Color currentColor = siblingWall.GetComponent<SpriteRenderer>().color;
            siblingWall.GetComponent<SpriteRenderer>().color = new Color(currentColor.r, currentColor.g, currentColor.b, 1f);
            siblingWall.GetComponent<BoxCollider2D>().isTrigger = false;
        }
    }
}