用odin实现的资源复制编辑器

用odin实现了一个资源复制编辑器,使用要安装odin,功能是把要复制的资源路径一个个添加设置,点copy能把列表里的资源全部复制,支持目录复制到目录,文件复制到目录,文件复制替换。提升效率,让自己有更多的时间研究其他东西或者休息,需要注意的是只有一个目标路径的情况下,不能同时填源文件路径和源文件夹路径,不然不知道要拷贝文件还是文件夹,这个应该很好理解吧。代码如下:

using UnityEditor;
using UnityEngine;
using Sirenix.OdinInspector.Editor;
using Sirenix.OdinInspector;
using System;
using System.IO;
using System.Collecttions.Generic;
public class PathTableListWindow : OdinEditorWindow
{[MenuItem("Window/Open Path Table List")]private static void OpenWindow(){// GetExistingOrCreateNewWindow 是一个用于创建或获取已存在窗口的辅助方法var window = GetWindow<PathTableListWindow>();window.Show();}// 示例数据,用于在编辑器窗口中显示[TableList]public List<Item> PathItems = new List<Item>();[Button("Copy")]private void CopyAssets(){foreach(var item in PathItems){if (Directory.Exists(item.SourcePath)){// 如果源路径是文件夹,则递归复制所有文件和子文件夹CopyDirectory(item.SourcePath, item.TargetPath);}else if (File.Exists(item.SourcePath)){// 如果源路径是文件,则直接复制文件string destDir = Path.GetDirectoryName(item.TargetPath);if (!Directory.Exists(destDir)){Directory.CreateDirectory(destDir);}File.Copy(item.SourcePath, item.TargetPath, true);}if(!string.IsNullOrEmpty(item.SourceFilePath)){if(string.IsNullOrEmpty(item.TargetFilePath){var destFile = Path.Combine(item.TargetPath,Path.GetFileName(item.TargetFilePath));File.Copy(item.SourceFilePath, destFile, true);}else{File.Copy(item.SourceFilePath, item.TargetFilePath, true);}}}}private void CopyDirectory(string source, string destination){if(File.GetAttributes(source).HasFlag(FileAttributes.Directory)){string targetDest = Path.Combine(destination,Path.GetFileName(source));if(!Directory.Exists(targetDest)){// 创建目标目录Directory.CreateDirectory(targetDest );}// 递归复制子目录string[] dirs = Directory.GetDirectories(source);foreach (string dir in dirs){string destDir = Path.Combine(targetDest, Path.GetFileName(dir));CopyDirectory(dir, destDir);}// 获取源目录下的所有文件string[] files = Directory.GetFiles(source);foreach (string file in files){string destFile = Path.Combine(targetDest, Path.GetFileName(file));File.Copy(file, destFile, true);}}else{// 获取源目录下的所有文件string[] files = Directory.GetFiles(source);foreach (string file in files){string destFile = Path.Combine(destination, Path.GetFileName(file));File.Copy(file, destFile, true);}}}[System.Serializable]public class Item{[TableColumnWidth(60)][FolderPath, PropertyOrder(-1),HorizontalGroup("资源路径列表",0.25f)]public string SourcePath;[FolderPath, PropertyOrder(-1),HorizontalGroup("资源路径列表",0.25f)]public string TargetPath;[FilePath, PropertyOrder(-2),HorizontalGroup("资源路径列表",0.25f)]public string TargeFiletPath;[FilePath, PropertyOrder(-2),HorizontalGroup("资源路径列表",0.25f)]public string SourceFilePath;}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/819104.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Office 365卡顿怎么办?SD-WAN可以解决

随着数字化浪潮的推进&#xff0c;Office 365等云办公应用已成为企业日常运营不可或缺的工具。然而&#xff0c;许多企业在使用Office 365时遭遇了网络卡顿的难题&#xff0c;给工作人员带来诸多不便。随着SD-WAN技术的成熟和普及&#xff0c;这一难题得到了有效的解决。 Offic…

使用JWT、Redis + token实现用户登录的两种方式。

使用JWT实现登录功能 功能实现流程&#xff1a; 1.用户发起登录请求。 2.使用JwtBuilder生成令牌并返回。 3.写一个拦截器&#xff0c;拦截初登录之外的请求。拦截到请求后解析令牌&#xff0c;若正常放行&#xff0c;并将当前用户id存在当前线程。若出异常则返回登陆失败。…

四足机器人应用篇之solidwork导出URDF

欢迎关注微信公众号 “四足机器人研习社”&#xff0c;本公众号的文章和资料和四足机器人相关&#xff0c;包括行业的经典教材、行业资料手册&#xff0c;同时会涉及到职业知识学习及思考、行业发展、学习方法等一些方面的文章。 |1.URDF介绍 一个URDF pakage示例 urdf是ROS用于…

ABAP MESSAGE 常用的类型

类型文本描述A终止处理终止&#xff0c;用户必须重启事务X退出与消息类型A 类似&#xff0c;但带有程序崩溃 MESSAGE_TYPE_XE错误处理受到干扰&#xff0c;用户必须修正输入条目,左下角提示!W警告处理受到干扰&#xff0c;用户可以修正输入条目,左下角提示!I信息处理受到干扰&a…

数据库讲解---(数据更新、视图、数据控制)【MySQL版本】

目录 前言 一.数据更新 1.1插入数据 1.1.1插入单个元组 1.1.2将一个新学生记录(学号:091530,姓名:夏雨,性别:男,籍:海南,出生年份:1999,学院:计算机)插入到学生表中 1.1.3插入子查询结果 1.1.4有一个表“DEPT”(SDEPT CHAR(20),AVG_AGE SMALLINT)表示每个学院的学生的平…

习题4-1 求奇数和

本题要求计算给定的一系列正整数中奇数的和。 输入格式: 输入在一行中给出一系列正整数&#xff0c;其间以空格分隔。当读到零或负整数时&#xff0c;表示输入结束&#xff0c;该数字不要处理。 输出格式: 在一行中输出正整数序列中奇数的和。 输入样例: 8 7 4 3 70 5 6 …

R 格式(蓝桥杯)

文章目录 R 格式【问题描述】高精度乘法高精度加法 R 格式 【问题描述】 小蓝最近在研究一种浮点数的表示方法&#xff1a;R 格式。对于一个大于 0 的浮点数 d&#xff0c;可以用 R 格式的整数来表示。给定一个转换参数 n&#xff0c;将浮点数转换为 R格式整数的做法是&#…

网络安全-自学笔记

一、自学网络安全学习的误区和陷阱 1.不要试图先成为一名程序员&#xff08;以编程为基础的学习&#xff09;再开始学习 我在之前的回答中&#xff0c;我都一再强调不要以编程为基础再开始学习网络安全&#xff0c;一般来说&#xff0c;学习编程不但学习周期长&#xff0c;而…

【力扣TOP100热题图解】T1.两数之和

题目链接点这里—— 力扣&#xff08;LeetCode&#xff09;​​​​​​ 法一&#xff1a;暴力枚举 最容易想到的方法是枚举数组中的每一个数 x&#xff0c;寻找数组中是否存在 target - x。 当我们使用遍历整个数组的方式寻找 target - x 时&#xff0c;需要注意到每一个位…

【Linux】磁盘管理和文件系统

目录 一、硬盘 1.硬盘结构 2.结构类型 二、MBR与磁盘分区 1.MBR主引导记录 2.磁盘分区结构 三、文件系统类型 四、linux系统添加并使用新硬盘的步骤 1.添加新的硬盘 2.刷新识别 3.进行分区 4.格式化&#xff0c;创建文件系统 5.挂载使用 一、硬盘 1.硬盘结构…

SpringBoot整合消息中间件(ActiveMQ,RabbitMQ,RocketMQ,Kafka)

消息中间件 消息消息队列JMS AMQPMQTTKafka Spring整合消息队列模拟消息队列的工作流程Spring整合ActiveMQSpring整合RabbitMQ直连交换机模式主题交换机模式 Spring整合RocketMQSpring整合kafka 消息 消息的发送方&#xff1a;生产者 消息的接收方&#xff1a;消费者 同步消息…

基于SSM项目高校在线请假与审批系统

采用技术 基于SpringBoot框架实现的web的智慧社区系统的设计与实现~ 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;SpringMVCMyBatis 工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 简介 本系统实现了管理员&#xff0c;教师&#xff0c;学生三个模…

OSPF动态路由实验(华为)

思科设备参考&#xff1a;OSPF动态路由实验&#xff08;思科&#xff09; 一&#xff0c;技术简介 OSPF&#xff08;Open Shortest Path First&#xff09;是一种内部网关协议&#xff0c;主要用于在单一自治系统内决策路由。它是一种基于链路状态的路由协议&#xff0c;通过…

探秘ChatGPT:写作论文的新奇技巧

ChatGPT无限次数:点击直达 探秘ChatGPT&#xff1a;写作论文的新奇技巧 近年来&#xff0c;随着人工智能技术的发展&#xff0c;ChatGPT作为一种强大的自然语言处理工具越来越受到关注。在学术界和工业界&#xff0c;人们开始探索如何利用ChatGPT这样的模型来辅助写作&#xf…

Linux下SPI设备驱动实验:实现SPI发送/接收数据的函数

一. 简介 前面文章介绍了SPI设备数据收发处理流程&#xff0c;后面几篇文章实现了SPI设备驱动框架&#xff0c;加入了字符设备驱动框架代码。文章如下&#xff1a; SPI 设备驱动编写流程&#xff1a;SPI 设备数据收发处理流程中涉及的结构体与函数-CSDN博客 SPI 设备驱动编写…

DevOps(二)Jenkins详细介绍和15天学习计划

Jenkins 是一个开源的自动化服务器&#xff0c;广泛用于持续集成和持续部署&#xff08;CI/CD&#xff09;的自动化过程中。它支持开发者在软件开发的各个阶段自动构建、测试并部署应用程序&#xff0c;从而提高开发效率并减少错误。下面详细介绍Jenkins: 一、核心功能 1、构…

【洛谷 P8802】[蓝桥杯 2022 国 B] 出差 题解(带权无向图+单源最短路+Dijkstra算法+链式前向星+最小堆)

[蓝桥杯 2022 国 B] 出差 题目描述 A \mathrm{A} A 国有 N N N 个城市&#xff0c;编号为 1 … N 1 \ldots N 1…N 小明是编号为 1 1 1 的城市中一家公司的员工&#xff0c;今天突然接到了上级通知需要去编号为 N N N 的城市出差。 由于疫情原因&#xff0c;很多直达的交…

webpack + ts 搭建 web 应用

初始化 npm init -y一、 依赖下载 typescript相关&#xff1a; ts-loader: ts文件加载器 npm i typescript ts-loader -Dwebpack相关 webpack-cli: 命令行工具 webpack-dev-server&#xff1a;webpack开发服务器 webpack-merge : webpack配置合并 clean-webpack-plugin: we…

MXXE利用XXE漏洞快速获取服务器敏感文件工具

https://github.com/MartinxMax/MXXE 关于 MXXEV1.2升级版,快速获取服务器敏感文件 获取Windows服务器敏感文件 把数据包复制到payload.txt进行自动注入 $ python3 MXXE.py -lh 10.10.16.5 -user Daniel -server windows 幸运的是我们找到了服务器的私匙 获取Linux服务器敏感…

LeetCode-706. 设计哈希映射【设计 数组 哈希表 链表 哈希函数】

LeetCode-706. 设计哈希映射【设计 数组 哈希表 链表 哈希函数】 题目描述&#xff1a;解题思路一&#xff1a;超大数组解题思路二&#xff1a;拉链法解题思路三&#xff1a; 题目描述&#xff1a; 不使用任何内建的哈希表库设计一个哈希映射&#xff08;HashMap&#xff09;。…