一起来玩U3D之场景转换+关卡选择

本文介绍了在Unity3D中如何实现场景转换和关卡选择功能。通过创建脚本和UI布局,详细阐述了场景间的切换逻辑以及关卡界面的设计,包括星星评分和关卡解锁机制。示例代码和最终效果为读者提供了清晰的实现步骤。
摘要由CSDN通过智能技术生成

场景转换

在游戏中我们经常会有场景转换的使用,比如传送阵等
那么U3D中如何实现场景转换呢?
假设我们现在有两个如下场景:
在这里插入图片描述
那么如何在这两个场景中切换呢?
首先,打开下面的界面
在这里插入图片描述

然后再打开的界面中拖入我们的场景

在这里插入图片描述
最后我们要在两个场景中分别创建一个脚本
注意脚本中首先引入命名空间

using UnityEngine.SceneManagement;

public void OnClickLoadScene()
	{
   
		SceneManager.LoadScene("Complete");
	}

然后随便绑定一个按钮,就可以跳转到想去的场景了。

关卡选择

最终效果如下面几张图所示:
刚进入关卡界面:
在这里插入图片描述
点击第一关并确定后(直接就开始算分了,得几个星星自己挑):在这里插入图片描述
这边我选2颗星后确定:可以看到,第一关得了2颗星,第二关解锁了
在这里插入图片描述

UI的搭建我就不演示了,直接贴出最终搭建好的UI层次

在这里插入图片描述
在这里插入图片描述
下面对上述UI做出解释:
canvas:就是画布
BackGround:整个大背景
windowBG:背景框(无所谓)
windowHead:上面的标题(无所谓)

接下来的很重要

levels:一个空对象,里面添加一个grid网格组件用来排列关卡按钮,levels里面我写了10个子对象,就是我们的关卡
level01:按钮
Select:一张图片,注意只在这一个关卡中创建这个,后面的不要(或者你干脆不要,不影响功能,只是为了看着舒服)
Text:用来显示关卡编号
stars:星星背景框
star1–star3–star2:三个星星图片
lock:小锁图片
AcceptButton:进入关卡场景按钮

好啦,接下来开始写脚本

首先,我们在levels里面添加一个脚本CheckPointCotroller(选择关卡控制器)
代码如下:

using UnityEngine;
using UnityEngine.UI;
using UnityEngine.SceneManagement;

public class LevelsController : MonoBehaviour {
   

	[Header("最高可挑战的关卡")]
	private int challengingLevel;

	/// <summary>
	/// 选择框
	/// </summary>
	private Transform select;

	private int currentLevelNum;

	void Awake()
	{
   
		//找到选择框
		select = GameObject.FindWithTag("Select").transform;
	}

	void Start()
	{
   
		challengingLevel = Singleton.GetInstance().levelAndStars.Count + 1;

		InitUI();
	}


	public void InitUI()
	{
   
		//初始化UI
		for (int i = 0; i < transform.childCount; i++)
		{
   
			//找到第i个子对象(关卡)
			Transform child = transform.GetChild(i);

			Transform stars 
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值