溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

用UGUI制作手游新手指引

發(fā)布時(shí)間:2020-07-09 09:32:18 來(lái)源:網(wǎng)絡(luò) 閱讀:1788 作者:酷酷小喬 欄目:開發(fā)技術(shù)

因?yàn)檫@幾天工作上的需要,研究了下用UGUI制作新手指引??梢詫?shí)現(xiàn)這個(gè)效果的方法有很多,都用了一遍,最后還是感覺這個(gè)方法比較好。我們需要?jiǎng)?chuàng)建一個(gè)畫布,然后在畫布下創(chuàng)建需要新手指引用到的按鈕,

用UGUI制作手游新手指引

  






然后在需要新手指引的按鈕上加2個(gè)組件,一個(gè)是 Graphic Raycaster 和Canvas ,Graphic Raycaster是用來(lái)是否接受可以交互的,Canvas是改變顯示的,記得我們這里需要一個(gè)遮罩,就用一個(gè)Image來(lái)做吧

然后我們給這個(gè)4個(gè)按鈕都加上這2個(gè)組件,因?yàn)檫@里我是測(cè)試所以我需要一運(yùn)行游戲就有一個(gè)按鈕是高亮狀態(tài),所以我這里用代碼控制了下,然后我們這里還需要一個(gè)新手指引里面的手勢(shì)指示,這個(gè)是實(shí)例化出來(lái)的。

綁定腳本UI控制器里面效果圖




用UGUI制作手游新手指引











下面是測(cè)試代碼:

using UnityEngine;

using UnityEngine.UI;

using System.Collections;

using System.Collections.Generic;


public class NewbieGuideTest : MonoBehaviour

{

    public bool IsGuider = false;

    public Image Instructions;

    public List<Button> GuideBtn;

    

    void Start()

    {

        Image go = GameObject.Instantiate(Instructions) as Image;

        go.transform.SetParent(GuideBtn[0].transform);

        go.transform.localPosition = Vector3.zero;

        go.transform.localScale = Vector3.one;

        //GuideBtn[0].GetComponent<Canvas>().overrideSorting = true;

        GuideBtn[0].GetComponent<Canvas>().sortingOrder = 4;   

    }


    public void BeginGuide(int value) 

    {

                    

        switch (value)

        { 

            case 0:             

                Destroy(GameObject.Find("InstructionsImage(Clone)"));

                ChangGuideBtn(value);

                GenerateInstructions(value);

               

                break;

            case 1:

                Destroy(GameObject.Find("InstructionsImage(Clone)"));

                ChangGuideBtn(value);

                GenerateInstructions(value);

                break;

            case 2:

                Destroy(GameObject.Find("InstructionsImage(Clone)"));

                ChangGuideBtn(value);

                GenerateInstructions(value);


                break;

            case 3:


                break;       

        }  

    }


    public void GenerateInstructions(int value)

    {

        Image go = GameObject.Instantiate(Instructions) as Image;

        go.transform.SetParent(GuideBtn[value+1].transform);

        go.transform.localPosition = Vector3.zero;

        go.transform.localScale = Vector3.one;

    }



    public void ChangGuideBtn(int value)

    {


        GuideBtn[value].GetComponent<Canvas>().overrideSorting = false;

        GuideBtn[value].GetComponent<Canvas>().sortingOrder = -1;

        GuideBtn[value + 1].GetComponent<Canvas>().overrideSorting = true;

        GuideBtn[value + 1].GetComponent<Canvas>().sortingOrder = 2;

    }



}

效果圖:                                                

用UGUI制作手游新手指引
























其他做法還有 改變深度,方法是SetSiblingIndex 還有一個(gè)組件也可以Canvas Group,具體大家可以去看下API,這些組件的用法 。






向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI