unity加载场景和切换场景

【unity实用技能】unity编辑器工具之加载预制(Prefab)和场景(Scene) 在unity里做打包或者帮策划美术做工具的时候经常会需要把Prefab拉出来或者场景打开做检验工作 其实这个在上一篇在ui打包的文章里有提到,不过重点不同,上篇重点是打包,这篇的重点是把里面的一个小知识点拉出来讲一讲 接下来就讲讲两者分别怎么做 一、把预制Prefab拉出来 就是像我们平时把预制拉到这个地方 1.首先是获取你选中的那个Prefab(如果是有其他 阅读详情

因为公司没什么大牛,所以很多东西只能自己摸索。

好像网上加载场景和切换场景有2种主流的方式

1)用Scenemanager加载和切换scene

2)将scene做成prefab,加载和切换prefab

我用的是第二种方式

1)将preafab打包成assetbundle

代码如下 :

// Builds an asset bundle from the selected objects in the project view.
// to build the Asset Bundle

using UnityEngine;
using UnityEditor;



public class ExportAssetBundles {

	[MenuItem("Assets/Build AssetBundle From Selection - Track dependencies -Android")]
	static void ExportResource () {
		// Bring up save panel
		string path = EditorUtility.SaveFilePanel ("Save Resource", "", "New Resource", "unity3d");
		if (path.Length != 0) {
			// Build the resource file from the active selection.
			Object[] selection = Selection.GetFiltered(typeof(Object), SelectionMode.DeepAssets);
			BuildPipeline.BuildAssetBundle(Selection.activeObject, selection, path, 
				BuildAssetBundleOptions.CollectDependencies | BuildAssetBundleOptions.CompleteAssets,BuildTarget.Android);
			Selection.objects = selection;
		}
	}
}

当然也可以用添加AssetBundle Name 的方式来统一打包。

不建议用第一种方式,好像会把依赖的资源全打进去,而且官方已经放弃

2)加载和切换

代码如下:
  

  IEnumerator CoChangeScene(GameScene _scene )
    {
        //销毁当前场景
        for(int i=0;i<sce_scene.Length;i++)
        {
            
            if(sce_scene[i]!=null&&i!=(int)_scene)
            {
                
                DestroyImmediate(sce_scene[i]);
                sce_scene[i]=null;

            }
        }

        Resources.UnloadUnusedAssets();
        GC.Collect();
        if ((pf_scene [(int)_scene]) != null) {
            
                sce_scene [(int)_scene] = Instantiate (pf_scene [(int)_scene]) as GameObject;

        } else {

            yield return  StartCoroutine (StResource.GetInstance ().CoLoadScene (_scene));
    

            sce_scene [(int)_scene] = Instantiate (StResource.GetInstance ().GetScene (_scene)) as GameObject;


        }

        sce_scene[(int)_scene].transform.SetParent(this.transform.parent.transform);
        sce_scene[(int)_scene].transform.localPosition=new Vector3(0,0,0);
        sce_scene[(int)_scene].transform.localScale=new Vector3(1,1,1);
        this.transform.SetAsLastSibling();


        StResource.GetInstance().UnLoadScene( _scene,false);


        yield return null;
        
    }

这就是我的切换逻辑了,很简陋,但也勉强能用,

将unity场景文件加载到winform界面,窗体最大化和窗口化切换时解决场景自适应问题。 参考的代码,有部分更改: using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Runtime.InteropServices; using System.Text; using System.Threading; using System.Threading.Tasks; using System.Windows.Forms; namespac 阅读详情

相关推荐

在Unity中切换场景

在Unity中切换多个场景通常涉及到场景管理和加载的复杂性。总之,Unity 提供了多种场景切换的方法,开发者可以根据具体需求选择合适的方式来实现。

2301_78358001的博客 1327

Unity的使用(四):预制体,创建地形和地形导航

本章介绍了怎么导入资源到Unity中,怎么创建并并用预制体,并且将介绍怎么创建一个游戏场景中的地形,用创建的地形生成导航网格。

xiegy_august的博客 4577

unity人物场景切换到指定坐标

如何切换人物到指定坐标呢 首先要确保你有加入如下代码:         public Gameobject  Play     //(在Inspector拖入人物组件) DontDestroyOnLoad (Player);//防止人物在切换场景的时候被销毁 然后加入如下代码 public GameObject effectToPlay; //Particle effect

qq_25385855的博客 9315

unity-大地图分块加载研究

title: unity-大地图分块加载研究 categories: Unity3d tags: [unity, 大地图, 分块, lightmap] date: 2018-12-12 11:22:18 comments: false unity-大地图分块加载研究 思路及效果 每个chunk场景独自烘焙自己的光照图 chunk场景中go导出为prefab 打包 将每个...

. 1万+

三步搞定Unity异步加载场景

加载场景的功能想必在游戏开发中是十分常见的了。如果想从一个场景过渡到另一个包含资源较多的场景,必然需要等待一段时间,这时候就需要有一个滑动条来动态显示加载进度了。本案例提到三个场景:A(原始的场景)、B(加载场景)和C(想要切换到的场景)。当然,很多时候B场景是和A场景是合并的。 1.先写一个全局类,记录当前要切换场景的名称 public class Globe { public...

qq_35037137的博客 4882

flutter集成unity不同场景模块切换

【代码】flutter集成unity不同场景模块切换。

2301_79678253的博客 1337

Unity 保存场景物体修改到Prefab

有时候会在场景中修改大量的prefab的实例物体,然后又需要同步到prefab上,这个脚本就非常有用了: using UnityEngine; using UnityEditor; public class EditorHelp { [MenuItem("Tools/自动保存修改到Prefab", false, 0)] static void AutoSaveGameObject...

eevee_1的博客 2695

【Unity实战】切换场景加载进度和如何在后台异步加载具有庞大世界的游戏场景,实现无缝衔接(附项目源码)

观看本文后,我的希望你对unity场景管理有更好的理解,并且能够制作具有巨大世界的游戏并无缝加载游戏的各个部分在后台运行而不中断游戏玩法,这种方法非常灵活,而且很容易实现,因此无论您是制作小型平台游戏还是大型开放世界游戏,它应该都适用于两者,准备好让我们开始吧!

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 4685

《Unity开发实战》——1.5节把Unity中创建的资源另存为Prefab

本节书摘来自华章社区《Unity开发实战》一书中的第1章,第1.5节把Unity中创建的资源另存为Prefab,作者 (爱尔兰)Matt Smith (巴西)Chico Queiroz,更多章节内容可以访问云栖社区“华章社区”公众号查看 1.5 把Unity中创建的资源另存为Prefab在Unity中很容易就能创建基础几何对象,本节中,使用Unity的资...

weixin_33859504的博客 1145

【Unity每日一记】SceneManager场景资源动态加载

场景异步加载 和 资源异步加载 一样。

秩沅 5596

Tube-based MPC完全指南:RCI集合构造与Matlab实现

模型预测控制(MPC)在实际工程中常因模型失配和外部扰动导致硬约束被突破,而鲁棒控制中的Tube-based MPC通过将单条预测轨迹扩展为“管道”集合,为不确定性提供了严格的安全边界。其核心在于利用鲁棒控制不变集(RCI)离线构造安全域,再结合在线标称MPC与反馈校正实现约束的硬保证。针对非线性系统,利普希茨条件为等效扰动的放大和RCI的构造提供了理论基础,使得算法既能保留非线性描述,又不牺牲在线计算效率。该方法适用于带扰动和参数漂移的机械系统、过程控制及嵌入式控制场景。本文以摩擦力非线性系统为例,从RC

weixin_32642109的博客 214

【Unity 场景切换和管理插件】Turbo Switch PRO 通过异步加载、增量加载、按需加载等技术,大大提高了场景切换的效率,减少了卡顿和延迟

Turbo Switch PRO 是一个针对 Unity 开发者设计的高效场景切换和管理插件,主要用于优化场景加载流程,提升游戏的性能和开发效率。它提供了一系列功能,帮助开发者简化和加速场景切换过程,同时确保游戏的流畅性和用户体验。

2403_88403568的博客 846

微信小程序(云开发) - 实现微信小程序拼团功能+前后台源码/数据库设计,开团参团、自动成团、微信分享链接URL参与拼团、组团人数/倒计时/实时数据、设置拼团人数限制等(拼团退款处理逻辑、订单同步等)

实现微信小程序云开发拼团功能,云开发小程序--微信拼团设计实现,微信小程序实现秒杀、拼团等效果,微信小程序云开发拼团源码完整版 包含前后台和数据库,拼团商城小程序开发,分销,拼团,社群团购,微信小程序—判断参团人数(设置拼团剩余人数数组)拼多多拼团小程序开发,微信云开发教程怎么实现微信小程序云开发拼团功能?云开发如何实现拼团,拼团小程序怎么弄,微信小程序案例:拼团模块,需要朋友助力,详细源码demo示例,如何做拼团功能,云开发小程序如何做拼团功能,外卖电商拼团,仿拼多多拼团,拼团后退款怎么办,拼团后订单管理

🏆 前端领域优质创作者 4627

Unity学习笔记05-场景切换和加载

场景,顾名思义就是我们在游戏中所看到的物品、建筑、人物、背景、声音、特效等,基本上和我们玩游戏时所看到的游戏“场景”是同一个概念。Unity3D中,“场景”是一个视图,我们通过“场景”这个视图,来编辑、布置游戏中玩家所能见到的图像和声音。在Unity开发界面时,可以使用双击场景文件的方式切换场景(这样做会更改加载的场景),也可以将场景文件拖到层级界面进行加载场景(这样做可以添加场景)在Unity中,场景是可以叠加的,比如关卡场景和UI场景可以同时加载,在切换关卡时只需要更改关卡场景就可以改变关卡。

qq_25749667的博客 2106

GPU 资源池化云平台解决方案​

定义与特点Kubernetes是一个开源的容器编排和管理平台,通过提供自动化和声明式的方式来部署、扩展、维护和运行应用程序。它支持跨多个主机和集群部署容器,确保应用程序的高可用性和可扩展性。Kubernetes提供了丰富的功能和插件,允许用户根据自己的需求进行定制和扩展。架构与组件控制平面(Control Plane):负责集群的决策(如调度)和集群状态的检测与响应。

ZhangJiqun&191cm&85kg 1159

在 ABAP 平台上搭建 OAuth 2.0 Server:架构、流程、权限与落地实战

摘要:本文为SAP ABAP开发人员提供将ABAP平台配置为OAuth 2.0授权服务器的实战指南。重点介绍两种授权流程(授权码和SAML Bearer)的实现方案,包括核心事务配置(SOAUTH2/SAML2)、授权对象(S_SCOPE)管理以及端点交互规范。通过具体配置清单和三类典型集成场景(第三方Web应用访问OData、企业集成平台调用、BTP应用对接)的落地示例,帮助读者快速构建安全的OAuth 2.0服务架构。文档强调SSL/TLS基础安全、scope最小授权原则以及授权与令牌端点的标准交互模式

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 307

unity多个场景切换保存数据_unity 简易场景切换

场景跳转是游戏里面不可缺少的内容,这里写写我这个小白遇到的问题。场景资源比较大,同步切换场景不现实。场景一般比较多,都加到scenesin build也不太现实。这里将初始场景和过渡场景加到scenesin build,一般而言是login和loading场景,将其他场景打成uab的包。这里忽略其他功能,单纯来说场景跳转。场景同步跳转SceneManager.LoadScene("loadin...

weixin_39899691的博客 2941

[PCIe5.0] 5.3.1.4.2 D3Cold State

主电源(Vcc)完全断开,仅保留极少量辅助电源(Vaux)用于维持基本唤醒功能设备功能完全关闭,所有寄存器状态丢失(除非有特殊存储)需要完全重新初始化才能恢复工作比D3Hot状态功耗更低,但唤醒延迟更长。

系统固件工程师 452

Unity 多场景切换 EditorSceneManager.LoadScene()

方法:加载场景 引用包:using UnityEditor.SceneManagement; 通过场景名或场景索引加载场景:EditorSceneManager.LoadScene(索引值/场景名称); 异步加载场景:EditorSceneManager.LoadSceneAsync(索引值/场景名称); 步骤: unity工具对场景切换的预览时有小bug:切换场景的物体没有光照效果,不过发布后...

喵毛的博客 6700

【GameFramework框架内置模块】6、实体(Entity)

实体Entity就是一个实体的基本单元,类似于Unity的GameObject对象本体,然后这个本体上面附加其他各种各样组件,才能实现各种各样的功能。一般需要在游戏运行时动态加载的游戏对象,比如怪物、武器、子弹、特效,都需要给这个物体挂载一个实体Entity,这样的话就可以方便的对实例出来的对象进行管理。下面就来看一下如何使用吧。

优快云博客专家,Unity3D高级软件工程师,《Unity 3D从入门到实战》作者。 3136

YOLOv9分割改进 ,YOLOv9分割改进主干网络为华为EfficientNet,助力涨点

EfficientNet论文中研究了卷积网络的缩放和,并证明对深度,宽度和分辨率复合缩放的重要性,因此精度和效率更好。为了阐述相关的原理,我们提出了简单有效的复合缩放方法,使得模型缩放具有一定设计准则,同时兼顾了模型的效率。我下文将 YOLOv9 分割模型改进主干网络为 EfficientNet 融合网络结构。论文地址代码地址下文都是手把手教程,跟着操作即可添加成功把环境配置好,数据集处理好,训练基本能成功,创作不易,请帮忙点一个爱心,关注我,带你不挂科!

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 937

Unity场景切换(同步切换,异步切换)

Unity场景切换(同步切换,异步切换) 在游戏中终会会有场景的切换,因此在我们做完场景UI后或者是在对游戏完成后,场景的切换(从选关菜单进入到游戏界面,反之亦然)都会用到场景切换 SceneManager.LoadScene(); 同步加载,用于切换场景(非异步) 例如在我们需要去从选关菜单进入到游戏界面时既可以这个方法,在此方法的参数中,需要加入"String" ,String为所需加载场景的名称。当然在此之前我们需要把两个场景放入一个 Building Setting中(在File下,也可以通过快捷键

qq_56403015的博客 8596

[QMT量化交易小白入门]-七十九、增加标的后,五年回测收益率达到了2493%

本专栏主要是介绍QMT的基础用法,常见函数,写策略的方法,也会分享一些量化交易的思路,大概会写100篇左右。QMT的相关资料较少,在使用过程中不断的摸索,遇到了一些问题,记录下来和大家一起沟通,共同进步。

木头大左的博客 1573

Unity 场景异步加载(加载界面的实现)

前言: 玩游戏最讨厌的是什么呢?当然是游戏加载界面啦 但是你知道吗,加载界面在游戏制作中是不可或缺的,它可以使我们的场景完全加载完毕后再进入游戏,确保用户不会出现加载卡顿的情况。 如何实现一个简易的加载界面呢?来跟我学习一下吧 效果图 UI创建: 首先创建一个开始界面,为Button按钮添加事件来完成场景的转换: 然后创建一个加载界面的UI,首先需要的呢就是一个游戏进度条,可以直接使用Slider来完成创建,其UI层级关系为: 其元素作用为: Background:即整个进度条的背景为棕色 .

xinzhilinger的博客 2万+

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Unity程序开发框架——场景切换模块

场景切换模块:提供场景切换的公共接口。提供同步切换场景,异步切换场景并使用事件中心模块EventCenter提供加载进度信息。 ScenesMgr脚本 /// <summary> /// 场景切换模块 /// 知识点 /// 1.场景异步加载 /// 2.协程 /// 3.委托 /// </summary> public class ScenesMgr : BaseManager<ScenesMgr> { /// <summary> /// 切

yxl219的专栏 1158

Unity笔记——异步加载场景

1.什么是异步加载场景?异步加载场景:顾名思义就是不影响当前游戏场景的运行的前提下加载新的场景。其方法如下:第一种加载方案:Application.LoadLevelAsync("LoadScene");//销毁原场景第二种加载方案:Application.LoadLevelAdditiveAsync("loadScene");//不销毁原场景以上两种方案已经过时目前本文所提及的是第三种方案:Un...

p_base的博客 4033
上一篇: unity tier setting
下一篇: IntelliJ Idea 常用快捷键
write_the_code
博客等级 码龄12年 12粉丝 17原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值