文档章节

将svn中的部分功能集成到Unity中

沐风歌
 沐风歌
发布于 2017/02/17 11:32
字数 528
阅读 15
收藏 0

 

简述

将svn集成到Unity中,使之更加便捷。后续将开发更多功能。

用法

将脚本复制到Unity的Editor目录中

注意事项

  • Unity项目只需要上传Assets、ProjectSetting两个文件即可
  • 需要事先就svn关联上才能使用

详细代码

    [MenuItem("通用工具/SVN/提交 Assets", false, 1)]
    [MenuItem("Assets/SVN/提交项目工程", false, 1)]
    private static void SvnCommitAssets()
    {
        RunCmd("TortoiseProc.exe", string.Format("/command:commit /path:\"{0}\\{1}\" /closeonend:0", System.Environment.CurrentDirectory, "Assets"));
    }

    [MenuItem("通用工具/SVN/提交 ProjectSettings", false, 2)]
    private static void SvnCommitProjectSettings()
    {
        RunCmd("TortoiseProc.exe", string.Format("/command:commit /path:\"{0}\\{1}\" /closeonend:0", System.Environment.CurrentDirectory, "ProjectSettings"));
    }

    [MenuItem("通用工具/SVN/更新 Assets", false, 3)]
    [MenuItem("Assets/SVN/更新项目工程", false, 1)]
    private static void SvnUpdateAssets()
    {
        RunCmd("TortoiseProc.exe", string.Format("/command:update /path:\"{0}\\{1}\" /closeonend:0", System.Environment.CurrentDirectory, "Assets"));
    }

    [MenuItem("通用工具/SVN/更新 ProjectSettings", false, 4)]
    private static void SvnUpdateProjectSettings()
    {
        RunCmd("TortoiseProc.exe", string.Format("/command:update /path:\"{0}\\{1}\" /closeonend:0", System.Environment.CurrentDirectory, "ProjectSettings"));
    }

    #region 提交指定文件

    [MenuItem("Assets/SVN/提交指定文件或文件夹", true, 51)]
    private static bool CheckCommit()
    {
        if (Selection.activeObject == null)
            return false;
        else
            return true;
    }

    [MenuItem("Assets/SVN/提交指定文件或文件夹")]
    private static void SvnCommitThisFile()
    {
        RunCmd("TortoiseProc.exe", string.Format("/command:commit /path:\"{0}\\{1}\" /closeonend:0", System.Environment.CurrentDirectory, AssetDatabase.GetAssetPath(Selection.activeObject)));
    }

    #endregion

    #region 更新指定文件

    [MenuItem("Assets/SVN/更新指定文件或文件夹", true, 51)]
    private static bool CheckUpdate()
    {
        if (Selection.activeObject == null)
            return false;
        else
            return true;
    }

    [MenuItem("Assets/SVN/更新指定文件或文件夹")]
    private static void SvnUpdateThisFile()
    {
        RunCmd("TortoiseProc.exe", string.Format("/command:update /path:\"{0}\\{1}\" /closeonend:0", System.Environment.CurrentDirectory, AssetDatabase.GetAssetPath(Selection.activeObject)));
    }

    #endregion

    /// <summary>
    /// 运行外部程序 
    /// </summary>
    /// <param name="cmdExe">指定应用程序的完整路径,如果该程序在系统环境变量中,只需要填写对用的程序名称就可以</param>
    /// <param name="cmdStr">执行命令行参数</param>
    private static bool RunCmd(string cmdExe, string cmdStr)
    {
        bool result = false;
        try
        {
            using (Process myPro = new Process())
            {
                //指定启动进程是调用的应用程序和命令行参数
                ProcessStartInfo psi = new ProcessStartInfo(cmdExe, cmdStr);
                myPro.StartInfo = psi;
                myPro.Start();
                // 是否加上这句话,看个人需求。如果加上的话,我们必须关掉弹出的SVN窗口才能继续操作。如果不加上,则可以弹出SVN,也可以继续修改unity项目。个人建议加上比较好
                myPro.WaitForExit();
                result = true;
            }
        }
        catch
        {

        }
        return result;
    }

© 著作权归作者所有

上一篇: 简易定时器
下一篇: Unity Debug拓展
沐风歌

沐风歌

粉丝 0
博文 5
码字总数 1914
作品 0
成都
私信 提问
如何用 svn 管理 unity3d 项目

因为svn用惯了, asset server还是收费的,所以这个版本还是使用svn来管理unity3d的工程 需要版本管理的目录 新建一个Unity Project之后,发现产生了很多目录和文件,其中只有两个是需要版本...

初心勿忘
2014/12/25
4.2K
0
Jenkins自动构建Unity

1.下载安装Jenkins   链接:https://jenkins.io/。 2.安装推荐plugins   NOTE:安装失败的话,后面进入管理plugins的高级选项中,将更新站点设置为:http://mirror.xmission.com/jenkin...

smallrainf
04/21
0
0
请问把SVN的项目拷到别的机器修改后再拷回来上传到SVN,该怎么办?

请问各位一下,接触SVN时间不长,还有些不明白。 单位用SVN,有时候下班想回家再接着弄,把项目整个拷到U盘带回家,修改了以后再用U盘拷回公司电脑,这时候该怎么办?因为我是做Unity3d,有时...

byfine
2013/11/18
2.6K
4
骨骼数目和骨骼层级数目的美术规范

版权声明:本文所有文章均为原创,原文链接:blog.uwa4d.com,如需转载请联系support@uwa4d.com https://blog.csdn.net/UWA4D/article/details/88183876 这是第150篇UWA技术知识分享的推送。...

UWA
03/10
0
0
聊聊Unity2018的LWRP和混合光照

0x00 前言 在这篇文章中,我们选择了过去几周Unity官方社区交流群以及UUG社区群中比较有代表性的几个问题,总结在这里和大家进行分享。主要涵盖了 Scripting、Assetsbundle、Tilemap、Graph...

陈嘉栋
2018/08/13
0
0

没有更多内容

加载失败,请刷新页面

加载更多

mysql-connector-java升级到8.0后保存时间到数据库出现了时差

在一个新项目中用到了新版的mysql jdbc 驱动 <dependency>     <groupId>mysql</groupId>     <artifactId>mysql-connector-java</artifactId>     <version>8.0.18</version> ......

ValSong
今天
5
0
Spring Boot 如何部署到 Linux 中的服务

打包完成后的 Spring Boot 程序如何部署到 Linux 上的服务? 你可以参考官方的有关部署 Spring Boot 为 Linux 服务的文档。 文档链接如下: https://docs.ossez.com/spring-boot-docs/docs/r...

honeymoose
今天
6
0
Spring Boot 2 实战:使用 Spring Boot Admin 监控你的应用

1. 前言 生产上对 Web 应用 的监控是十分必要的。我们可以近乎实时来对应用的健康、性能等其他指标进行监控来及时应对一些突发情况。避免一些故障的发生。对于 Spring Boot 应用来说我们可以...

码农小胖哥
今天
9
0
ZetCode 教程翻译计划正式启动 | ApacheCN

原文:ZetCode 协议:CC BY-NC-SA 4.0 欢迎任何人参与和完善:一个人可以走的很快,但是一群人却可以走的更远。 ApacheCN 学习资源 贡献指南 本项目需要校对,欢迎大家提交 Pull Request。 ...

ApacheCN_飞龙
今天
5
0
CSS定位

CSS定位 relative相对定位 absolute绝对定位 fixed和sticky及zIndex relative相对定位 position特性:css position属性用于指定一个元素在文档中的定位方式。top、right、bottom、left属性则...

studywin
今天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部