在遊戲的UI界面製作中我們經常會用到使用菜單來選擇或則開關一些東西,具體的樣式如圖所示:
具體的效果是點擊按鈕前沒有顯示圖層開關菜單,點擊後顯示,並可以進行開關操作,下面我就展示如何製作這個UI控件。
這個功能很常見,但是UGUI上並沒有這個控件,我們可以通過簡單的控件組合來實現這個看似高級的控件。
第一步:
在Hierarchy面板下創建一個button,起名爲bgroup,在inspector面板上的image組件的source image處修改button的貼圖外觀,由於我們的button用不到文字,所以我們把bgroup的子節點的text組件刪除。
第二步:
在bgroup下創建一個panel,起名爲dropdown,調整panel的大小和位置以適合你需要。也可以添加背景圖片。這裏我沒有添加圖片,採用改變color的形式做了一個半透明的背景。接下來給dropdown添加Grid Layout Group組件和Layout Element組件,組件的具體設置如下:
第三步:
在dropdown下創建子控件,我這裏標題欄採用圖片,開關採用 toggle控件,你也可以採用其他控件,這些控件都是dropdown的子控件。
第四步:
寫腳本控制點擊事件:
菜單的顯示與隱藏控制:
using UnityEngine;
using System.Collections;
using UnityEngine.UI;//注意這個不能少
//using UnityEditor.Sprites ;
public class tucheng : MonoBehaviour {
//public GameObject Gmenue;
public GameObject btnObj ;
public GameObject caidan;
public Sprite expan;
public Sprite back;
Button btn;
bool isshow=false ;
// Use this for initialization
void Start () {
caidan.SetActive (isshow);
btn = btnObj.GetComponent<Button>();
btn.onClick.AddListener(delegate ()
{
isshow=!isshow;
caidan.SetActive (isshow);
if (isshow)
{
btn.GetComponent<Image>().sprite=expan ;
}
else {
btn.GetComponent<Image>().sprite=back;
}
});
}
// Update is called once per frame
void Update () {
}
}
將腳本掛載在bgroup上即可。