20.unity换场景

今天要盖出阿嬷家!让小红帽走进阿嬷家,找到阿嬷。

1.新建场景

右键 > Create > Scene
1.png

2.png

这样就建好一个新的场景

2.切换场景

利用碰撞"门"进入场景二。

if (coll.gameObject.tag == "door")
        {
            Debug.Log("切换场景");
            SceneManager.LoadScene(1,LoadSceneMode.Single);
        }

换场景的两种写法

第一种(过时)
Application.LoadLevel(1); 
//数字为场景编号,从File -> Build Settings...看
//可以在Build Settings中随意交换场景顺序,因此要留意是否正确
Application.LoadLevel("场景名称");
//直接输入场景名称进行换场景

第二种
//先新增命名空间
UnityEngine.SceneManagement;
//写法和第一种一样
 SceneManager.LoadScene(1,LoadSceneMode.Single);
 SceneManager.LoadScene(1,加载场景模式.单一);

3.数据传递(物件不灭)

在不要删除的物件上挂之前写过的 DontDestroyOnLoad(gameObject);

这样就可以同一支角色在场景间穿梭,角色不会消失和重新载入。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class DontDestroy : MonoBehaviour
{
    // Start is called before the first frame update
void Awake()
    {
		//用阵列取得所有tag"role"物件,希望只有objs[0]一项,objs.Length=1
        GameObject[] objs = GameObject.FindGameObjectsWithTag("role");
				
				//如果阵列不只一项(第二次加载时重复新增该物件)
        if (objs.Length > 1)
        {
						//就删除该次加载场景建立物件
                        
            Destroy(this.gameObject);
        }

				//如果阵列只有一项,就不要删掉这个物件(首次加载)
        Debug.Log("DontDestroyOnLoad(this.gameObject);");
        Debug.Log(this.gameObject);
        DontDestroyOnLoad(this.gameObject);
    }
}

<<:  [Day5](win 10/ssh 、smb )认证问题,出示证件!!!!

>>:  Day05 - 让轮子依随机速度转动并渐慢停下来

D14 - 「类比×电压×输入」:类比功能

先从 Firmata 找到类比相关功能。 类比输入(Analog Input) 在 Supporte...

Day 01 | 前言、规划及为什麽需要 Test Case Management?

目录 前言 文章规划 为什麽需要 Test Case Management? 需求与选择 需求是什麽...

【第三天 - Flutter Route 规划分享】

今日的程序码 => GitHub 前言 大家应该都知道 Flutter 的跳页都会分成 2 ...

SQL Server 每日定期备份与定期删除旧有备份档

SQL Server 资料库备份是将存放在资料库里面的资料,转成单一档案保存,通常是副档名为 bak...

Day 14 读 Go Concurrency Patterns - Rob Pike I

本篇是看 Go Concurrency Patterns 的心得 简报网址:https://talk...