Unity 堆棧

using UnityEngine;
using System.Collections;

//堆棧
public class TestStack : MonoBehaviour {

    public delegate void DeleStackHandle(object senter,QueueEventArgs e);

    public event DeleStackHandle EventStack;

    Stack st;

    Stack St
    {
        get
        {
            return st;
        }
        set
        {
            st = value;
        }
    }

    void OnStackEvent(object sent,QueueEventArgs e)
    {
        if(e.count>0)
        {
            Debug.Log("堆棧中的數(shù)量不為空:" + e.count);
        }
        else
        {
            Debug.Log("堆棧中的元素為空");
        }
    }

    void Start()
    {
        st = new Stack();
        EventStack += new DeleStackHandle(OnStackEvent);

        st.Push(1);
        st.Push(2);
        st.Push(3);
     
    }

    void OnListentEventStack(int count,string con)
    {
        if(EventStack!=null)
        {
            EventStack(this, new QueueEventArgs(count, con));
        }
    }

    void OnGUI()
    {
        if(GUI.Button(new Rect(300,300,100,100),"顯示堆棧"))
        {
            Debug.Log("顯示堆棧中的元素");
            ShowSt();
            OnListentEventStack(st.Count, st.ToString());
        }
        if (GUI.Button(new Rect(400, 300, 100, 100), "刪除堆棧"))
        {
            Debug.Log("刪除堆棧中的元素");
            PopSt();
            OnListentEventStack(st.Count, st.ToString());
        }
    }

    //顯示堆棧
    void ShowSt()
    {
        foreach(var temp in st)
        {
            Debug.Log(temp);
        }
    }

    void PopSt()
    {
        st.Pop();
    } 
}
public class QueueEventArgs : MonoBehaviour { 
    public int count;
    public string  context;
    public QueueEventArgs(int cou,string con)
    {
        count = cou;
        context = con;
    }
}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容