Unity Addressables学习笔记(3)---加载远程场景Scenes

news/2024/11/30 15:49:49/

前言

Unity Addressables学习笔记—汇总

正文

1.创建一个新场景

我是创建在Resources/Scenes目录下,如图:
在这里插入图片描述

2.为场景创建一个Addressables的Group

Game1Group就是我新创建的一个Group用来存放场景1的所有资源,分组的配置跟Remote一样,都是远程的,加载地址是我本地启动的web服务器地址,URL里WebGL那个目录也不是必须的,根据自己实际的来。
在这里插入图片描述

3.把新场景和场景里用到的资源全部拖入到Game1Group里

上边的图就是拖完的状态。

4.在初始化的场景里添加代码,用Addressables的方式加载新的场景Game1.

我是在最开始的场景里图片1那个开始按钮上加了个点击事件去触发加载Game1这个场景的

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.AddressableAssets;
using UnityEngine.ResourceManagement.AsyncOperations;
using UnityEngine.UI;public class GameController : MonoBehaviour
{private Sprite sprite;public Button btn;public List<string> list;void Start(){//Addressables.Instantiate("Play Button").Result.transform.position = new Vector3(2f, 2f);foreach (string name in list){Addressables.LoadAssetAsync<GameObject>(name).Completed += SpriteLoadedObj;}//PlayerPrefs.DeleteKey(Addressables.kAddressablesRuntimeDataPath);Addressables.LoadAssetAsync<Sprite>("Play Button Img").Completed += SpriteLoaded;}private void SpriteLoaded(AsyncOperationHandle<Sprite> obj){switch (obj.Status){case AsyncOperationStatus.Succeeded:sprite = obj.Result;Debug.Log(sprite);btn.image.sprite = sprite;break;case AsyncOperationStatus.Failed:Debug.LogError("Sprite load failed.");break;default://case AsyncOperationStatus.None:break;}}private void SpriteLoadedObj(AsyncOperationHandle<GameObject> obj){switch (obj.Status){case AsyncOperationStatus.Succeeded:GameObject a = Instantiate(obj.Result);a.transform.position = new Vector2(2f, 2f);break;case AsyncOperationStatus.Failed:Debug.LogError("Sprite load failed.");break;default://case AsyncOperationStatus.None:break;}}// Update is called once per framevoid Update(){}public void onClick(){Addressables.LoadSceneAsync("Game1");}
}

5.场景1:用Addressables创建一个对象,在Hierarchy里拖进去一个对象,一共2个对象

下边是场景1拖进去的一个对象
在这里插入图片描述
下边是GameObject上随便绑定一个C#脚本再去创建一个对象

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.AddressableAssets;
using UnityEngine.ResourceManagement.AsyncOperations;public class Game1Controller : MonoBehaviour
{// Start is called before the first frame updatevoid Start(){Addressables.LoadAssetAsync<GameObject>("Layer 10").Completed += SpriteLoadedObj;}// Update is called once per frameprivate void SpriteLoadedObj(AsyncOperationHandle<GameObject> obj){switch (obj.Status){case AsyncOperationStatus.Succeeded:GameObject a = Instantiate(obj.Result);a.transform.position = new Vector2(2f, 2f);break;case AsyncOperationStatus.Failed:Debug.LogError("Sprite load failed.");break;default://case AsyncOperationStatus.None:break;}}
}

6.重点:是用Addressables加载远程场景,所以这个场景不要在build的时候一起打包进去,下图只有一个初始场景没有Game1场景。

在这里插入图片描述

7.用Addressables打包,然后把ServerData下的文件都拷贝到Web服务器上,不知道说什么看前2个笔记。然后直接Unity Build And Run,效果图:

进入初始化场景:

在这里插入图片描述

点击小绿按钮,进入场景2(例子里的场景名:Game1),2个对象一个是Game1场景里拖到Hierarchy里的预制体,一个是用C#代码通过Addressables创建的对象,都出来了!

在这里插入图片描述


http://www.ppmy.cn/news/183421.html

相关文章

RocketMQ消息消费

RocketMQ消息消费示例代码&#xff1a; public static void main(String[] args) throws InterruptedException, MQClientException {DefaultMQPushConsumer consumer new DefaultMQPushConsumer("please_rename_unique_group_name_4");consumer.setNamesrvAddr(&qu…

Java官方笔记5数字和字符串

Numbers Number的子类&#xff1a; 另外还有BigDecimal和BigInteger&#xff0c;用于高精度计算&#xff0c;AtomicInteger和AtomicLong用于多线程应用。 我们有时候需要用包装类而非基本数据类型&#xff0c;理由如下&#xff1a; 方法入参类型为Object&#xff0c;只能传入对…

大数据:数据表操作,分区表,分桶表,修改表,array,map, struct

大数据&#xff1a;数据表操作&#xff0c;分区表 2022找工作是学历、能力和运气的超强结合体&#xff0c;遇到寒冬&#xff0c;大厂不招人&#xff0c;可能很多算法学生都得去找开发&#xff0c;测开 测开的话&#xff0c;你就得学数据库&#xff0c;sql&#xff0c;oracle&a…

有哪款戴尔笔记本适合学计算机专业,学生用笔记本哪款好? 2018适合大学生用的笔记本...

谁的青春不迷茫&#xff0c;为学业、为爱情、为友情。又是一年毕业季&#xff0c;又是一年开学季&#xff0c;相信拿到录取通知书的学生们开始为选择什么电脑而迷茫了。电子产品价格昂贵&#xff0c;如果需要买电脑也确实需要下些功夫。运行速度、质感、散热、重量、售价、所学…

学计算机的需要配哪种笔记本,微软哪一款笔记本电脑办公用性价比高?

微软在发布第一代Surface电脑时应该想不到它会变成今天的样子。2012年在纽约时代广场的快闪店我买到了和Windows 8一起发布的第一代Surface&#xff0c;那是搭载ARM芯片的平板电脑&#xff0c;虽然工业设计惊艳&#xff0c;但实际市场反响并不算好。直到2015年Surface Pro 4的上…

打游戏最快的计算机,打游戏最好的笔记本电脑是哪一款-散热迅速运行流畅笔记本电脑大全...

数码市场上游戏笔记本电脑品牌数不胜数&#xff0c;大家在玩打游戏的笔记本电脑时也会货币三家呢&#xff1f;针对市面上层出不穷的游戏笔记本电脑纠结哪款更好用呢&#xff1f;散热迅速运行流畅是非常必要的考虑因素&#xff0c;小编为大家带来打游戏最好的笔记本电脑推荐&…

适合php编程的笔记本电脑,做web前端,推荐一款笔记本电脑。

4000-5000的就行。 这个问题已被关闭&#xff0c;原因&#xff1a;非技术提问的讨论型问题 回复内容&#xff1a; 4000-5000的就行。 华硕笔记本足够优秀的了 你买的华硕什么型号的 2.7GHz 处理器 128 GB 存储容量 2.7GHz 双核 Intel Core i5 处理器 Turbo Boost 高达 3.1GHz 8…

学计算机苹果电脑哪款好,学生超值电脑汇总!适合学生的5款顶级笔记本电脑,您喜欢哪款?...

原标题&#xff1a;学生超值电脑汇总&#xff01;适合学生的5款顶级笔记本电脑&#xff0c;您喜欢哪款&#xff1f; 与几年前不同&#xff0c;笔记本电脑现在是大学或大学学生的必备工具。但是&#xff0c;年龄较小的孩子也需要通过网络访问进行学习&#xff0c;因此&#xff0…