Unity-场景

这篇具有很好参考价值的文章主要介绍了Unity-场景。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

创建场景

创建新的场景后:
文件 -> 生成设置 -> Build中的场景 -> 将项目中需要使用的场景拖进去

Unity-场景,unity,unity文章来源地址https://www.toymoban.com/news/detail-812294.html

SceneTest

public class SceneTest : MonoBehaviour
{
    // Start is called before the first frame update
    void Start()
    {
        // 两个类: 场景类、场景管理类
        // 场景类
        // 获取当前场景
        Scene scene = SceneManager.GetActiveScene();
        //      场景名称
        Debug.Log(scene.name);
        //      场景是否已经加载
        Debug.Log(scene.isLoaded);
        //      场景路径
        Debug.Log(scene.path);
        //      场景在(build中的场景)中的索引号
        Debug.Log(scene.buildIndex);
        //      获取场景中的所有物体(不包括子物体)
        GameObject[] gos = scene.GetRootGameObjects();
        Debug.Log(gos.Length);
        
        // 场景管理类
        // 【场景加载】 场景同步加载,使用在(build中的场景)中的索引号加载
        SceneManager.LoadScene(1);
        // 【场景加载】 使用场景名称加载
        SceneManager.LoadScene("MyScene");
        // 【场景加载】 单一场景加载, 加载后只存在一个场景
        SceneManager.LoadScene("MyScene", LoadSceneMode.Single);
        // 【场景加载】 融合场景加载,加载后与之前场景重叠在一起, 但如果场景多会卡顿,要使用异步加载
        SceneManager.LoadScene("MyScene", LoadSceneMode.Additive);
        // 【创建场景】创建新的场景
        Scene newScene = SceneManager.CreateScene("NewScene");
        // 【场景数量】当前已经加载的场景数量
        Debug.Log(SceneManager.sceneCount);
        // 【卸载场景】场景异步销毁
        SceneManager.UnloadSceneAsync(newScene);
    }

    // Update is called once per frame
    void Update()
    {
        
    }
}

场景异步加载----协程

AsyncTest

public class AsyncTest : MonoBehaviour
{
    private AsyncOperation operation;
    private float timer = 0;
    void Start()
    {
        // 【调用协程】 使用该函数来使用协程
        StartCoroutine(loadScene());
    }

    // 【协程】 使用协程方法来异步加载场景
    IEnumerator loadScene(){
        // 异步加载场景,使用索引号
        operation = SceneManager.LoadSceneAsync(1);
        // 加载完成场景后不会自动跳转, 可自己加计时器来控制跳转
        operation.allowSceneActivation = false;
        
        yield return operation;
    }
    
    
    void Update()
    {
        // 【加载进度】 输出加载进度(0-0.9) 
        Debug.Log(operation.progress);
        // 使用计时器来控制场景跳转, 5秒后跳转
        timer += Time.deltaTime;
        if (timer > 5)
        {
            operation.allowSceneActivation = true;
        }
    }
}

到了这里,关于Unity-场景的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • Unity基础 场景概念以及场景切换

    Unity基础 场景概念以及场景切换

    在Unity中,场景可以理解为一种游戏关卡。它是一个包含了游戏中各种元素的环境,如游戏物体、光照、相机、音频等等。每个场景都可以通过Unity提供的一系列方法和变量进行操作和管理。 在Unity中,场景有以下特点: 可以包含多个游戏物体。 可以包含多个光源和相机。

    2024年02月06日
    浏览(14)
  • Unity --- 场景/场景管理类 与 异步场景加载法

    Unity --- 场景/场景管理类 与 异步场景加载法

    1.一个游戏是由很多的场景组成的,比如游戏的开始页面,战斗场景,商店页面...等等,这些都是一个个游戏场景 或者比如说:一进入游戏,你一开始来到的是新手村这个场景,出了新手村后来到的就是荒野场景,过来荒野场景后来到的就是大城市场景.....  一个游戏是由很

    2024年02月04日
    浏览(16)
  • Unity 多场景/大场景加载解决方法

    Unity 多场景/大场景加载解决方法

    记录一下最近学习的新的知识,关于解决多场景加载的问题,方便下次及时的巩固复习。 此次使用的是 Unity的异步加载 来实现功能。 将一个大场景的地图分成好几个场景,利用玩家的距离来判断加载哪个场景和卸载哪个场景。 利用玩家的自身距离和预加载场景的距离判断

    2024年02月04日
    浏览(9)
  • Unity 场景烘培 ——unity灯光和设置天空盒(二)

    Unity 场景烘培 ——unity灯光和设置天空盒(二)

    提示:文章有错误的地方,还望诸位大神指出。 接着前面一章继续: link 学习必须一步一步来,不要着急忙慌,拿起就开干。 下面我们先学习了解unity的灯光(light),学习了解了灯光,才能使用多种灯光相互配合才能达到我们想要的效果。 (摘录:大佬链接: link unity中的灯

    2024年02月03日
    浏览(17)
  • Unity 场景烘培 ——怎么理解场景烘培?(一)

    Unity 场景烘培 ——怎么理解场景烘培?(一)

    目录 前言: 一、什么是场景渲染烘培? 二、为什么要对场景渲染烘培? 总结: 场景烘培渲染这块以前接触很少,因为要么有专门的同事搞这块,要么就是开发2d游戏(完全不需要)。 现在换了一家小公司,自己需要独立做这件事的时候,问题就来了。(此前也烘培了几个

    2024年02月04日
    浏览(13)
  • Unity界面介绍:场景视图

    Unity界面介绍:场景视图

    场景视图是创建游戏的主要场所。用户将使用场景视图来选择和定位环境物体,角色物体,摄像机,敌人角色等其它的游戏物体。熟悉和操作场景视图中的物体是创建游戏中的重要步骤。为此,Unity也提供了一些快捷键来提高操作效率。 场景视图浏览: 按住鼠标右键进入飞行

    2024年02月01日
    浏览(15)
  • Unity基础 异步加载场景

    异步加载场景的基本概念 在Unity中,异步加载场景是指在游戏运行时,将场景中的资源分批次加载到内存中,以便提高游戏的加载速度和性能。通常情况下,加载场景的过程会在主线程中执行,而异步加载场景可以在后台线程中执行,从而不会阻塞主线程。 要使用异步加载首

    2024年02月12日
    浏览(11)
  • Unity实现异步加载场景

    Unity实现异步加载场景

    一:创建UGUI 首先我们在LoginCanvas登入面板下面创建一个Panel,取名为LoadScreen,再在loadScreen下面创建一个Image组件,放置背景图片,然后我们再在lpadScreen下面继续创建一个Slider,这个是用来加载进度条的,我们改名为LoadSlider。我们为什么需要改名字,为了见名之一,不至于过段时

    2024年02月12日
    浏览(10)
  • Unity异步加载场景

    Unity异步加载场景

    当我们的场景资源过大时,为了能够不影响玩家体验,就会使用异步加载。 官方文档:AsyncOperation - Unity 脚本 API AsyncOperation的API allowSceneActivation 允许在场景准备就绪后立即激活场景。 isDone 操作是否已完成?(只读) priority Priority 允许您调整执行异步操作调用的顺序。 pro

    2024年02月02日
    浏览(12)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包