当前位置: 首页 > news >正文

Unity AddressablesLoad加载

using DG.Tweening;
using System.Collections;
using System.Collections.Generic;
using UIFramework;
using UnityEngine;
using UnityEngine.AddressableAssets;
using UnityEngine.ResourceManagement.AsyncOperations;

public static class AddressablesLoad
{
//加载模式
public static async void LoadAndInstantiatePrefab(string key)
{
// 同步加载预制体资源
GameObject prefab = LoadPrefabSync(key);

    // 如果预制体加载成功,将其作为子对象添加到当前游戏对象下if (prefab != null){Debug.Log("LoadAndInstantiatePrefabkey:" + key);实例化预制体到指定的位置Transform parent = UIRoot.Get<PanelC_Main>()._racemode;GameObject instance = Object.Instantiate(prefab, parent);Debug.Log("parent:" + parent.name);prefab.transform.localPosition = Vector3.zero; // 可以根据需要调整位置UIRoot.Get<PanelC_Main>().ShowHomePage(false);}
}
static GameObject LoadPrefabSync(string key)
{// 使用Addressables.LoadAssetAsync<GameObject>进行同步加载AsyncOperationHandle<GameObject> opHandle = Addressables.LoadAssetAsync<GameObject>(key);// 等待加载完成opHandle.WaitForCompletion();// 检查是否有错误发生if (opHandle.Status == AsyncOperationStatus.Succeeded){// 加载成功,返回预制体资源return opHandle.Result;}else{// 打印错误日志Debug.LogError($"Failed to load prefab with key: {key}. Error: {opHandle.OperationException}");return null;}
}
//卸载预制体资源 然后销毁预制体实例
public static void DestroyPrefab(string prefabKey)
{查找预制体实例并销毁Transform parent = UIRoot.Get<PanelC_Main>()._racemode;Debug.Log("parent:" + parent.name + "prefabKey:" + prefabKey);GameObject prefabInstance = parent.transform.Find(prefabKey + "(Clone)")?.gameObject;Debug.Log("DestroyPrefab:" + prefabInstance.name);if (prefabInstance != null){Object.Destroy(prefabInstance); // 销毁预制体实例}
}

}


http://www.mrgr.cn/news/24300.html

相关文章:

  • 安全帽识别摄像机
  • Java 学习中使用文件、网络连接等资源时,未正确关闭资源,导致资源泄漏应该怎么办?
  • HC-SR04超声波传感器详解(STM32)
  • 缺乏大模型经验,还有机会吗?
  • 低代码平台与统一待办:提升工作效率的新趋势
  • 一个Android App最少有几个线程?实现多线程的方式有哪些?
  • k8s防火墙networkPolicy,其他规则和端口规则ports的匹配顺序,进站策略ingress和出站策略egress中,ports规则的常用方法。
  • oracle数据库安装和配置:详细教程
  • python轻量级异步定时任务
  • QT QPrinter无弹窗后台打印
  • 构建高效 Python Web API:RESTful 设计与 GraphQL 实践
  • iOS 知识点记录
  • 海康威视相机在QTcreate上的使用教程
  • 超声波 HC-SR04 的使用 CubeMx + STM32F103C8T6 【含两个】
  • 油耳用什么掏耳朵比较好?质量最好的可视挖耳勺推荐
  • 非标独立设计选型--二十二--减速机选型计算
  • uniapp中基于vue3实现输入验证码功能
  • 问题:vite首次加载慢
  • OpenFeign
  • 原型模式详细介绍和代码实现