unity 几个小工具 您所在的位置:网站首页 Unity工具 unity 几个小工具

unity 几个小工具

2022-06-11 15:37| 来源: 网络整理| 查看: 265

清理本地游戏数据 [MenuItem ("Game/清理本地游戏数据 %k")] private static void CleanData () { string[] dataArr = Directory.GetFileSystemEntries (Application.persistentDataPath); foreach (string data in dataArr) { if (File.Exists (data)) { File.Delete (data); } if (Directory.Exists (data)) { Directory.Delete (data); } } PlayerPrefs.DeleteAll (); Debug.Log ("清理完成。"); }

Directory.GetFileSystemEntries(_path):获取路径下所有的文件和文件夹的名称。 PlayerPrefs.DeleteAll():清除PlayerPrefs下所有的数据。

获取gameObject的路径

有时我们在代码中需要获取到gameObject的路径,例如transform.Find("XX/XX/XX/XX/XX/XX");如果层级很多写起来就比较麻烦,而且可能写错,这里的方法可以在Hierarchy窗口里选中gameObject时右键点出窗口来将路径放入剪贴板,在ctrl+v即可。

image.png //递归调用获取路径 private static string GetPath (GameObject go) { Transform trans_parent = go.transform.parent; if (trans_parent == null) { return go.name; } else { return GetPath (trans_parent.gameObject) + "/" + go.name; } } [MenuItem ("GameObject/GetPath &c", priority = 0)] private static void RootPath () { GameObject go = Selection.activeGameObject; if (go == null) { return; } string path = GetPath (go); EditorGUIUtility.systemCopyBuffer = path; Debug.Log (path + "\n获取路径成功。"); }

先使用递归获取路径,再将获取到的string放入剪切板即可。 MenuItem 里的&c 表示快捷键是 Alt + C ,%c则表示为Ctrl + C。 priority = 0 表示优先级,即在弹出窗口中的顺序。

判断Text里是否用到了Arial字体

有时Text如果用了默认的Arial字体,会在设备中显示异常,以下的方法可以筛选出包含Arial的Text并选中它。

[MenuItem ("Game/Find Text With Arial &2")] private static void FindTextWithArial () { GameObject go = GameObject.Find ("Canvas"); Text[] textArr = go.GetComponentsInChildren (); foreach (Text text in textArr) { bool haveTarget = false; if (text.font == null) { Debug.Log ("无字体"); haveTarget = true; } else { if (text.font.name == "Arial") { Debug.Log ("该字体为 Arial的Text路径 path =" + GetPath (text.gameObject)); haveTarget = true; } } if (haveTarget) { Selection.activeGameObject = text.gameObject; return; } } } 设置自定义宏 [MenuItem ("Game/设置 ASYNC_MODE")] private static void SetAsyncMode () { string symbol = "ASYNC_MODE"; PlayerSettings.SetScriptingDefineSymbolsForGroup (BuildTargetGroup.Android, symbol); PlayerSettings.SetScriptingDefineSymbolsForGroup (BuildTargetGroup.Standalone, symbol); PlayerSettings.SetScriptingDefineSymbolsForGroup (BuildTargetGroup.iOS, symbol); }


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有