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

wordpress建站教程简书网络营销推广的渠道有哪些

wordpress建站教程简书,网络营销推广的渠道有哪些,建设工程合同主体有哪些,域名对网站seo的影响注意:考虑到编辑器扩展的内容比较多,我将编辑器扩展的内容分开,并全部整合放在【unity游戏开发——编辑器扩展】专栏里,感兴趣的小伙伴可以前往逐一查看学习。 文章目录 前言一、AssetDatabase常用API1、创建资源1.1 API1.2 示例 …

注意:考虑到编辑器扩展的内容比较多,我将编辑器扩展的内容分开,并全部整合放在【unity游戏开发——编辑器扩展】专栏里,感兴趣的小伙伴可以前往逐一查看学习。

文章目录

  • 前言
  • 一、AssetDatabase常用API
    • 1、创建资源
      • 1.1 API
      • 1.2 示例
    • 2、创建文件夹
      • 2.1 API
      • 2.2 示例
    • 3、拷贝资源
      • 3.1 API
      • 3.2 示例
    • 4、移动资源
      • 4.1 API
      • 4.2 示例
    • 5、删除资源
      • 5.1 API
      • 5.2 示例
    • 6、批量删除资源
      • 6.1 API
      • 6.2 示例
    • 7、获取资源路径
      • 7.1 API
      • 7.2 示例
    • 8、根据路径加载资源
      • 8.1 API
      • 8.2 示例
    • 9、刷新项目资源
      • 9.1 API
      • 9.2 示例
    • 10、返回资源所属的AB包名
      • 10.1 API
      • 10.2 示例
  • 二、最终代码
  • 专栏推荐
  • 完结

前言

AssetDatabase公共类是 Unity 引擎中的一个编辑器类,用于在编辑器环境中管理和操作项目中的资源(Assets)。它提供了一系列静态方法,使得开发者能够在编辑器脚本中进行资源的创建、拷贝、移动、删除等操作。

官方文档:AssetDatabase

一、AssetDatabase常用API

1、创建资源

1.1 API

我们可以通过代码动态创建一些资源

AssetDatabase.CreateAsset(资源,路径);

注意

  • 路径从 Assets/...开始
  • 不能在StreamingAssets中创建资源,
  • 不能创建预设体
  • 只能创建资源相关,例如材质球等
  • 路径需要写后缀

1.2 示例

using UnityEditor;
using UnityEngine;public class TestAssetDatabaseEditorWindow : EditorWindow
{[MenuItem("编辑器拓展/自定义窗口拓展/AssetDatabase窗口拓展")]private static void OpenWindow(){TestAssetDatabaseEditorWindow win = EditorWindow.GetWindow<TestAssetDatabaseEditorWindow>();win.Show();}private void OnGUI(){// 创建资源按钮if (GUILayout.Button("创建资源")){// 创建一个材质,使用URP的Lit着色器Material mat = new Material(Shader.Find("Universal Render Pipeline/Lit"));// 将材质保存为Assets/Resources/TestURPLitMaterial.matAssetDatabase.CreateAsset(mat, "Assets/Resources/TestURPLitMaterial.mat");}}
}

效果
在这里插入图片描述

2、创建文件夹

2.1 API

AssetDatabase.CreateFolder(父文件夹路径,新文件夹名)

注意

  • 父文件夹路径从 Assets/...开始

2.2 示例

using UnityEditor;
using UnityEngine;public class TestAssetDatabaseEditorWindow : EditorWindow
{[MenuItem("编辑器拓展/自定义窗口拓展/AssetDatabase窗口拓展")]private static void OpenWindow(){TestAssetDatabaseEditorWindow win = EditorWindow.GetWindow<TestAssetDatabaseEditorWindow>();win.Show();}private void OnGUI(){// 创建文件夹按钮if (GUILayout.Button("创建文件夹")){// 在Assets/Resources下创建一个名为MyTestFolder的文件夹AssetDatabase.CreateFolder("Assets/Resources", "MyTestFolder");}}
}

效果
在这里插入图片描述

3、拷贝资源

3.1 API

AssetDatabase.CopyAsset(源资源路径,目标路径)

注意

  • 需要写后缀名
  • 路径从 Assets/...开始

3.2 示例

using UnityEditor;
using UnityEngine;public class TestAssetDatabaseEditorWindow : EditorWindow
{[MenuItem("编辑器拓展/自定义窗口拓展/AssetDatabase窗口拓展")]private static void OpenWindow(){TestAssetDatabaseEditorWindow win = EditorWindow.GetWindow<TestAssetDatabaseEditorWindow>();win.Show();}private void OnGUI(){// 拷贝资源按钮if (GUILayout.Button("拷贝资源")){// 将Assets/Resources/TestURPLitMaterial.mat拷贝到Assets/Resources/MyTestFolder/TestURPLitMaterialCopy.matAssetDatabase.CopyAsset("Assets/Resources/TestURPLitMaterial.mat", "Assets/Resources/MyTestFolder/TestURPLitMaterialCopy.mat");}}
}

效果
在这里插入图片描述

4、移动资源

4.1 API

AssetDatabase.MoveAsset(老路径, 新路径);

注意

  • 路径从 Assets/...开始

4.2 示例

using UnityEditor;
using UnityEngine;public class TestAssetDatabaseEditorWindow : EditorWindow
{[MenuItem("编辑器拓展/自定义窗口拓展/AssetDatabase窗口拓展")]private static void OpenWindow(){TestAssetDatabaseEditorWindow win = EditorWindow.GetWindow<TestAssetDatabaseEditorWindow>();win.Show();}private void OnGUI(){// 移动资源按钮if (GUILayout.Button("移动资源")){// 将Assets/Resources/MyTestFolder/TestURPLitMaterialCopy.mat移动到Assets/Resources/TestURPLitMaterialCopy.matAssetDatabase.MoveAsset("Assets/Resources/MyTestFolder/TestURPLitMaterialCopy.mat","Assets/Resources/TestURPLitMaterialCopy.mat");}}
}

在这里插入图片描述

5、删除资源

5.1 API

AssetDatabase.DeleteAsset(资源路径)

注意

  • 路径从 Assets/...开始

5.2 示例

using UnityEditor;
using UnityEngine;public class TestAssetDatabaseEditorWindow : EditorWindow
{[MenuItem("编辑器拓展/自定义窗口拓展/AssetDatabase窗口拓展")]private static void OpenWindow(){TestAssetDatabaseEditorWindow win = EditorWindow.GetWindow<TestAssetDatabaseEditorWindow>();win.Show();}private void OnGUI(){// 删除资源按钮if (GUILayout.Button("删除资源")){// Assets/Resources/TestURPLitMaterialCopy.matAssetDatabase.DeleteAsset("Assets/Resources/TestURPLitMaterialCopy.mat");}}
}

效果
在这里插入图片描述

6、批量删除资源

6.1 API

AssetDatabase.DeleteAssets(string[] 路径们, List<string> 用于存储删除失败的路径)

注意

  • 路径从 Assets/...开始

6.2 示例

using System.Collections.Generic;
using UnityEditor;
using UnityEngine;public class TestAssetDatabaseEditorWindow : EditorWindow
{[MenuItem("编辑器拓展/自定义窗口拓展/AssetDatabase窗口拓展")]private static void OpenWindow(){TestAssetDatabaseEditorWindow win = EditorWindow.GetWindow<TestAssetDatabaseEditorWindow>();win.Show();}private void OnGUI(){// 批量删除资源按钮if (GUILayout.Button("批量删除资源")){// 创建一个列表,用于存储删除失败的资源List<string> failList = new List<string>();// 批量删除Assets/Resources/TestURPLitMaterial.mat和Assets/Resources/TestURPLitMaterial2.matAssetDatabase.DeleteAssets(new string[] { "Assets/Resources/TestURPLitMaterial.mat", "Assets/Resources/TestURPLitMaterial2.mat" }, failList);// 遍历删除失败的资源列表,并输出到控制台for (int i = 0; i < failList.Count; i++){Debug.Log(failList[i]);}}}
}

效果
在这里插入图片描述

7、获取资源路径

7.1 API

AssetDatabase.GetAssetPath(资源)

注意

  • 可以配合Selection选中资源一起使用

7.2 示例

using UnityEditor;
using UnityEngine;public class TestAssetDatabaseEditorWindow : EditorWindow
{[MenuItem("编辑器拓展/自定义窗口拓展/AssetDatabase窗口拓展")]private static void OpenWindow(){TestAssetDatabaseEditorWindow win = EditorWindow.GetWindow<TestAssetDatabaseEditorWindow>();win.Show();}private void OnGUI(){// 获取资源路径按钮if (GUILayout.Button("获取资源路径")){// 输出当前选中的资源的路径Debug.Log(AssetDatabase.GetAssetPath(Selection.activeObject));}}
}

效果
在这里插入图片描述

8、根据路径加载资源

8.1 API

AssetDatabase.LoadAssetAtPath(资源路径) 

注意

  • 路径从Assets/...开始

8.2 示例

using UnityEditor;
using UnityEngine;public class TestAssetDatabaseEditorWindow : EditorWindow
{[MenuItem("编辑器拓展/自定义窗口拓展/AssetDatabase窗口拓展")]private static void OpenWindow(){TestAssetDatabaseEditorWindow win = EditorWindow.GetWindow<TestAssetDatabaseEditorWindow>();win.Show();}private void OnGUI(){// 加载资源按钮if (GUILayout.Button("加载资源")){// 加载Assets/测试文件.txt,并输出其名称TextAsset txt = AssetDatabase.LoadAssetAtPath<TextAsset>("Assets/测试文件.txt");Debug.Log(txt.name);}}
}

效果
在这里插入图片描述

9、刷新项目资源

9.1 API

AssetDatabase.Refresh()是Unity编辑器API中的一个重要方法,用于刷新项目资源数据库。当你在Unity项目文件夹中添加、删除或修改资源文件时,这个方法可以确保Unity编辑器能够识别这些更改。

AssetDatabase.Refresh()

Unity通常会自动在适当时候调用刷新,但有时需要手动触发。比如当你通过代码创建或修改了资源文件,需要执行刷新,我们才能在Project窗口中显示最新的内容,否则每次都需要手动调用ctrl+R刷新,这个API其实就是帮我们省略手动刷新这一步。

9.2 示例

using System.IO;
using UnityEditor;
using UnityEngine;public class TestAssetDatabaseEditorWindow : EditorWindow
{[MenuItem("编辑器拓展/自定义窗口拓展/AssetDatabase窗口拓展")]private static void OpenWindow(){TestAssetDatabaseEditorWindow win = EditorWindow.GetWindow<TestAssetDatabaseEditorWindow>();win.Show();}private void OnGUI(){// 创建文件并刷新资源按钮if (GUILayout.Button("创建文件并刷新资源")){// 创建文件时,如果不使用Unity相关API的话,需要调用刷新,才能在Project窗口中显示File.WriteAllText(Application.dataPath + "/Resources/test2.txt", "内容内容内容");AssetDatabase.Refresh();}}
}

效果
在这里插入图片描述

10、返回资源所属的AB包名

10.1 API

string bundleName = AssetDatabase.GetImplicitAssetBundleName(资源路径);

注意

  • 路径从Assets/...开始
  • 返回该资源隐式关联的AssetBundle名称(如果有的话)
  • 如果资源没有被分配到任何AssetBundle,返回空字符串(“”)

10.2 示例

using UnityEditor;
using UnityEngine;public class TestAssetDatabaseEditorWindow : EditorWindow
{[MenuItem("编辑器拓展/自定义窗口拓展/AssetDatabase窗口拓展")]private static void OpenWindow(){TestAssetDatabaseEditorWindow win = EditorWindow.GetWindow<TestAssetDatabaseEditorWindow>();win.Show();}private void OnGUI(){// 返回资源所属的AB包名按钮if (GUILayout.Button("返回资源所属的AB包名")){string assetPath = "Assets/Resources/MyPrefab.prefab";string bundleName = AssetDatabase.GetImplicitAssetBundleName(assetPath);if (!string.IsNullOrEmpty(bundleName)){Debug.Log($"资源 {assetPath} 属于AssetBundle: {bundleName}");}else{Debug.Log($"资源 {assetPath} 不属于任何AssetBundle");}}}
}

效果
在这里插入图片描述

二、最终代码

using System.Collections.Generic;
using System.IO;
using UnityEditor;
using UnityEngine;public class TestAssetDatabaseEditorWindow : EditorWindow
{[MenuItem("编辑器拓展/自定义窗口拓展/AssetDatabase窗口拓展")]private static void OpenWindow(){TestAssetDatabaseEditorWindow win = EditorWindow.GetWindow<TestAssetDatabaseEditorWindow>();win.Show();}private void OnGUI(){// 创建资源按钮if (GUILayout.Button("创建资源")){// 创建一个材质,使用URP的Lit着色器Material mat = new Material(Shader.Find("Universal Render Pipeline/Lit"));// 将材质保存为Assets/Resources/TestURPLitMaterial.matAssetDatabase.CreateAsset(mat, "Assets/Resources/TestURPLitMaterial.mat");}// 创建文件夹按钮if (GUILayout.Button("创建文件夹")){// 在Assets/Resources下创建一个名为MyTestFolder的文件夹AssetDatabase.CreateFolder("Assets/Resources", "MyTestFolder");}// 拷贝资源按钮if (GUILayout.Button("拷贝资源")){// 将Assets/Resources/TestURPLitMaterial.mat拷贝到Assets/Resources/MyTestFolder/TestURPLitMaterialCopy.matAssetDatabase.CopyAsset("Assets/Resources/TestURPLitMaterial.mat", "Assets/Resources/MyTestFolder/TestURPLitMaterialCopy.mat");}// 移动资源按钮if (GUILayout.Button("移动资源")){// 将Assets/Resources/MyTestFolder/TestURPLitMaterialCopy.mat移动到Assets/Resources/TestURPLitMaterialCopy.matAssetDatabase.MoveAsset("Assets/Resources/MyTestFolder/TestURPLitMaterialCopy.mat","Assets/Resources/TestURPLitMaterialCopy.mat");}// 删除资源按钮if (GUILayout.Button("删除资源")){// Assets/Resources/TestURPLitMaterialCopy.matAssetDatabase.DeleteAsset("Assets/Resources/TestURPLitMaterialCopy.mat");}// 批量删除资源按钮if (GUILayout.Button("批量删除资源")){// 创建一个列表,用于存储删除失败的资源List<string> failList = new List<string>();// 批量删除Assets/Resources/TestURPLitMaterial.mat和Assets/Resources/TestURPLitMaterial2.matAssetDatabase.DeleteAssets(new string[] { "Assets/Resources/TestURPLitMaterial.mat", "Assets/Resources/TestURPLitMaterial2.mat" }, failList);// 遍历删除失败的资源列表,并输出到控制台for (int i = 0; i < failList.Count; i++){Debug.Log(failList[i]);} }// 获取资源路径按钮if (GUILayout.Button("获取资源路径")){// 输出当前选中的资源的路径Debug.Log(AssetDatabase.GetAssetPath(Selection.activeObject));}// 加载资源按钮if (GUILayout.Button("加载资源")){// 加载Assets/测试文件.txt,并输出其名称TextAsset txt = AssetDatabase.LoadAssetAtPath<TextAsset>("Assets/测试文件.txt");Debug.Log(txt.name);}// 创建文件并刷新资源按钮if (GUILayout.Button("创建文件并刷新资源")){// 创建文件时,如果不使用Unity相关API的话,需要调用刷新,才能在Project窗口中显示File.WriteAllText(Application.dataPath + "/Resources/test2.txt", "内容内容内容");AssetDatabase.Refresh();}// 返回资源所属的AB包名按钮if (GUILayout.Button("返回资源所属的AB包名")){string assetPath = "Assets/Resources/MyPrefab.prefab";string bundleName = AssetDatabase.GetImplicitAssetBundleName(assetPath);if (!string.IsNullOrEmpty(bundleName)){Debug.Log($"资源 {assetPath} 属于AssetBundle: {bundleName}");}else{Debug.Log($"资源 {assetPath} 不属于任何AssetBundle");}}}
}

专栏推荐

地址
【unity游戏开发入门到精通——C#篇】
【unity游戏开发入门到精通——unity通用篇】
【unity游戏开发入门到精通——unity3D篇】
【unity游戏开发入门到精通——unity2D篇】
【unity实战】
【制作100个Unity游戏】
【推荐100个unity插件】
【实现100个unity特效】
【unity框架/工具集开发】
【unity游戏开发——模型篇】
【unity游戏开发——InputSystem】
【unity游戏开发——Animator动画】
【unity游戏开发——UGUI】
【unity游戏开发——联网篇】
【unity游戏开发——优化篇】
【unity游戏开发——shader篇】
【unity游戏开发——编辑器扩展】

完结

好了,我是向宇,博客地址:https://xiangyu.blog.csdn.net,如果学习过程中遇到任何问题,也欢迎你评论私信找我。

赠人玫瑰,手有余香!如果文章内容对你有所帮助,请不要吝啬你的点赞评论和关注,你的每一次支持都是我不断创作的最大动力。当然如果你发现了文章中存在错误或者有更好的解决方法,也欢迎评论私信告诉我哦!
在这里插入图片描述

http://www.dtcms.com/wzjs/303373.html

相关文章:

  • 做营销型网站公司网站seo如何优化
  • 网站投票活动怎么做个人在百度上发广告怎么发
  • 陕西建设教育网站无锡百度竞价
  • wordpress 小学生重庆网页优化seo
  • 网站开发商品排序逻辑品牌网站设计
  • 凡客网站登录廊坊seo排名霸屏
  • 常德市网站建设关键词seo排名怎么做的
  • 做网站的公司创业杭州seo
  • 分类信息网站手机版我要软文网
  • 网站开发思维导图内容营销策划书
  • 营销网站的关键字网络营销软文
  • 网站备案真麻烦seo外链怎么做
  • 电信ip做的网站移动不能访问爱站权重
  • 广州高端做网站微信视频号小店
  • 哪里网站可以有做那个的女人智能建站系统
  • 建站工具 营销网络营销的成功案例分析
  • 菏泽网站建设 梧桐树最佳的搜索引擎
  • 玉环专业做网站怎么在百度发布信息
  • 做网站要租服务器吗抖音seo排名优化软件
  • 昆山高端网站建设机构手把手教你优化网站
  • 临沂网站建设小程序广州抖音推广公司
  • 北京住房和城乡建设部网站百度竞价排名费用
  • 产业协会建设网站方案桂林市天气预报
  • 怎样做网站策划有没有购买链接
  • 自己如何做简单网站的搜索引擎优化
  • 手机电视网站大全百度网站是什么
  • 新疆自治区建设厅官方网站营销公司
  • 网站类的知识怎么推广销售
  • wordpress云建站教程sem广告
  • 做网站路径百度推广业务电话