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

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

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



前言

记录一下最近学习的新的知识,关于解决多场景加载的问题,方便下次及时的巩固复习。

此次使用的是Unity的异步加载来实现功能。


一、通过距离判断实现加载场景

1.1.原理:

将一个大场景的地图分成好几个场景,利用玩家的距离来判断加载哪个场景和卸载哪个场景。
Unity 多场景/大场景加载解决方法

1.2.范围检测

利用玩家的自身距离和预加载场景的距离判断

代码如下:

    void DistanceCheck()
    {
        if (Vector3.Distance(player.position, transform.position) < loadRange)
        {
            LoadScene();
        }
        else
        {
            UnLoadScene();
        }      
    }

1.3.方法弊端

检测范围如果过大,临近很多的场景都会被加载出来。

二、通过触发检测实现加载场景

2.1.原理

将预加载场景处创建空的物体碰撞体,当玩家的碰撞器与其碰撞时,场景加载。如下图所示:
Unity 多场景/大场景加载解决方法
Unity 多场景/大场景加载解决方法

2.2.碰撞检测

代码如下:

    private void OnTriggerEnter(Collider other)
    {
        if (other.CompareTag("Player"))
        {
            shouldLoad = true;
        }
    }

    private void OnTriggerExit(Collider other)
    {
        if (other.CompareTag("Player"))
        {
            shouldLoad = false;
        }
    }

    void TriggerCheck()
    {
        if (shouldLoad)
        {
            LoadScene();
        }
        else
        {
            UnLoadScene();
        }
    }

2.3.方法弊端

大型项目内碰撞检测复杂,玩家容易与别的物体发生碰撞。


总结

以上就是今天学到的内容,本文仅仅简单介绍了大场景、多场景加载的两种方法思路。文章来源地址https://www.toymoban.com/news/detail-445120.html


完整代码工程示例

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

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

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

相关文章

  • Unity场景进度条加载

    首先,创建Canvas,在Canvas中创建一个Button和一个Panel Button:点击之后进入场景加载 Panel:场景加载面板  其次,在panel当中,我们在创建slider和Text Text:用来描述进度条的百分比,所以text可有可无,看自己意愿   slider :就是我们的进度条了 Panel建好后,将SetActive设置为false,

    2023年04月09日
    浏览(49)
  • Unity基础 异步加载场景

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

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

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

    2024年02月12日
    浏览(38)
  • unity加载场景后光照变暗

    关于unity加载场景后光照变暗的问题 最近在做场景的加载功能时,发现加载新的场景后整个场景的光照都变暗,但是如果是直接运行当前场景的话就不会,后来才发现原来是选择的光照是realtime实时光照,在一开始的场景时,它的灯光是已经渲染好了,但重新加载的时候灯光

    2024年02月15日
    浏览(52)
  • Unity | 以附加模式加载场景,实现多场景叠加及注意事项

    Unity 允许多场景叠加,这种叠加包括编辑模式及运行模式 新建两个简单的场景,SampleScene 和 AdditiveScene,设置不同的天空盒及平行光源颜色 SampleScene AdditiveScene 2.1 添加场景 在编辑器中的场景资源右键选择 Open Scene Additive,或者直接拖拽场景资源到层级视图,都可以实现多场景

    2024年01月19日
    浏览(44)
  • 【Unity每日一记】SceneManager场景资源动态加载

    👨‍💻个人主页 :@元宇宙-秩沅 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 秩沅 原创 👨‍💻 收录于专栏 : unity每日一记 ⭐【软件设计师高频考点暴击】 ⭐【Unityc#专题篇】之c#系统化大礼包】 ⭐【unity数据持久化】数据管理类_PlayerPrfs ⭐【u

    2024年02月12日
    浏览(44)
  • 【unity每日一记】资源和场景加载图文详解

    👨‍💻个人主页 :@元宇宙-秩沅 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 秩沅 原创 👨‍💻 收录于专栏 : unity每日一记 ⭐【Unityc#专题篇】之c#系统化大礼包】 ⭐【unity数据持久化】数据管理类_PlayerPrfs ⭐【unity本站最全系列】unity常用API大全

    2024年02月10日
    浏览(44)
  • unity主场景设置、场景切换、全屏设置、背景音乐设置(场景一加载就开始播放)

    一般情况下我们的场景会有挺多的,这时候我们进入游戏就会有问题了,unity应该先加载哪一个呢? unity给了我们几种方案,其中一种是在 文件——生成设置 里面更改游戏场景的优先级,其中0是最高优先级(当然,必须得先把场景全都加进build中,要不如果你在外部跳转没有

    2024年02月10日
    浏览(54)
  • Mac vscode unity mono无法正常加载,c#代码不能正常补全的解决方法

    初学unity,用Mac vscode来开发,遇见了不能正常补全代码的问题。能补全代码但是补全的不是unity的代码。 终于解决了。 首先最新版的net.sdk 和 Mono (Stable channel)一定安装好 https://www.mono-project.com/download/stable/ https://learn.microsoft.com/ja-jp/dotnet/core/install/macos vscode里边该有的扩展插件

    2024年02月02日
    浏览(44)
  • Unity AssetBundle批量打包、加载(场景、Prefab)完整流程

    1、文章介绍 2、具体思路和写法         (1)AB包的打包         (2)AB包的加载         (3)AB包卸载 3、结语 本篇博客主要起记录和学习作用,简单的介绍一下AB包批量的打包和加载AB包的方式,若各位同学有幸看到本篇博客,希望能够对你有所帮助。 (1)

    2024年02月04日
    浏览(43)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包