位置: 编程技术 - 正文

Unity3D技术之资源数据库 (AssetDatabase)详解(unity3d官方案例)

编辑:rootadmin

推荐整理分享Unity3D技术之资源数据库 (AssetDatabase)详解(unity3d官方案例),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:unity 3d资源,unity3d的,unity 3d资源,unity3d官方教程,unity 3d资源,unity 3d资源,unity3d技术介绍,unity3d的,内容如对您有帮助,希望把文章链接给更多的朋友!

欢迎来到unity学习、unity培训、unity企业培训教育专区,这里有很多U3D资源、U3D培训视频、U3D教程、U3D常见问题、U3D项目源码,我们致力于打造业内unity3d培训、学习第一品牌。

Unity3D技术之资源数据库 (AssetDatabase)详解(unity3d官方案例)

资源数据库 (AssetDatabase)资源数据库 (AssetDatabase) 是允许您访问工程中的资源的 API。此外,其提供方法供您查找和加载资源,还可创建、删除和修改资源。Unity 编辑器 (Editor) 在内部使用资源数据库 (AssetDatabase) 追踪资源文件,并维护资源和引用资源的对象之间的关联。Unity 需要追踪工程文件夹发生的所有变化,如需访问或修改资源数据,您应始终使用资源数据库 (AssetDatabase) API,而非文件系统。 资源数据库 (AssetDatabase) 接口仅适用于编辑器,不可用于内置播放器。和所有其他编辑器类一样,其只适用于置于编辑器 (Editor) 文件夹中的脚本(只在主要的资源 (Assets) 文件夹中创建名为“编辑器”的文件夹(不存在该文件夹的情况下))。导入资源通常,Unity 只在需要时自动导入已拖放至该工程的资源,但也可能在脚本控制下导入这些资源。为此,您可以使用以下示例中的 AssetDatabase.ImportAsset 类函数。using UnityEngine;using UnityEditor; public class ImportAsset {[MenuItem ("AssetDatabase/ImportExample")]static void ImportExample (){AssetDatabase.ImportAsset("Assets/Textures/texture.jpg", ImportAssetOptions.Default);}}您也可将额外的 AssetDatabase.ImportAssetOptions 类型参数传递至资源数据库 (AssetDatabase) 。脚本参考手册页面记录了不同的选项及其对函数行为的影响。加载资源如果将资源添加至场景或在检视 (Inspector) 面板中编辑这些资源,则编辑器仅在需要时加载资源。但是,您可以使用以下脚本加载和访问资源:AssetDatabase.LoadAssetAtPath、AssetDatabase.LoadMainAssetAtPath、AssetDatabase.LoadAllAssetRepresentationsAtPath 和 AssetDatabase.LoadAllAssetsAtPath。有关更多详细信息,请参阅脚本文档。using UnityEngine;using UnityEditor; public class ImportAsset {[MenuItem ("AssetDatabase/LoadAssetExample")]static void ImportExample (){Texture2D t = AssetDatabase.LoadAssetAtPath("Assets/Textures/texture.jpg", typeof(Texture2D)) as Texture2D;}}使用 AssetDatabase 操作文件Unity 将保留资源文件的元数据,您决不可使用文件系统创建、移动或删除它们。相反,您应使用 AssetDatabase.Contains、AssetDatabase.CreateAsset、AssetDatabase.CreateFolder、AssetDatabase.RenameAsset、AssetDatabase.CopyAsset、AssetDatabase.MoveAsset、AssetDatabase.MoveAssetToTrash 和 AssetDatabase.DeleteAsset 进行上述操作。public class AssetDatabaseIOExample {[MenuItem ("AssetDatabase/FileOperationsExample")]static void Example (){string ret; // CreateMaterial material = new Material (Shader.Find("Specular"));AssetDatabase.CreateAsset(material, "Assets/MyMaterial.mat");if(AssetDatabase.Contains(material))Debug.Log("Material asset created"); // Renameret = AssetDatabase.RenameAsset("Assets/MyMaterial.mat", "MyMaterialNew");if(ret == "")Debug.Log("Material asset renamed to MyMaterialNew");elseDebug.Log(ret); // Create a Folderret = AssetDatabase.CreateFolder("Assets", "NewFolder");if(AssetDatabase.GUIDToAssetPath(ret) != "")Debug.Log("Folder asset created");elseDebug.Log("Couldn't find the GUID for the path"); // Moveret = AssetDatabase.MoveAsset(AssetDatabase.GetAssetPath(material), "Assets/NewFolder/MyMaterialNew.mat");if(ret == "")Debug.Log("Material asset moved to NewFolder/MyMaterialNew.mat");elseDebug.Log(ret); // Copyif(AssetDatabase.CopyAsset(AssetDatabase.GetAssetPath(material), "Assets/MyMaterialNew.mat"))Debug.Log("Material asset copied as Assets/MyMaterialNew.mat");elseDebug.Log("Couldn't copy the material");// Manually refresh the Database to inform of a changeAssetDatabase.Refresh();Material MaterialCopy = AssetDatabase.LoadAssetAtPath("Assets/MyMaterialNew.mat", typeof(Material)) as Material; // Move to Trashif(AssetDatabase.MoveAssetToTrash(AssetDatabase.GetAssetPath(MaterialCopy)))Debug.Log("MaterialCopy asset moved to trash"); // Deleteif(AssetDatabase.DeleteAsset(AssetDatabase.GetAssetPath(material)))Debug.Log("Material asset deleted");if(AssetDatabase.DeleteAsset("Assets/NewFolder"))Debug.Log("NewFolder deleted"); // Refresh the AssetDatabase after all the changesAssetDatabase.Refresh();}}使用 AssetDatabase.Refresh修改完资源后,您应调用 AssetDatabase.Refresh 将更改提交至数据库,并使其显示在工程中。

更多精彩请点击

如何在Unity中显示当前游戏运行帧数? 欢迎来到unity学习、unity培训、unity企业培训教育专区,这里有很多U3D资源、U3D培训视频、U3D教程、U3D常见问题、U3D项目源码,我们致力于打造业内unity3d

Unity3D技术之相机使用技巧-从相机到给定距离的视锥体大小 欢迎来到unity学习、unity培训、unity企业培训教育专区,这里有很多U3D资源、U3D培训视频、U3D教程、U3D常见问题、U3D项目源码,我们致力于打造业内unity3d

Unity3D技术之从 Maya 中导入对象浅析 欢迎来到unity学习、unity培训、unity企业培训教育专区,这里有很多U3D资源、U3D培训视频、U3D教程、U3D常见问题、U3D项目源码,我们致力于打造业内unity3d

标签: unity3d官方案例

本文链接地址:https://www.jiuchutong.com/biancheng/372954.html 转载请保留说明!

上一篇:unity3D技术之特殊文件夹和脚本编译顺序(unity3d技术介绍)

下一篇:如何在Unity中显示当前游戏运行帧数?(unity怎么用)

  • 增值税发票勾选平台
  • 全国增值税发票查验平台入口
  • 高新技术企业享受15%税率优惠的条件
  • 个人所得税汇算表
  • 违约金的专票能抵扣吗
  • 无票收入在增值税表中填哪
  • 哪些福利费可以进在建工程
  • 所得税多交退税分录
  • 简易征收适用哪条法律
  • 小规模纳税人开票税率
  • 工程款转入冻结账户能拿回
  • 物流运输业务
  • 运输业月末进销项税怎么结转
  • 加计抵减税金分录
  • 付款给对方未开具发票
  • 计提所得税费用的账务处理
  • 水泥沙子开票属于什么类别
  • 销售费用的进项税额转出会计分录
  • 上年减值准备收回如何做账务处理呢?
  • 工业企业用电是收入的几倍
  • 溢价发行股票的账务处理
  • 购买国税金税卡年费应该怎么做账务处理?
  • 退回多交的所得税怎么做分录小规模
  • 未达起征点销售额和小微企业免税销售额
  • 普通发票离线限额为0
  • 发票反写是什么时候
  • 小微企业工会经费的减免政策2023
  • 销售退货成本如何计算
  • 发票少开退回多付的货款怎么入账?
  • 净资产收益率公式怎么算出来的
  • 城镇土地使用税的计税依据
  • Win10打开浏览器后自动弹出查找框
  • 电脑开机后无显示,但主机电源指示灯长亮
  • 挖机所有权需要办理什么手续吗
  • 财务都干些什么
  • 收到销售折让销售怎么做
  • Win10新版21364发布: 可直接运行Linux图形程序
  • windows history命令
  • qtask.exe - qtask是什么进程 有什么用
  • 当月发生的费用下月支付
  • 出库单可以补吗
  • php dechex
  • 非货币性资产投资个人所得税
  • 支付产品运输费怎么入账
  • 【AIGC】1、爆火的 AIGC 到底是什么 | 全面介绍
  • 天然气票据
  • 公司支付工伤赔偿,是先签字还是先打钱
  • yolov5实例分割原理详解
  • Mybatis+Servlet+Mysql 整合的一个小项目:对初学者非常友好,有助于初学者很快的上手Java Web
  • 计提本月财务费用会计分录
  • 存货非正常损失可以所得税前扣除吗
  • python里eval的用法
  • 银行会计的基本核算方法包括的内容有
  • sql server s
  • 处置无形资产净收益计入什么科目
  • 土地承包费摊销当月摊销吗
  • 港币转人民币差多少钱
  • 注册资金没有到位
  • 研发费用扣除75%
  • 损益类科目增加记哪方
  • 作废发票丢了罚款多少
  • fedora怎么联网
  • ubuntu修改ip地址方法
  • exfat 打不开
  • 重装系统开机出现几个系统
  • ubuntu14升级
  • centos 编译安装
  • js表格上移下移
  • js拖动图片
  • Perl的Mail::POP3Client模块和Gmail通信实例
  • Unity3D游戏开发标准教程
  • node.js教程详细
  • Linux开发基于Qt的Android应用指定调试设备
  • 广西2023新农合报销政策
  • 湖北税务投诉电话
  • 消费税征税环节
  • 出口退税报关单在哪里打印
  • 云南省昆明市官渡区矣六街道
  • 新版电子发票怎么看发票代码图片
  • 国家税务总局176号公告
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设