Unity3D解锁关卡功能

1.创建多个button(关卡数)->创建Button数组存button(代码)+目前达到第几关卡(默认为1)levelReached->达到那一关,那一关的Button才可用levelReached=button可用

public class LevelSelect : MonoBehaviour {
    public Button[] levelButton;//关卡数组
    
	// Use this for initialization
	void Start () {
         int levelReached = PlayerPrefs.GetInt("levelReach",1);//获取值,不存在返回1(初始第一关)
        for (int i = 0; i < levelButton.Length; i++)
        {
            if (i > levelReached-1)//达到那一关,那一关的Button才可用
            {
                levelButton[i].interactable = false; //Interactable(是否可用)
            }
        }
	}

2.UI(另起一个场景存)

添加UI->Scroll View->

 ->content加两个组件->Content Size Fitter会根据多少内容来调整Scroll的大小,Grid根据什么方式排布

 

->在content里面加Button,作为关卡选项

http://blog.csdn.net/gcs6564157/article/details/54884809

注:Scroll View的大小在此处调(调一下上下左右的边距)


Button的脚本

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

public class LvButtonInfo : MonoBehaviour {
    public Image[] stars;
    public string lvName;
	void Start () {
        PlayerPrefs.SetInt(lvName,0);
        int lvStarNumber = PlayerPrefs.GetInt(lvName);

        for (int i = 0; i < stars.Length; i++)
        {
            stars[i].enabled = false;
        }

        for(int i=0;i<lvStarNumber;i++)
        {
            stars[i].enabled = true;
        }
	}
    public void EnterLv()
    {
        SceneManager.LoadScene(lvName);
    }
} 

lvName在Inspect面板写即可。

猜你喜欢

转载自blog.csdn.net/qq_25678319/article/details/79504387