Unity 动态加载Prefab

2023-11-07

Unity动态记载Prefab

  1. 第一种方法,从Resources文件夹读取Prefab
    Assets/Resources是Unity中的一个特殊文件夹,放在这个文件夹里的资源包括Prefab可以被代码动态加载。
GameObject Prefab = (GameObject)Resources.Load("Prefabs/Character");
Instantiate(Prefab);
  1. 第二种方法,绝对路径读取Prefab
    这种方法仅限Editor模式使用,在制作插件的时候会经常使用的方法。
GameObject gb = AssetDatabase.LoadAssetAtPath("Assets/Prefabs/Character.prefab", typeof(GameObject)) as GameObject; //该函数返回一个object,需要强转为GameObject,第一个参数为完整绝对路径,第二个参数为Prefab名  
Instantiate(gb);
  1. 第三种方法,把Prefab打包成AssetBundle并且使用AssetBundle相关API动态加载
    1)在Inspector面板中把prefab资源打包。
    2)编写AssetBundle生成工具
    Plugins/Editor也是Unity中的一个特殊文件夹,在Plugins下的脚本的编译优先级高于普通脚本。
    在Asset下创建文件夹Plugins,再在Plugins下创建文件夹Editor,在Plugins/Editor下创建脚本CreateAssetBundles.cs。
using UnityEditor;
using System.IO;

public class CreateAssetBundles {

    //设定AssetBundle的储存路径
    static string AssetbundlePath = "Assets" + Path.DirectorySeparatorChar + "assetbundles" + Path.DirectorySeparatorChar;
    
    //编辑器扩展
    [MenuItem("Assets/Build AssetBundle")]
    static void BuildAssetsBundles()
    {
        //创建路径
        if (Directory.Exists(AssetbundlePath) == false)
        {
            Directory.CreateDirectory(AssetbundlePath);
        }
        //使用LZMA算法打包
        BuildPipeline.BuildAssetBundles(AssetbundlePath, BuildAssetBundleOptions.None, BuildTarget.StandaloneWindows64);
    }
}

3)创建脚本加载Prefab
创建加载脚本AssetBundleLoader.cs。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class AssetBundleLoader
{
    //参数1是AssetBundle的路径,参数2是资源的名称
	public static GameObject LoadAssetBundle(string Path, string Name)
    {
        //1.卸载加载缓存数据,如果有某个系统来管理加载好的数据就不需要
        AssetBundle.UnloadAllAssetBundles(true);

        //2.加载数据
        AssetBundle ab = AssetBundle.LoadFromFile(Path);

        return ab.LoadAsset<GameObject>(Name);
    }
}

原文:https://blog.csdn.net/haowenlai2008/article/details/82807019

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Unity 动态加载Prefab 的相关文章

  • UE5学习笔记(一)——界面功能梳理&第一天知识点记录

    学习UE5的第一步 是软件安装 默认是安装好的 由于安装没有太多技术含量 所以就没有专门做记录 这里有个注意点 虚幻引擎是整合在Epic games launcher中的 也就是说开发引擎内嵌在游戏平台上 打个比方 就是如果你要下unity
  • Unity中loading页加载的实现

    首先创建一个Global cs 使用单例用于存储场景的名字 便于后续脚本的调用 此脚本不必挂载在游戏物体上 using UnityEngine using System Collections public class Global Mon
  • 蒙特卡洛积分、重要性采样、低差异序列

    渲染公式 渲染的目标在于计算周围环境的光线有多少从表面像素点反射到相机视口中 要计算总的反射光 每个入射方向的贡献 必须将他们在半球上相加 为入射光线 与法线 的夹角 为方便计算可以使用法线向量和入射向量 单位化 的乘积表示 对于基于图像的
  • c#获取cpu序列号

  • Unity 分块延迟渲染01 (TBDR)

    现代移动端图形体系结构的概述 现代SoC通常会同时集成CPU和GPU CPU被用于处理需要低内存延迟的序列 大量分支的数据集 其晶体管用于流控制和数据缓存 GPU为处理大型 未分支的数据集 如3D渲染 晶体管专用于寄存器和算术逻辑单元 而不
  • GooglePlay提审警告(com.google.android.gms:play-services-safetynet:17.0.0)

    1 Goole在今年6月份出的新政策 不在使用safetynet 而使用Play Integrity API 2 项目本身没有使用过safetynet 3 使用了firebase 查阅资料 解决方案如下 implementation pla
  • Unity学习笔记(一)—— 基础知识

    一 基础知识 1 开发团队组成 2 unity特点 图形界面 所见即所得 入门简单 支持C 比OC C 更友好 js 国内外资源丰富 因为使用的人多 跨平台性好 PC端 移动端等 对VR AR的支持最完善 3 成功案例 游戏 炉石传说 神庙
  • unity后台加密时间锁

    前言 在做一些项目的时候 有些不良甲方在给完项目后会有不给尾款的情况 之前都是加一些水印啥的 感觉不是很方便 第一不美观 第二如果甲方给完尾款后还得重新打包去水印 然后又做过一个本地的时间锁 等到时间 程序直接退出 但是感觉还是不方便 有时
  • Unity打开工程时卡住的问题

    自从Unity升级了一个版本后 Unity打开工程卡住的问题越来越严重了 具体表现为 选择工程后 Unity窗口消失 但进程还在 有时候等个几分钟能出来 有时候等10分钟都不见得能出来 直观感受上看 似乎是Unity加载工程的时候某一步卡了
  • unity: C#的Action Event Delegate的异同

    目录 一 Action 二 Event 三 Action和Event区别 四 Delegate 总结 Action Event Delegate的异同 前言 Action Event和Delegate都是C 语言中的重要概念 分别用于管理函
  • Unity打包WebGL的优化常用操作?

    1 贴图部分优化 如果贴图格式时2048 在不影响画面效果的情况下 改成1024或者5 12 还可以缩小包体 2 压缩和解压缩问题 WebGL打包的时候分三种压缩情况 gzip 比Brotli文件打 但打包快 http和https都支持 B
  • unity实现鼠标右键控制视角

    主要实现的功能是相机跟随主角 鼠标右击移动后 相机的视角会旋转 思路 在主角里创建空的子物体 把相机绑在空物体上 通过旋转空物体来实现视角的旋转 要把相机调整到适当位置 代码如下 public float rotateSpeed 100 设
  • unity dots jobSystem 记录

    Looking for a way to get started writing safe multithreaded code Learn the principles behind our Job System and how it w
  • unity3d切换场景Application.LoadLevel(1)含义

    Application LoadLevel 1 场景ID
  • Unity万向节死锁解决方案(2023/12/4)

    1 万向节死锁无法解决 这是因为它的特性就是如此 就像玻璃杯就是玻璃 这不可否认 别钻牛角尖昂 2 大多数情况下欧拉角足够用 例如 CF 摄像机不可能绕z轴旋转 x轴旋转也不会超过九十度 因为那样人物的腰子会被扭断 塔防游戏 保卫萝卜 吃鸡
  • 【Unity】如何让Unity程序一打开就运行命令行命令

    背景 Unity程序有时依赖于某些服务去实现一些功能 此时可能需要类似打开程序就自动运行Windows命令行命令的功能 方法 using UnityEngine using System Diagnostics using System T
  • 【转载】【Unity】WebSocket通信

    1 前言 Unity客户端常用的与服务器通信的方式有socket http webSocket 本文主要实现一个简单的WebSocket通信案例 包含客户端 服务器 实现了两端的通信以及客户端向服务器发送关闭连接请求的功能 实现上没有使用U
  • Unity学习笔记

    一 旋转欧拉角 四元数 Vector3 rotate new Vector3 0 30 0 Quaternion quaternion Quaternion identity quaternion Quaternion Euler rota
  • 游戏开发常见操作梳理之角色选择一

    进入游戏后 我们经常会进入角色选择的界面 通常是左右两个按钮可以更改角色供玩家选择 对于这种界面我们通常使用数据持久化将角色信息存储起来 接下来的笔记中 我将使用自带的数据持久化系统对其进行操作 实现角色的选择页面 后续会更新xml系列的文
  • 游戏开发常见操作系列之敌人系统的开发一(U3D)

    在开发游戏的过程中 我们常常会出现一些敌人攻击我们玩家 并且实现掉血以及死亡的现象 敌人还会源源不断地生成 这是怎么制作的呢 接下来为大家提供方法 其中使用了NGUI 后续会更新其它方法 敬请期待 使用HUDText实现扣血时显示文本 直接

随机推荐

  • 解决npm切换国内源-nrm ls 命令*不显示的问题

    解决npm切换国内源 nrm ls 命令 不显示的问题 解决方案 此时不显示 nrm ls 解决方案 进入本地全局包安装目录 例AppData Roaming npm node modules nrm nrm目录下打开cli js文件 找到
  • 攻防世界--WEB题之robots

    问题描述 难度系数 一颗星 题目来源 Cyberpeace n3k0 题目描述 X老师上课讲了Robots协议 小宁同学却上课打了瞌睡 赶紧来教教小宁Robots协议是什么吧 题目场景 点击获取在线场景 题目附件 暂无 题目分析 这个题由题
  • python基础练习题(一)

    参考 一 单选题 1 Python中 运算符比较两个对象的值 下列选项中哪一个是is比较对象的因素 4 0分 A id B sum C max D min id 命令查看变量的地址 2 在python中 字符串s abc 那么执行表达式s
  • vue2以ElementUI为例构建notify便捷精美提示

    我们先引入一个 第三方UI库 这里 我们以elementUI为例 先引入依赖 npm install element ui save 然后 在 main js 入口文件中 引入一下 import ElementUI from element
  • MSYS2 如何添加国内源

    用MSYS2 pacman S 安装包的速度让你怀疑人生 所以需要将源换成国内源 步骤 lt 1 gt 打开MSYS2软件内的 etc pacman d 其中有3个文件 mirrorlist mingw32 mirrorlist mingw
  • Nacos未授权访问漏洞(CVE-2021-29441)

    目录 漏洞描述 影响范围 环境搭建 漏洞复现 声明 本文仅供学习参考 其中涉及的一切资源均来源于网络 请勿用于任何非法行为 否则您将自行承担相应后果 本人不承担任何法律及连带责任 加粗样式 漏洞描述 Nacos 是阿里巴巴推出来的一个新开源
  • 百度Apollo(二):障碍物感知模块

    Apollo感知模块具有识别障碍物和交通灯的能力 其中 Apollo解决的障碍物感知问题 1 高精地图ROI过滤器 HDMap ROI Filter 2 基于卷积神经网络分割 CNN Segmentation 3 MinBox 障碍物边框构
  • jenkins构建前、构建、构建后操作

    因为使用docker部署的jenkins存在目录映射问题 所以直接部署jenkins 部署参考 构建前操作 思路 使用ssh到目标服务器下发命令 查询启动的node服务 分析不同的服务器启动的服务 备份服务对应代码 构建 思路 jenkin
  • linux 创建 svn 库

    cd data svn mkdir p itvalue chown R windmaker windmaker itvalue svnadmin create data svn itvalue cd itvalue cd conf vim
  • freeimage ubuntu安装

    sudo apt get install libfreeimage dev sudo apt get install libfreeimage 编译安装地址 https github com Kanma FreeImage This dis
  • es6 求两个数组的差集

    let arr 1 2 3 4 5 let arr01 1 2 3 4 5 6 7 8 9 let arr02 arr01 filter x gt arr every y gt y x console log arr02
  • 以太坊Dapp终极教程——如何构建一个完整的全栈去中心化应用(三)

    在以太坊Dapp终极教程 如何构建一个完整的全栈去中心化应用 一 中 我们已经完成了一切所需的设置 在以太坊Dapp终极教程 如何构建一个完整的全栈去中心化应用 二 中 让我们通过列出将在选举中运行的候选人来继续构建智能合约并完成客户端程序
  • 第四章文件管理

    0 初识文件管理 一个文件有哪些属性 文件名 由创建文件的用户决定文件名 主要是为了方便用户找到文件 同一目录下不允许有重名文件 标识符 一个系统内的各文件标识符唯一 对用户来说毫无可读性 因此标识符只是操作系统用于区分各个文件的一种内部名
  • WLS2 下解决nvidia-smi不可用方法

    WLS2系统 Ubuntu22 04 windows win11 wls2更新内核后 nvcc V 可用 但是 nvidia smi报错 NVIDIA SMI has failed because it couldn t communica
  • 安装开发软件的步骤以及后期开发会遇到的一系列问题

    这是我自己进行项目开发过程中遇到的一些问题 我将他们记录了下来 一 合理的安装开发软件的过程 1 安装jdk 1 1版本问题 不要安装最新的jdk 很容易出现bug 可以安装第三个版本左右的jdk 1 2配置环境变量 网上搜 2 安装Tom
  • 区块链学习笔记(三)——第一章 密码学及加密货币概念

    加密数字货币与法定货币不同在于 其安全规则需要完全通过技术手段实现 而非依赖中央机构 1 1 哈希函数 哈希函数三个特性 1 任意大小字符串均可作为输入 2 产生固定大小输出 3 能进行有效计算 即对应n位字符串 其哈希值计算复杂度为 O
  • linux 下使用 sar -n 命令查看Kbps、bps的带宽速率

    一 关于网络带宽知识 1 1 速率单位 bps 速度单位 bit即比特 通常用b 小写 表示 指一位二进制位 1 Milionbit 1000Kilobit 1000000bit 即 1Mbps 1000 000bps 常见换算单位 Mbp
  • helm 安装

    官方安装 https helm sh docs intro install 1 一键安装 curl https raw githubusercontent com helm helm main scripts get helm 3 bash
  • 计算机毕业设计Node.js+Vue电影票网上订票系统(程序+源码+LW+部署)

    该项目含有源码 文档 程序 数据库 配套开发软件 软件安装教程 欢迎交流 项目运行 环境配置 Node js Vscode Mysql5 7 HBuilderX Navicat11 Vue Express 项目技术 Express框架 No
  • Unity 动态加载Prefab

    Unity动态记载Prefab 第一种方法 从Resources文件夹读取Prefab Assets Resources是Unity中的一个特殊文件夹 放在这个文件夹里的资源包括Prefab可以被代码动态加载 GameObject Pref