1. using System.Collections;
  2. using System.Collections.Generic;
  3. using System.IO;
  4. using System.Text;
  5. using UnityEngine;
  6. using UnityEditor;
  7. /// <summary>
  8. /// Unity基础工具功能
  9. /// priority菜单项显示排序
  10. /// </summary>
  11. public class TestEditor : MonoBehaviour {
  12.  
  13. [MenuItem("GameObject/获取选中的物体名称", priority = )]
  14. static string GetSelectObject(){
  15. GameObject _selectObject = Selection.gameObjects [];
  16. Debug.Log (_selectObject.name);
  17. return _selectObject.name;
  18. }
  19.  
  20. [MenuItem("GameObject/获取Project视图中的文件和文件夹路径", priority = )]
  21. static string GetSelectFile(){
  22. string[] guidArray = Selection.assetGUIDs;//从meta文件里面取得id
  23. string selectName = AssetDatabase.GUIDToAssetPath (guidArray []);//根据id取得路径
  24. string path = Application.dataPath.Substring (, Application.dataPath.Length - );
  25. Debug.Log (path + selectName);
  26. return path + selectName;
  27. }
  28.  
  29. [MenuItem("GameObject/创建新文件", priority = )]
  30. static void CreateNewFile(){
  31. File.WriteAllText (GetSelectFile () + "/UI_" + GetSelectObject () + ".lua", "xxx文本内容xxx", Encoding.UTF8);
  32. AssetDatabase.Refresh ();
  33. }
  34.  
  35. [MenuItem("GameObject/创建文件夹", priority = )]
  36. static void CreateFolder(){
  37. Directory.CreateDirectory(Application.dataPath + "/文件夹名称");
  38. AssetDatabase.Refresh ();
  39. }
  40. }

放Editor文件下

editor修改prefab    https://cnblogs.com/klkucan/p/4934518.html

-10-23新增

  1. [MenuItem("GameObject/获取用户名和当前时间", priority = )]
  2. static void GetUserName(){
  3. string username = System.Environment.UserName;
  4. var time = System.DateTime.Now;
  5. Debug.Log (username);
  6. Debug.Log (time);
  7. }
  8.  
  9. [MenuItem("GameObject/打印选择物体的子物体路径", priority = )]
  10. static void GetChildPath()
  11. {
  12. Transform _selectObject = Selection.gameObjects[].transform;
  13. GetChildObject (_selectObject, _selectObject.name);
  14. }
  15.  
  16. static void GetChildObject(Transform trans, string path){
  17. for(int i = ; i < trans.childCount; i++){
  18. Transform child = trans.GetChild (i);
  19. string comPath = path + "_" + child.name;
  20. GetChildObject (child, comPath);
  21. }
  22. //输出条件:最末端物体 (自由更改)
  23. if(trans.childCount == ){
  24. Debug.Log (path);
  25. }
  26. }

打印 路径 和 名字

  1. static void CreateUI(){
  2. string[] guidArray = Selection.assetGUIDs;
  3. foreach (var item in guidArray)
  4. {
  5. //打印路径
  6. string selecetFloder = AssetDatabase.GUIDToAssetPath(item);
  7. Debug.Log(selecetFloder);
  8. //打印名字
  9. string selectName = Path.GetFileName(selecetFloder);
  10. Debug.Log(selectName);
  11. }
  12. }

遍历文件夹下的包括子文件夹的后缀带有xx文件

以lua为例

  1. [MenuItem("Assets/check",priority = )]
  2. static void CheckChinese()
  3. {
  4. string[] guidArray = Selection.assetGUIDs;
  5. foreach (var item in guidArray)
  6. {
  7. string selectFloder = AssetDatabase.GUIDToAssetPath(item);
  8. DirectoryInfo root = new DirectoryInfo(selectFloder);
  9. GetFloder(root);
  10. }
  11. }
  12.  
  13. static void GetFloder(DirectoryInfo root)
  14. {
  15. GetFile(root);
  16. //查找子文件夹
  17. DirectoryInfo[] array = root.GetDirectories();
  18. //Debug.Log(root);
  19. foreach (DirectoryInfo item in array)
  20. {
  21. GetFloder(item);
  22. }
  23. }
  24.  
  25. static void GetFile(DirectoryInfo root)
  26. {
  27. //DirectoryInfo root = new DirectoryInfo(path);
  28. FileInfo[] fileDic = root.GetFiles();
  29. foreach (var file in fileDic)
  30. {
  31. //sDebug.Log(file);
  32. if (file.FullName.EndsWith("lua"))
  33. {
  34. Debug.Log("-------------" + file.Name);
  35. }
  36. }
  37. }
  1. //获取指定类型资源的路径
    string[] spritesPath =
    AssetDatabase.FindAssets("t:Sprite", new string[] {Application.dataPath + "/Resources/Sprites/Cloud"});
  2.  
  3. --------------------------------2019-8-28------------------------------------
    代码设置Animator的参数,animator AnimatorController
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. using UnityEditor;
  5. using Spine.Unity;
  6. using UnityEditor.Animations;
  7.  
  8. /// <summary>
  9. /// 制作怪物预制体
  10. /// </summary>
  11. public class CreateMonsterPrefab {
  12.  
  13. [MenuItem("GameObject/添加怪物Animator参数", priority = )]
  14. static void SetACPara()
  15. {
  16. Debug.Log("设置参数");
  17. GameObject _selectObject = Selection.gameObjects[];
  18. AnimatorController controller = _selectObject.GetComponent<Animator>().runtimeAnimatorController as AnimatorController;
  19.  
  20. AddParameter(controller, "Die", AnimatorControllerParameterType.Bool);
  21. AddParameter(controller, "Move", AnimatorControllerParameterType.Bool);
  22. AddParameter(controller, "Hurt", AnimatorControllerParameterType.Bool);
  23. AddParameter(controller, "IsDead", AnimatorControllerParameterType.Bool);
  24. AddParameter(controller, "Speed", AnimatorControllerParameterType.Float);
  25. AddParameter(controller, "Vertigo", AnimatorControllerParameterType.Bool);
  26. AddParameter(controller, "Execute", AnimatorControllerParameterType.Bool);
  27. AddParameter(controller, "IsMoveModeEnable", AnimatorControllerParameterType.Bool);
  28. AddParameter(controller, "Frozen", AnimatorControllerParameterType.Bool);
  29. AddParameter(controller, "Warning", AnimatorControllerParameterType.Bool);
  30. AddParameter(controller, "IsWarning", AnimatorControllerParameterType.Trigger);
  31. AddParameter(controller, "IsAtk", AnimatorControllerParameterType.Bool);
  32. AddParameter(controller, "Attack", AnimatorControllerParameterType.Int);
  33. AddParameter(controller, "AtkType", AnimatorControllerParameterType.Int);
  34. AddParameter(controller, "MoveType", AnimatorControllerParameterType.Int);
  35. AddParameter(controller, "AttackType", AnimatorControllerParameterType.Int);
  36.  
  37. Debug.Log("设置成功");
  38. }
  39.  
  40. //添加
  41. static void AddParameter(AnimatorController controller, string name, AnimatorControllerParameterType _type)
  42. {
  43. if (!CheckParameters(controller, name))
  44. {
  45. controller.AddParameter(name, _type);
  46. }
  47. }
  48.  
  49. //检查
  50. static bool CheckParameters(AnimatorController controller, string parName)
  51. {
  52. foreach (var item in controller.parameters)
  53. {
  54. if (item.name.Equals(parName))
  55. {
  56. return true;
  57. }
  58. }
  59. return false;
  60. }
  61. }
  1. 不错的教程:
    https://blog.csdn.net/q764424567/article/details/80908614

unity 工具开发基础的更多相关文章

  1. 【Unity】第6章 Unity脚本开发基础

    分类:Unity.C#.VS2015 创建日期:2016-04-16 一.简介 游戏吸引人的地方在于它的可交互性.如果游戏没有交互,场景做得再美观和精致,也难以称其为游戏. 在Unity中,游戏交互通 ...

  2. Unity脚本开发基础 C#

    1. MonoBehaviour 类 常用事件响应函数: 2. 访问游戏对象 (1) 通过名称来查找 (2) 通过标签来查找 上述函数比较费时,应避免在 Update 函数调用. 3. 访问组件 对于 ...

  3. unity工具开发

    1.EditorWindow通过拖拽获取文件夹或者文件路径 #region 拖拽相关 Rect rect4 = EditorGUILayout.GetControlRect(); //将上面的框作为文 ...

  4. PHP开发工具PHP基础教程

        PHP开发 工具PHP基础教程,以下是兄弟连PHP培训小编整理: PHP IDE PHP IDE也不少,主要从几个方面进行筛选: 跨平台(能够同时在windows,mac或者ubuntu上面运 ...

  5. C# Unity游戏开发——Excel中的数据是如何到游戏中的 (四)2018.4.3更新

    本帖是延续的:C# Unity游戏开发--Excel中的数据是如何到游戏中的 (三) 最近项目不算太忙,终于有时间更新博客了.关于数据处理这个主题前面的(一)(二)(三)基本上算是一个完整的静态数据处 ...

  6. 1.2Linux下C语言开发基础(学习过程)

    ===============第二节  Linux下C语言开发基础=========== ********************** 重要知识点总结梳理********************* 一 ...

  7. IOS开发基础知识碎片-导航

    1:IOS开发基础知识--碎片1 a:NSString与NSInteger的互换 b:Objective-c中集合里面不能存放基础类型,比如int string float等,只能把它们转化成对象才可 ...

  8. 从零3D基础入门XNA 4.0(1)——3D开发基础

    [题外话] 最近要做一个3D动画演示的程序,由于比较熟悉C#语言,再加上XNA对模型的支持比较好,故选择了XNA平台.不过从网上找到很多XNA的入门文章,发现大都需要一些3D基础,而我之前并没有接触过 ...

  9. Android 开发基础及环境配置

    2011年买了第一部安卓操作系统的手机,当时势头正盛的HTC不可思议(incredible),当时的想法就是想学习下智能手机开发,但是由于各种原因,客观上是公司的项目太忙了,忙于项目管理.团队建设.客 ...

随机推荐

  1. vim的基本使用

    Vim 编辑器中设置了三种模式—命令模式.末行模式和编辑模式,每种模式分别又支持多种不同的命令快捷键,这大大提高了工作效率,而且用户在习惯之后也会觉得相当顺手.要想高效率地操作文本,就必须先搞清这三种 ...

  2. ResorceGovernor--基础和Demo

    资源调控器分为三部分:1:资源池,将资源CPU/MEMORY划分到不同的载体上2:负载组,承载负载并将负载映射到不同的资源池3: 分类函数,将不同回话映射到不同的负载组08提供两种预定义的系统资源池1 ...

  3. 疑难杂症--已停止运行DBCC造成阻塞

    场景数据库因非法断电导致出现分配页上不一致,运行完DBCC CHECKDB后出现以下错误: 表错误: 表 't_pc_id' (ID 277576027).数据行在索引 'last_login_dat ...

  4. uwsgi启动提示:probably another instance of uWSGI is running on the same address (:8002). bind(): Address already in use [core/socket.c line 769]

    提示8002端口被占用,可以这样终止掉后再启动 sudo fuser -k 8002/tcp

  5. 使用PHPstudy在Windows服务器下部署PHP系统

    PHP网站一般运行在Apache服务器上,IIS服务器上也可以运行,但是不推荐,windows服务器上没有集成Apache跟PHP的运行环境,但是借助第三方的软件就能很好的搞定,一般这样的软件有很多, ...

  6. html5 表格标签 table tr td

      最重要的三个 <table>     表格声明标签 属性: boarder    边框粗细 style    可配合css 使用 <tr>    行标签 table row ...

  7. linux命令之系统管理命令(下)

    1.chkconfig:管理开机服务 该命令为linux系统中的系统服务管理工具,可以查询和更新不同的运行等级下系统服务的启动状态. 选项 说明 --list(常用) 显示不同运行级别下服务的启动状态 ...

  8. 对Java意义重大的7个性能指标

      本文中,小编搜集了7个最有影响的衡量标注,让你可以不依赖日志文件来了解应用程序现在,让我们看看这些性能指标,并了解如何查看并收集它们.: 一,响应时间和吞吐量 根据应用程序的响应时间可以知道程序完 ...

  9. 缺少libtool依赖导致编译安装失败

    今天安装一个测试数据库的过程中,编译安装rlwrap工具时出错. 如下. [root@DB1 rlwrap-0.37]# ./configure checking build system type. ...

  10. KVM 安装 VMware 虚拟机

    去掉了“双引号”改为:vmx.allowNested = TRUE 打开在其中创建虚拟机的文件夹VMDISK和搜索与您的虚拟机的名称. vmx 文件. 用记事本打开它,并添加上述条目. 所以 vmx. ...