Unity坦克大战开发全流程——开始场景——排行榜界面

开始场景——排行榜界面

拼面板

将settingPanel面板中的控件复制过来稍加修改即可

照着这样拼就行了

Unity坦克大战开发全流程——开始场景——排行榜界面_第1张图片

Unity坦克大战开发全流程——开始场景——排行榜界面_第2张图片

写代码

先创建一个RankPanel脚本

Unity坦克大战开发全流程——开始场景——排行榜界面_第3张图片

类字段关联信息

Unity坦克大战开发全流程——开始场景——排行榜界面_第4张图片

向列表中添加元素,并获取其上挂载的脚本。

Unity坦克大战开发全流程——开始场景——排行榜界面_第5张图片

但是transform.Find()无法找到子对象下的子对象,所以我们这样写就会报空,要解决这个问题,只需要把字符串的语法改一下就行了。(如下图)

Unity坦克大战开发全流程——开始场景——排行榜界面_第6张图片

处理事件监听逻辑

Unity坦克大战开发全流程——开始场景——排行榜界面_第7张图片

加多一行HideMe的目的是为了让其在一开始就隐藏

更新面板信息

Unity坦克大战开发全流程——开始场景——排行榜界面_第8张图片

在BeginPanel中注册事件

Unity坦克大战开发全流程——开始场景——排行榜界面_第9张图片

Unity坦克大战开发全流程——开始场景——排行榜界面_第10张图片

 直到当前RankPanel与BeginPanel的代码如下

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SocialPlatforms.Impl;

public class RankPanel : BasePanel
{
    public CustomGUIButton btnClose;

    //利用列表来储存文本控件对应的脚本信息
    private List labPM = new List();
    private List labPlayer = new List();
    private List labScore = new List();
    private List labTime = new List();

    
    void Start()
    {
        HideMe();

        btnClose.clickEvent += () =>
        {
            HideMe();
            BeginPanle.Instance.ShowMe();
        };


        //为列表填充信息
        for (int i = 1; i <= 3; i++)
        {
            labPM.Add(transform.Find("PM/labPM" + i).GetComponent());
            labPlayer.Add(transform.Find("Player/labPlayer" + i).GetComponent());
            labScore.Add(transform.Find("Score/labScore" + i).GetComponent());
            labTime.Add(transform.Find("Time/labTime" + i).GetComponent());
        }



    }

    //更新面板的信息
    public void UpdatePanelInfo()
    {
        
       
    }

    //重写虚函数
    public override void ShowMe()
    {
        base.ShowMe();
        UpdatePanelInfo();
    }

}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;

public class BeginPanle : BasePanel
{
    //关联的各按钮控件
    public CustomGUIButton btnBegin;
    public CustomGUIButton btnSettings;
    public CustomGUIButton btnExit;
    public CustomGUIButton btnRank;

    void Start()
    {
        //事件监听
        btnBegin.clickEvent += () =>
        {
            SceneManager.LoadScene("GameScene");
        };
        btnSettings.clickEvent += () =>
        {
            SettingPanel.Instance.ShowMe();
            HideMe();
        };
        btnExit.clickEvent += () =>
        {
            
        };
        btnRank.clickEvent += () =>
        {
            RankPanel.Instance.ShowMe();
            HideMe();
        };
    }

}

 

你可能感兴趣的:(unity,windows,游戏引擎)