C# Unity预制体绑定spine SkeleDataAsset 工具 v1版

导语

这个版本比较通用,部分扩展功能还没有来得级实现,如有特殊要求,还望自行修改。
话不多少说,代码一般,还望见谅。

美术资源匹配工具
    --- 功能需求
	
	    --- 基本功能
	        --- 根据文件名自动绑定对应名称的Unity 预制件
	        --- 检查源文加夹和对应文件夹的重名情况
			
		--- 扩展功能
		    --- 指定文件名操作绑定Unity 预制件
			--- 大批量更新
		
	--- 需求文件
	    --- 美术资源源文件夹(UI文件)
		--- 项目路径下的美术资源文件夹(../animation/sprite)
		--- 项目路径下的Unity预制件文件夹(../Modules/Sprite)
		
	--- 基本功能逻辑流程
	    --- 获取美术资源文件夹地址
	
	    --- 默认项目路径下的美术资源文件夹(../animation/sprite)
		
		--- 默认项目路径下的Unity预制件文件夹(../Modules/Sprite)
		
	    --- 检索美术资源源文件夹下所有文件
		    --- 检查同名文件下是否包含( .atlas.txt/.skel.bytes/.png/_Atlas.asset/_Material/_SkeletonData.asset)
			    --- 缺少对应文件打印错误信息
				--- 生成错误文本(时间 + ".txt")
				--- 把错误信息写入错误文本
				--- 跳过该文件
					
		--- 检查项目路径下的美术资源文件夹下所有文件
		    --- 检查源文件夹中对应同名文件是否齐全,应包含( .atlas.txt/.skel.bytes/.png/_Atlas.asset/_Material/_SkeletonData.asset)
			    --- 文件缺失
				    --- 从源文件夹下复制该文件到目标文件夹
				--- 文件齐全
				    --- 创建对应文件名.prefab文件到项目路径下的Unity预制件文件夹(../Modules/Sprite)
		
		--- 资源设置绑定
		    --- 设置Rect Trasform 的 position X,Y,Z为0,Width,Height 为 100,Scale为1
		    --- 添加脚本组件(Skeleton Graphic)
			    --- 通过该资源名找到项目路径下的美术资源文件夹目录的同名_SkeletonData.asset("1231545"+_SkeletonData.asset)
				--- 绑定到脚本组件(Skeleton Graphic)下的Skeleton Data Asset下
				--- 绑定完成后打印完成信息(name+".prefab绑定完成")
	   
		--- 退出功能

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
		
	---扩展功能逻辑流程
	
	    --- 指定操作绑定Unity预制件
		
	        --- 索引项目路径下的美术资源文件夹
		        --- 找到指定文件名("123456231")
		        --- 创建对应Unity 预制件("123456231" + ".prefab")
				--- 进入资源设置绑定逻辑
				
		--- 大批量更新
		
		    --- 找到美术资源源文件夹(UI文件)
			     --- 检索美术资源源文件夹下所有文件
		             --- 检查同名文件下是否包含( .atlas.txt/.json/.png/_Atlas.asset/_Material/_SkeletonData.asset)
			         --- 缺少对应文件打印错误信息
					 --- 生成错误文本(时间 + "大批量更新错误.txt")
				     --- 把错误信息写入错误文本
				     --- 中断程序运行
					 
		    --- 找到项目路径下的美术资源文件夹(../animation/sprite)
			    --- 清空所有文件
				
			--- 找到项目路径下的Unity预制件文件夹(../Modules/Sprite)
			    --- 清空所有文件
			
			--- 进入基本功能逻辑流程
			
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
具体实现

using System;
using System.IO;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;


/// <summary>
/// author:pigsohappy(CSDN论坛名)
/// 功能需求:
/// 针对美术资源引用需求做的小工具,还可以继续优化添加功能
/// 
/// 准备工作:
/// 使用前请手动修改 ArtResource(美术资源文件夹) aimFile(项目内存放文件夹第一层Resources目录下) preFile(项目内保存预制的文件夹)
/// 
/// 工具入口:
/// Unity窗口工具栏Tools/ArtResource
/// 
/// 具体功能:
/// Examine(检查导入)直接从美术资源目录导入到工程内目标目录(.png,.atlas.txt,.skel.bytes三种格式文件。注意:扩展名不符合将不会被导入项目工程内)
/// UpData(更新生成预制)根据项目内目标文件夹的Png文件Id创建同名预制,并且绑定同名的"_SkeletonData"文件
/// Browse(浏览对比美术资源)判断美术资源目录的同id的(.png,.atlas.txt,.skel.bytes三种格式文件)数量、ID是否相同,生成检查和错误日志。
/// </summary>


public class ArtTools : Editor                                                        //继承于UnityEditor类
    {
    //统一创建资源路径

    //美术资源
    class ResourcePath
    {
        public string ArtResource = @"E:\UI文件\角色";
        public string aimFile = @"E:\pro\Resources\123";
        public string preFile = @"E:\pro\Assets\Modules\prefab";
        public string [] Pngfiles = Directory.GetFiles(@"E:\UI文件\角色", "*.png", SearchOption.AllDirectories);
        public string [] AssetFiles = Directory.GetFiles(@"E:\UI文件\角色", "*.atlas.txt", SearchOption.AllDirectories);
        public string [] SkelFiles = Directory.GetFiles(@"E:\UI文件\角色", "*.skel.bytes", SearchOption.AllDirectories);
        public string ReportPath = @"E:\pro\Resources\logrecord\";
    }

    //项目内资源目录
    class PrefabFile
    {
        public string[] Png = Directory.GetFiles(@"E:\pro\lzClientDemo1\Assets\LZ\Resources\123", "*.png", SearchOption.AllDirectories);
        public string[] Asset = Directory.GetFiles(@"E:\pro\lzClientDemo1\Assets\LZ\Resources\123", "*.atlas.txt", SearchOption.AllDirectories);
        public string[] Skel = Directory.GetFiles(@"E:\pro\lzClientDemo1\Assets\LZ\Resources\123", "*.skel.bytes", SearchOption.AllDirectories);
        public string[] SkeletonFile = Directory.GetFiles(@"E:\pro\lzClientDemo1\Assets\LZ\Resources\123", "*_SkeletonData.a
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值