位置: 编程技术 - 正文

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怎么用)

  • 附加税做账交多了如何冲回
  • 法人能去税务局买票吗
  • 出口退税新政策报关费发票要怎么开
  • 工资延期发放最多不能超过多少天
  • 公司合同是公司员工个人名义签订如何入账?
  • 交车辆保险的车能买吗
  • 房产租赁增值税率是5%还是9%
  • 中国电子口岸证书错误
  • 应交税费减免科目金额的计算
  • 小规模补交去年的所得税资产负债表怎么调整
  • 固定资产未入固定资产账
  • 工资分配率的计算公式
  • 一般纳税人应交增值税明细科目设置
  • 其他货币资金贷方是增加还是减少
  • 持有至到期投资核算内容
  • 代扣业务员佣金怎么做账
  • 以前年度损益调整账务处理分录
  • 微信交电费怎么退款
  • 土地租赁费含有多少税率
  • 总分机构账务处理
  • 坏账准备的计提是什么意思
  • 有限责任公司企业名称有哪些
  • 已付款收到发票但没有做计提凭证
  • 财务每月需要报哪些税
  • 非公益性赠送该怎么进行会计处理?
  • 对外开具发票
  • 企业报税网上申报好了怎么导入
  • 租金税率9%和5
  • 不锈钢材料开票
  • 出口企业预申报没有增值税专用发票稽核信息如何处理?
  • win10开机会自动打开网页
  • 鸿蒙系统桌面如何设置
  • u盘的重装系统
  • 车辆理赔过程中,赔付款给谁
  • 在win7系统中怎样为另外一块硬盘安装系统
  • 对于接受捐赠的资产价值,应计入当期损益
  • 息税前利润和税前净利润的关系
  • 微信php开发教程
  • 债券溢折价是什么意思
  • 政策性搬迁补偿收入
  • 物业水电费可以差额征税吗
  • 超参数及其作用
  • 百分之十三增值税发票能抵扣多少?
  • 商业承兑汇票和银行承兑汇票的分录
  • 自然人独资和个人独资是一样的吗
  • 资产处置损益是当期损益吗
  • 非税收入票据可以跨年度使用吗
  • 通讯补贴计入个税吗
  • 行政事业单位赞助支出会计核算办法
  • 虚开发票的三种情形是?
  • 定期定额户用财务制度备案吗
  • 风险纳税人认定条件2020
  • 未入账负债怎么算
  • 土地使用税如何计算缴纳
  • 建筑租赁公司账务处理
  • 计提未到期责任准备金的意义
  • 社保逾期滞纳金和利息
  • 过户前交了契税能退吗
  • 分配利润和分配红利
  • 自创商誉是否需要纳税
  • 对公账户进出账常识
  • sql语句错误提示
  • mysql 数据库
  • ubuntu系统中文名字
  • os10.8.5升级不了
  • linux计划任务不生效
  • awk中使用sed
  • 查看 linux版本
  • windows xp windows
  • unity平移场景视图怎样操作?
  • android源码分析实录
  • js中鼠标经过事件
  • js定义json对象
  • jquery教程 csdn
  • jquery 异步加载
  • Android开发网络请求数据加密
  • 移交税务稽查的条件标准
  • 福建税务局电子税务局电话多少
  • 国家税务总局多少员工
  • 绍兴柯桥有哪些村
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设