unity實現按下按鈕控制多個介面
阿新 • • 發佈:2019-01-27
先看看效果圖
1使用檢索值來實現
首先需要將你想要顯示的面板放入一個數組裡面,這個數組裡面的值都是當你觸發時才會顯示的,
事例中我們建立了3個 button進行演示
緊接著建立3個image當做我們的面板他們只有顏色不同
好了介面都做好了接下來就開始寫程式碼了
建立一個C#指令碼 命名為Test (這裡測試隨便命名的)
- usingSystem.Collections;
- usingSystem.Collections.Generic;
- usingUnityEngine;
- public class Test : MonoBehaviour {
- //這裡存放所有你想要顯示的面板
- public GameObject[] panels;
- //當前顯示面板的索引值 如果為-1則是關閉所有面板
- public int current_Index;
- //是否切換了面板 如果你點選了按鈕那就是要切換,沒有點選就是不切換
- //預設值為false
- public bool isChange = false;
- //這個函式就是這個程式碼的核心控制 在updata中每幀執行
- publicvoid Display()
- {
- //如果切換了才執行,沒有切換就不執行直接return就可以結束函式的執行
- if(!isChange)
- {
- return;
- }
- //切換完了就把它的值 = false
- isChange = false;
- //首先關閉所有顯示的面板 這裡使用foreach迴圈遍歷所有的面板
- foreach(GameObject i in panels)
- {
- //關閉顯示
- i.SetActive(false);
- }
- //這裡處理current_Index為-1的情況 為-1就不在顯示面板了直接return結束;
- if(current_Index == -1)
- {
- return;
- }
- //
- panels[current_Index].SetActive(true);
- }
- //當按鈕點選的時候呼叫這個方法就行了
- public void SelectPanel(int index)
- {
- isChange = true;
- current_Index = index;
- }
- // Use this for initialization
- void Start () {
- }
- // Update is called once per frame
- void Update () {
- Display();
- }
- }
好的程式碼寫完了
我們把程式碼放到Canvas上面進行設定
接下來進行的是按鈕的OnClick事件新增的問題
點選按鈕在OnClick中新增Canvas上Test中的 SelectPanel函式
按鈕1
按鈕2
按鈕3
最後我們在建立一個Close按鈕來關閉所有面板 為他新增OnClick事件
到這裡就結束了