unity 商业游戏底层资源管理加载框架——个人学习记录(1)

程序集

unity2017.3之后可以自定义程序集,方便解耦,项目中一些底层的东西可以打包以方便跨平台使用,新建test10脚本如下图,该dll生成目录为(2018之后还会默认生成一些dll) :Library\ScriptAssemblies。

右键Create-AssemblyDefinition  可以创建自定义程序集,命名为Test1,你会发现先前创建的test10.cs会属于新创建的test1.dll,之前默认的dll也不见了,也就是说,新建的 dll会包含同级目录以及子目录中的脚本(不会包含同级文件夹中的脚本,总的来说就是就近原则,以文件夹区分)。

没有引用一个库(using),是无法调用其中的脚本的,当自定义程序集想要引用其他自定义的程序集时,需要添加依赖,这样我们可以自定义程序集之间的依赖关系。最终生成的dll的名字由监测面板上名字确定,建议两个名字一致,避免误会。

      

而默认程序集(Assembly-CSharp.dll)是自动依赖所有自定义的程序集,不需手动添加依赖。(1)高版本会出现unity References-test asseemblies,如果不想打包到项目中就可以:把所有测试的脚本放到同一个文件夹下共用一个程序集,勾选之后就不会打包到项目中。(2)allow unsafe code说的是不安全代码,如果C#中使用其他语言的话建议勾选。(3)平台的话建议anyPlateform。如图:

  

 

Unity商业游戏底层资源加载框架的相关源码可以通过Unity官方提供的AssetBundle类来实现。AssetBundle类是Unity中用于打包和加载资源的类,它可以将游戏中的各种资源(例如场景、模型、纹理、音频等)打包为一个个独立的AssetBundle文件,然后在运行时动态加载这些文件。 以下是实现资源加载的简单示例代码: ```csharp using UnityEngine; public class ResourceManager : MonoBehaviour { // 资源加载路径 public string bundleURL; // 资源名称 public string assetName; // 加载完成后的资源对象 private GameObject loadedAsset; void Start() { // 启动异步加载资源的协程 StartCoroutine(LoadAssetBundle()); } // 异步加载资源的协程 IEnumerator LoadAssetBundle() { // 使用UnityWebRequest从指定URL加载AssetBundle文件 using (var request = UnityEngine.Networking.UnityWebRequestAssetBundle.GetAssetBundle(bundleURL)) { yield return request.SendWebRequest(); // 加载AssetBundle文件 var bundle = DownloadHandlerAssetBundle.GetContent(request); // 从AssetBundle中异步加载资源 var assetRequest = bundle.LoadAssetAsync<GameObject>(assetName); yield return assetRequest; // 获取加载完成的资源对象 loadedAsset = assetRequest.asset as GameObject; } // 使用加载完成的资源对象进行后续操作 if (loadedAsset != null) { Instantiate(loadedAsset, transform.position, Quaternion.identity); } } } ``` 以上代码在Start方法中启动了一个协程,通过UnityWebRequest异步地从指定URL加载AssetBundle文件,然后使用AssetBundle.LoadAssetAsync异步地加载指定名称的资源,最后获取加载完成的资源对象进行后续操作。 注意:上述代码仅为示例,具体的资源加载逻辑和流程可能因项目需求而异,需要根据实际情况进行相应的修改和扩展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值