首页 > 其他分享 >场景加载

场景加载

时间:2023-05-29 19:45:14浏览次数:34  
标签:UnityEngine 场景 Scenes using 加载 SampleScene1

场景加载

1.场景的基础操作

1.1场景的创建

场景创建的快捷键Ctrl+N可以快捷创建场景,此时创建的场景为临时场景,需要保存起来后续才能使用。

1.2场景的删除

直接在文件夹中进行删除即可,因为场景中可能会有一些依赖项,因此非必要不要删除场景。

2.同步加载场景

2.1切换场景

使用的API:SceneManager.LoadScene( );

示例:

using UnityEngine;

using UnityEngine.SceneManagement;

public class Test : MonoBehaviour

{

    void Start()

    {

        SceneManager.LoadScene("Scenes/SampleScene1");

    }

}

先将两个场景导入File>Build Settings...中,将含上面代码的脚本挂到待切换场景的一个物体上,该脚本可以实现将场景切换至Scenes文件夹下的SampleScene1场景播放;

地址"Scenes/SampleScene1"也可换成该场景在Build Settings...中所对应的序号。

2.2同时加载场景

使用的API:SceneManager.LoadScene( ,LoadSceneMode.Additive);

示例:

using UnityEngine;

using UnityEngine.SceneManagement;

public class Test : MonoBehaviour

{

    void Start()

{     

SceneManager.LoadScene("Scenes/SampleScene1",LoadSceneMode.Additive);

    }

}

先将两个场景导入File>Build Settings...中,将含上面代码的脚本挂到原场景的一个物体上,该脚本可以实现将原将原场景与Scenes文件夹下的SampleScene1场景同时加载;

地址"Scenes/SampleScene1"也可换成该场景在Build Settings...中所对应的序号。

3.异步加载场景

示例

using System.Collections;

using UnityEngine;

using UnityEngine.SceneManagement;

public class Test : MonoBehaviour

{

    void Start()

    {

        StartCoroutine(Load());

    }

    private IEnumerator Load()

    {

        AsyncOperation asyncOperation=SceneManager.LoadSceneAsync("Scene/Cut");

        asyncOperation.allowSceneActivation = false;

        while (asyncOperation.progress < 0.9f)

        {

            Debug.Log("Current progress is " + asyncOperation.progress);

            yield return null;

        }

        asyncOperation.allowSceneActivation = true;

        if (asyncOperation.isDone)

        {

            Debug.Log("Finished load and skip.");

        }

        else

        {

            Debug.Log("Not finished");

        }

    }

}

不理解该段代码

4.加载场景时保留物体

使用的API:DontDestroyOnLoad( );

示例:

using UnityEngine;

using UnityEngine.SceneManagement;

public class Test : MonoBehaviour

{

    void Start()

    {

        GameObject capsule = GameObject.Find("Capsule");

        DontDestroyOnLoad(capsule);

        SceneManager.LoadScene("Scenes/SampleScene1");

    }

}

先将两个场景导入File>Build Settings...中,将含上面代码的脚本挂到原场景的一个物体上,该脚本实现的功能是将原场景切换至Scenes文件夹下的SampleScene1场景后保留原场景的Cube物体及该物体下面的子物体,该代码保留的物体只能是根物体,即没有父物体的物体。

地址"Scenes/SampleScene1"也可换成该场景在Build Settings...中所对应的序号。

标签:UnityEngine,场景,Scenes,using,加载,SampleScene1
From: https://www.cnblogs.com/gatran/p/17441467.html

相关文章

  • Pandas 加载数据的方法和技巧
    哈喽大家好,我是咸鱼相信小伙伴们在学习python数据分析的过程中或多或少都会听说或者使用过pandaspandas是python的一个拓展库,常用于数据分析今天咸鱼将介绍几个关于pandas导入数据的方法和技巧从URL获取csv数据关于pandas导入csv数据,使用的是下面这个方法pa......
  • 线性插值的计算公式和使用场景
    线性插值是一种常用的数学方法,用于在给定一些已知数据点的情况下,通过构造一条直线来估计未知数据点的值。它是插值方法中最简单和最常用的一种。线性插值可以应用于多个领域,包括科学、工程、计算机图形学、金融等。在本文中,我们将介绍线性插值的原理、公式和一些常见的使用场景。......
  • Spring事务失效的场景
    (1)方法没有用public修饰会导致事务失效。解决方法:在方法上使用public修饰。(2)使用try-catch捕获异常没有抛出异常,而是由方法自己处理会导致事务失效。解决方法:处理了异常记得抛出。(3)方法抛出检查异常会导致事务失效,报错也会导致事务失效。解决方法:在@transactional注解上配置ro......
  • 大数据应用场景
    1.智能制造:大数据与实体经济融合,通过分析生产数据、市场需求和设备状况等多方面信息,优化生产计划、降低成本,提高工厂智能化水平。2.供应链管理:大数据分析可以辅助企业对供应链进行优化,降低库存、减少缺货现象,提高物流效率,同时为产品研发提供更准确的市场需求预测。3.金融风控......
  • Python中列表(List)元组(Tuple)集合(Set)的区别和适用场景
    在Python中,列表(List)和元组(Tuple)都是序列类型的数据结构。它们具有相似的特性,如可以通过下标访问元素、支持切片操作等。而集合(Set)则是一个无序的集合类型。下面是它们各自的特点和适用场景:列表(List):有序的序列类型。可以存储任意类型的对象,并且可以动态地修改元素。适用于需......
  • 应用启动时加载application.properties配置文件
    配置aliyun.sms.regionId=defaultaliyun.sms.accessKeyId=LTAIxxxaliyun.sms.secret=PAxxxx importorg.springframework.beans.factory.InitializingBean;importorg.springframework.beans.factory.annotation.Value;importorg.springframework.stereotype.Compone......
  • java——微服务——spring cloud——Eureka——ribbon负载均衡——饥饿加载
       ......
  • 通过案列理解变量类型的应用场景
    packagecom.StaticDemo;publicclassTest1{publicstaticvoidmain(String[]args){//通过案列理解变量类型的应用场景Useru1=newUser();Useru2=newUser();Useru3=newUser();Useru4=newUser();S......
  • for循环应用场景
    packagecom.karl;importcom.sun.net.httpserver.SimpleFileServer;publicclassforDemo{//应用场景//减少代码的重复编写,灵活的控制程序的执行//打印多行HelloWordpublicstaticvoidmain(String[]args){for(inti=0;i<5;i++){......
  • Spring源码分析-BeanDefination加载
    ConfigurationClassPostProcessor解析配置类中有两类集合,一类是配置类、另一类是所有已解析的bd从已有bd中过滤配置类​ candidateNames:保存已被解析出来的所有待解析的bd名​ configCandidates:candidateNames经过过滤的所有待解析的配置类bd​ 过滤条件:​ 检查BeanDefi......