unity 工具开发基础
using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Text;
using UnityEngine;
using UnityEditor;
/// <summary>
/// Unity基础工具功能
/// priority菜单项显示排序
/// </summary>
public class TestEditor : MonoBehaviour { [MenuItem("GameObject/获取选中的物体名称", priority = )]
static string GetSelectObject(){
GameObject _selectObject = Selection.gameObjects [];
Debug.Log (_selectObject.name);
return _selectObject.name;
} [MenuItem("GameObject/获取Project视图中的文件和文件夹路径", priority = )]
static string GetSelectFile(){
string[] guidArray = Selection.assetGUIDs;//从meta文件里面取得id
string selectName = AssetDatabase.GUIDToAssetPath (guidArray []);//根据id取得路径
string path = Application.dataPath.Substring (, Application.dataPath.Length - );
Debug.Log (path + selectName);
return path + selectName;
} [MenuItem("GameObject/创建新文件", priority = )]
static void CreateNewFile(){
File.WriteAllText (GetSelectFile () + "/UI_" + GetSelectObject () + ".lua", "xxx文本内容xxx", Encoding.UTF8);
AssetDatabase.Refresh ();
} [MenuItem("GameObject/创建文件夹", priority = )]
static void CreateFolder(){
Directory.CreateDirectory(Application.dataPath + "/文件夹名称");
AssetDatabase.Refresh ();
}
}
放Editor文件下
editor修改prefab https://cnblogs.com/klkucan/p/4934518.html
-10-23新增
[MenuItem("GameObject/获取用户名和当前时间", priority = )]
static void GetUserName(){
string username = System.Environment.UserName;
var time = System.DateTime.Now;
Debug.Log (username);
Debug.Log (time);
}
[MenuItem("GameObject/打印选择物体的子物体路径", priority = )]
static void GetChildPath()
{
Transform _selectObject = Selection.gameObjects[].transform;
GetChildObject (_selectObject, _selectObject.name);
}
static void GetChildObject(Transform trans, string path){
for(int i = ; i < trans.childCount; i++){
Transform child = trans.GetChild (i);
string comPath = path + "_" + child.name;
GetChildObject (child, comPath);
}
//输出条件:最末端物体 (自由更改)
if(trans.childCount == ){
Debug.Log (path);
}
}
打印 路径 和 名字
static void CreateUI(){
string[] guidArray = Selection.assetGUIDs;
foreach (var item in guidArray)
{
//打印路径
string selecetFloder = AssetDatabase.GUIDToAssetPath(item);
Debug.Log(selecetFloder);
//打印名字
string selectName = Path.GetFileName(selecetFloder);
Debug.Log(selectName);
}
}
遍历文件夹下的包括子文件夹的后缀带有xx文件
以lua为例
[MenuItem("Assets/check",priority = )]
static void CheckChinese()
{
string[] guidArray = Selection.assetGUIDs;
foreach (var item in guidArray)
{
string selectFloder = AssetDatabase.GUIDToAssetPath(item);
DirectoryInfo root = new DirectoryInfo(selectFloder);
GetFloder(root);
}
}
static void GetFloder(DirectoryInfo root)
{
GetFile(root);
//查找子文件夹
DirectoryInfo[] array = root.GetDirectories();
//Debug.Log(root);
foreach (DirectoryInfo item in array)
{
GetFloder(item);
}
}
static void GetFile(DirectoryInfo root)
{
//DirectoryInfo root = new DirectoryInfo(path);
FileInfo[] fileDic = root.GetFiles();
foreach (var file in fileDic)
{
//sDebug.Log(file);
if (file.FullName.EndsWith("lua"))
{
Debug.Log("-------------" + file.Name);
}
}
}
//获取指定类型资源的路径
string[] spritesPath =
AssetDatabase.FindAssets("t:Sprite", new string[] {Application.dataPath + "/Resources/Sprites/Cloud"}); --------------------------------2019-8-28------------------------------------
代码设置Animator的参数,animator 转 AnimatorController
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;
using Spine.Unity;
using UnityEditor.Animations; /// <summary>
/// 制作怪物预制体
/// </summary>
public class CreateMonsterPrefab { [MenuItem("GameObject/添加怪物Animator参数", priority = )]
static void SetACPara()
{
Debug.Log("设置参数");
GameObject _selectObject = Selection.gameObjects[];
AnimatorController controller = _selectObject.GetComponent<Animator>().runtimeAnimatorController as AnimatorController; AddParameter(controller, "Die", AnimatorControllerParameterType.Bool);
AddParameter(controller, "Move", AnimatorControllerParameterType.Bool);
AddParameter(controller, "Hurt", AnimatorControllerParameterType.Bool);
AddParameter(controller, "IsDead", AnimatorControllerParameterType.Bool);
AddParameter(controller, "Speed", AnimatorControllerParameterType.Float);
AddParameter(controller, "Vertigo", AnimatorControllerParameterType.Bool);
AddParameter(controller, "Execute", AnimatorControllerParameterType.Bool);
AddParameter(controller, "IsMoveModeEnable", AnimatorControllerParameterType.Bool);
AddParameter(controller, "Frozen", AnimatorControllerParameterType.Bool);
AddParameter(controller, "Warning", AnimatorControllerParameterType.Bool);
AddParameter(controller, "IsWarning", AnimatorControllerParameterType.Trigger);
AddParameter(controller, "IsAtk", AnimatorControllerParameterType.Bool);
AddParameter(controller, "Attack", AnimatorControllerParameterType.Int);
AddParameter(controller, "AtkType", AnimatorControllerParameterType.Int);
AddParameter(controller, "MoveType", AnimatorControllerParameterType.Int);
AddParameter(controller, "AttackType", AnimatorControllerParameterType.Int); Debug.Log("设置成功");
} //添加
static void AddParameter(AnimatorController controller, string name, AnimatorControllerParameterType _type)
{
if (!CheckParameters(controller, name))
{
controller.AddParameter(name, _type);
}
} //检查
static bool CheckParameters(AnimatorController controller, string parName)
{
foreach (var item in controller.parameters)
{
if (item.name.Equals(parName))
{
return true;
}
}
return false;
}
}
不错的教程:
https://blog.csdn.net/q764424567/article/details/80908614
unity 工具开发基础的更多相关文章
- 【Unity】第6章 Unity脚本开发基础
分类:Unity.C#.VS2015 创建日期:2016-04-16 一.简介 游戏吸引人的地方在于它的可交互性.如果游戏没有交互,场景做得再美观和精致,也难以称其为游戏. 在Unity中,游戏交互通 ...
- Unity脚本开发基础 C#
1. MonoBehaviour 类 常用事件响应函数: 2. 访问游戏对象 (1) 通过名称来查找 (2) 通过标签来查找 上述函数比较费时,应避免在 Update 函数调用. 3. 访问组件 对于 ...
- unity工具开发
1.EditorWindow通过拖拽获取文件夹或者文件路径 #region 拖拽相关 Rect rect4 = EditorGUILayout.GetControlRect(); //将上面的框作为文 ...
- PHP开发工具PHP基础教程
PHP开发 工具PHP基础教程,以下是兄弟连PHP培训小编整理: PHP IDE PHP IDE也不少,主要从几个方面进行筛选: 跨平台(能够同时在windows,mac或者ubuntu上面运 ...
- C# Unity游戏开发——Excel中的数据是如何到游戏中的 (四)2018.4.3更新
本帖是延续的:C# Unity游戏开发--Excel中的数据是如何到游戏中的 (三) 最近项目不算太忙,终于有时间更新博客了.关于数据处理这个主题前面的(一)(二)(三)基本上算是一个完整的静态数据处 ...
- 1.2Linux下C语言开发基础(学习过程)
===============第二节 Linux下C语言开发基础=========== ********************** 重要知识点总结梳理********************* 一 ...
- IOS开发基础知识碎片-导航
1:IOS开发基础知识--碎片1 a:NSString与NSInteger的互换 b:Objective-c中集合里面不能存放基础类型,比如int string float等,只能把它们转化成对象才可 ...
- 从零3D基础入门XNA 4.0(1)——3D开发基础
[题外话] 最近要做一个3D动画演示的程序,由于比较熟悉C#语言,再加上XNA对模型的支持比较好,故选择了XNA平台.不过从网上找到很多XNA的入门文章,发现大都需要一些3D基础,而我之前并没有接触过 ...
- Android 开发基础及环境配置
2011年买了第一部安卓操作系统的手机,当时势头正盛的HTC不可思议(incredible),当时的想法就是想学习下智能手机开发,但是由于各种原因,客观上是公司的项目太忙了,忙于项目管理.团队建设.客 ...
随机推荐
- java中介者模式
中介者模式也是用来降低类类之间的耦合的,因为如果类类之间有依赖关系的话,不利于功能的拓展和维护,因为只要修改一个对象,其它关联的对象都得进行修改.如果使用中介者模式,只需关心和Mediator类的关系 ...
- 【Newtonsoft.Json.dll】操作列表JSON数据
JObject data = JObject.Parse(json); JArray array = JArray.Parse(data["list"] + "" ...
- 2、ASP .NETCore 2.0之视图
一.Razor基础 声明:Razor不是编程语言,是服务器端标记语言.Razor是一种允许开发者在网页中嵌入服务器端代码的标记语法(主要是针对VB和C#). 1.C#中Razor基本语法 (1).Ra ...
- SqlServer发布订阅
我们在开发系统的时候,经常会遇到高并发的问题,还有高可用性和安全性方面的考虑,需要用读写分离的方案来解决问题.也就是在我们使用数据库比较多,更新少而查询比较多的情况下使用读写分离,实现提高性能,减少数 ...
- bzoj4241: 历史研究(回滚莫队)
传送门 这是一个叫做回滚莫队的神奇玩意儿 是询问,而且不强制在线,就决定是你了莫队 如果是每次插入一个数是不是很简单? 然而悲剧的是我们莫队的时候不仅要插入数字还要删除数字 那么把它变成只插入不就行了 ...
- objectARX 添加线型下拉组合框空间 CAcUiLineTypeComboBox
不知道是有意还是无意,objectARX的所有文档中,居然没有CAcUiLineTypeComboBox, 而实际上这个是存在的.位于\inc\acuiComboBox.h 而在添加变量的向导中也没有 ...
- [ActionScript 3.0] 像素级碰撞检测
package { import flash.display.BitmapData; import flash.display.BlendMode; import flash.display.Disp ...
- centos7 docker 安装 zookeeper 3.4.13 单机standalone
假设一台单机主机的ip分别为: 单机主机:192.168.0.200 1. 查找zookeeper镜像: docker search zookeeper 2. 下载官方zookeeper镜像: doc ...
- Docker 下系统日志恢复
众所周知,docker 是一款进程级虚拟机.上文我们已经分析解释了该如何使用,本文针对日志消失问题进行恢复与解释. Docker 可以理解为阉割版的系统,内部功能不全.可以通过组件安装进行基本功能恢复 ...
- 集成 jpush-react-native 常见问题汇总 (iOS 篇)
给 iOS 应用添加推送功能是一件比较麻烦的事情,本篇文章收集了集成 jpush-react-native 的常见问题,目的是为了帮助用户更好地排查问题 1. 收不到推送 确保是在真机上测试,而不是在 ...