位置: 编程技术 - 正文

Unity3D技术之资源数据库 (AssetDatabase)详解(unity 3d资源)

编辑:rootadmin
【狗刨学习网】资源数据库 (AssetDatabase)

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

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

资源数据库 (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); }}Unity3D技术之资源数据库 (AssetDatabase)详解(unity 3d资源)

您也可将额外的 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; // Create Material material = new Material (Shader.Find("Specular")); AssetDatabase.CreateAsset(material, "Assets/MyMaterial.mat"); if(AssetDatabase.Contains(material)) Debug.Log("Material asset created"); // Rename ret = AssetDatabase.RenameAsset("Assets/MyMaterial.mat", "MyMaterialNew"); if(ret == "") Debug.Log("Material asset renamed to MyMaterialNew"); else Debug.Log(ret); // Create a Folder ret = AssetDatabase.CreateFolder("Assets", "NewFolder"); if(AssetDatabase.GUIDToAssetPath(ret) != "") Debug.Log("Folder asset created"); else Debug.Log("Couldn't find the GUID for the path"); // Move ret = AssetDatabase.MoveAsset(AssetDatabase.GetAssetPath(material), "Assets/NewFolder/MyMaterialNew.mat"); if(ret == "") Debug.Log("Material asset moved to NewFolder/MyMaterialNew.mat"); else Debug.Log(ret); // Copy if(AssetDatabase.CopyAsset(AssetDatabase.GetAssetPath(material), "Assets/MyMaterialNew.mat")) Debug.Log("Material asset copied as Assets/MyMaterialNew.mat"); else Debug.Log("Couldn't copy the material"); // Manually refresh the Database to inform of a change AssetDatabase.Refresh(); Material MaterialCopy = AssetDatabase.LoadAssetAtPath("Assets/MyMaterialNew.mat", typeof(Material)) as Material; // Move to Trash if(AssetDatabase.MoveAssetToTrash(AssetDatabase.GetAssetPath(MaterialCopy))) Debug.Log("MaterialCopy asset moved to trash"); // Delete if(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 changes AssetDatabase.Refresh(); }} 更多精彩内容:www.gopedu.com

Unity3D游戏开发之多线程及使用多线程 Unity3D游戏开发之多线程及使用多线程Unity3D中的多线程。线程是一个相当复杂的话题,但如果掌握了它,就可以从容的使用多个硬件处理器或处理很难划

unity3d游戏开发之我见 游戏引擎想必大家都有所耳闻吧,比如当你在喝着可乐,盯着电脑屏幕,看到游戏场景内的角色在自己键盘鼠标的控制之下,享受着这种游戏的操作感

unity3D 游戏开发之工程代码框架设计思路MVC unity3D游戏开发之工程代码框架设计思路MVC设计目的1.使工程结构更规范。2.提高代码可读性,封装性,拓展性3.提高工作效率。正文内容:1.Frame的组成结

标签: unity 3d资源

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

上一篇:Unity3D动态地形网格一(unity2018地形)

下一篇:Unity3D游戏开发之多线程及使用多线程(Unity3D游戏开发标准教程吴亚峰于复兴人民邮电出版社)

  • 公司代扣个人所得税有完税凭证明
  • 奖励旅游的概念解释
  • 外来原始凭证包括哪些入库单
  • 销售货物应税劳务服务清单给客户一份是不是就可以了
  • 资产负债表利润表和现金流量表之间的关系
  • 支付给个人的介绍费开什么发票
  • 增值税即征即退收入要交企业所得税吗
  • 执行企业会计准则类别是什么意思
  • 个税系统异常怎么申报
  • 2021年停车费税率
  • 库存完工产品属于什么会计科目,什么类别
  • 去年漏记了收入,可以记今年吗
  • 实收资本未完全到账,需要缴纳印花税吗
  • 销售新的固定资产怎么算
  • 小规模纳税人自开专票
  • 预收美元和发票的关系
  • 增值税纳税申报表在哪里打印
  • 企业筹建期的工会金费怎么入账
  • 转账户有误退回会计处理
  • 什么是销售利润率和成本利润率
  • 企业存货跌价准备一经计提在以后会计期间不得转回
  • 啥叫规上工业企业
  • 公司车贷款还款怎么操作
  • 营业收入存入银行分录
  • 资产预测怎么写
  • 一键ghost有用吗
  • windows预览版dev和beta
  • php基础函数
  • 法人把资产转移到国外有没有限制
  • 应付票据的核算方法有哪些
  • 怎样改善现金流量比率
  • cmdkill进程
  • php冒泡法排序
  • 社保缴费半年
  • 付不出去的应付账款如何写说明书
  • 二手房过户提供发票好还是不提供
  • 应付票据核算的票据包括
  • 发票填开有哪些规范性要求
  • 中科院怎么赚钱
  • 生产企业 制造商
  • vue中使用nodejs
  • phpinfo()中Loaded Configuration File(none)的解决方法
  • pyecharts怎么用
  • 对公收费明细入账计入什么科目
  • 功能强大的php发展趋势
  • 典当公司收到房款怎么办
  • 冲销去年暂估成本对企业所得税的影响
  • 持有至到期投资科目被取消了吗
  • 附有销售退回条件的商品销售,如果不能对退货
  • 原始凭证分割单可以入账么
  • 港资企业属于什么性质
  • PostgreSQL中调用存储过程并返回数据集实例
  • 跨年的房租费用怎么做账
  • 固定资产净残值可以为0吗
  • 预收账款的核算处理
  • 利润分配未分配利润在报表里怎么体现
  • 不验资实收资本怎么做账
  • 销售返利可以计入销售费用吗
  • 去年漏记了收入,可以记今年吗
  • 长期股权投资的成本法和权益法区别
  • 新会计准则适用企业
  • 提供劳务结转的成本计入什么科目
  • 免征的附加税怎么做账
  • 可交换债券发行方的会计处理
  • 建筑企业案例
  • 单位购入车辆能抵扣吗
  • 个体工商户的建筑劳务是否需要资质
  • centos7如何设置中文
  • win10系统应用
  • 小米4刷windows 10
  • windows10无法关闭
  • linux在vim编辑器中,将光标移动
  • cocos2dx怎么用
  • javaweb物流管理系统源码
  • JAVA的OPENGL,JOGL入门实例----碰撞移动的正方体 (配置+源代码)
  • 命令行net
  • unity手柄圆盘
  • mailto的使用技巧分享
  • nodejs inspect
  • 非居民企业通俗指
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设