unity插件开发——一个例子:简单的svn集成

在unity开发过程中,通常我们习惯性地在Windows操作系统下使用svn进行版本管理,而每次提交更新,都需要回到文件夹下的这种操作让人无法忍受。是不是可以集成svn到unity中呢?查了一圈unity store可以看到很多svn的第三方插件。考虑到我们只需要简单的功能,而且不希望加入额外复杂的代码,最后还是自己写一个插件。功能就是更新或者提交assets文件夹。

如果还没有svn对项目进行管理的,按照以下2步操作:

    1、下载svn客户端,安装。

    2、从svn版本库checkout一个工程。

    具体svn操做这里不做展开。

查询svn的文档可以知道svn提供各种命令符操作。因此,原理非常简单,利用命令符操作调用svn即可。代码也非常简单:

更新:Process.Start("TortoiseProc.exe", "/command:update /path:" + Application.dataPath + " /closeonend:0");

    提交:Process.Start("TortoiseProc.exe", "/command:commit /path:" + Application.dataPath + " /closeonend:0");

好,我们写一个cs文件如下:


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19


public class SvnOperater : MonoBehaviour

{

        [MenuItem("SVN/Update")]

        public static void Update()

        {

#if UNITY_STANDALONE_WIN||UNITY_EDITOR

            Process.Start("TortoiseProc.exe", "/command:update /path:" + Application.dataPath + " /closeonend:0");

#endif

        }

        [MenuItem("SVN/Commit")]

        public static void Commit()

        {

#if UNITY_STANDALONE_WIN||UNITY_EDITOR

            Process.Start("TortoiseProc.exe", "/command:commit /path:" + Application.dataPath + " /closeonend:0");

#endif

        }

}

好,注意文件名和类名相同,放在assets目录下的任意一个Editor目录下。回到unity,很快,上方的菜单里就会出现“SVN”,二级菜单有“Update”和“Commit”,点击一下,svn的界面就会出现了。

愉快地使用吧。

以此类推,你能用开发集成很多svn的功能。

时间: 2025-01-17 14:25:48

unity插件开发——一个例子:简单的svn集成的相关文章

如何用Unity创建一个的简单的HoloLens 3D程序

注:本文提到的代码示例下载地址>How to create a Hello World 3D holographic app with Unity 之前我们有讲过一次如何在HoloLens中创建一个2D程序的,没看过或者忘记的同学可以看这里回忆一下^_^ 如果说上次的2D版就是个带了个HoloLens面具的UWP程序,那我们这次要做的呢可是正宗的3D程序哦. 先来看看我们要做些什么准备. 1. Visual Studio 2015 Update 3 2. Windows 10 (10.0.105

通过一个例子简单几种委托的使用

第一种,通过new 关键字创建对象  特别注意:这种方式必须要先有根据委托创建的方法与之关联,否则不能使用.  或者直接让委托变量直接指向某个具体的方法(前提是方法要存在) 格式为:同一命名空间下 public delegate void One();//无参数也无返回值 class Program { static void Main(string[] args) { One objOne0= new One(其中必须有方法作为参数); One objOne00=必须的方法: } /////书

[编译] 1、第一个makefile简单例子

前言 本篇用一个最简单的例子引入makefile,教你编写第一个makefile 正文 在Download/aa文件夹下有a.c和makefile文件 1 [email protected]:~/Downloads/aa$ ls 2 a.c makefile 其中a.c为: 1 #include<stdio.h> 2 int main() 3 { 4 int i,j; 5 for(i=0;i<10;i++) 6 { 7 for(j=2*i+1;j>0;j--) 8 { 9 prin

一个最简单的Socket通信例子

所谓socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄.应用程序通常通过"套接字"向网络发出请求或者应答网络请求.  Socket和ServerSocket类库位于java.net包中.ServerSocket用于服务器端,Socket是建立网络连接时使用的.在连接成功时,应用程序两端都会产生一个Socket实例,操作这个实例,完成所需的会话.对于一个网络连接来说,套接字是平等的,并没有差别,不因为在服务器端或在客户端而产生不同级别.不管是

搭建一个简单的svn服务器

cenos 6.5,svnserver 1.6.11 默认可能已经安装,没有的话就: yum install svn -ysvnserver --version 创建一个svn仓库: svnadmin create /root/myrepo/ 配置这个仓库(这里简单设置为匿名可写),vi /root/myrepo/conf/svnserve.conf [general]anon-access = write 配置svnserver,vi /etc/sysconfig/svnserve OPTIO

lambda函数也叫匿名函数,即,函数没有具体的名称。先来看一个最简单例子:

Python的lambda匿名函数 def f(x):    return x**2 print f(4) Python中使用lambda的话,写成这样 g = lambda x : x**2print g(4) lambda表达式在很多编程语言都有对应的实现.比如C#: var g = x => x**2Console.WriteLine(g(4)) 那么,lambda表达式有什么用处呢?很多人提出了质疑,lambda和普通的函数相比,就是省去了函数名称而已,同时这样的匿名函数,又不能共享在别

Unity插件开发:SerializedObject/SerializedProperty&mdash;&mdash;查找引用的资源

        Unity有一个Find References in Scene功能非常好用.在Project面板中右键一个文件,选择Find References in Scene就可以在场景中找到所有存在对这个文件有引用的物体.但是很多时候,我们更加需要知道的是,这个场景里面到底引用了哪些文件,比如做优化的时候.         这里有一个插件叫做ResourceChecker,它可以列举出所有引用到的texture/mesh/mat等.但是他也有一个小小的问题,对于自定义脚本的引用没有效果

javascript闭包的一个例子

<html> <head> <title>elementFromPoint</title> <script type="text/javascript"> window.onload = function(){ for(var i=0; i<6; i++){ var alink = document.createElement('a'); var titleText = document.createTextNode('

[.NET] 打造一个很简单的文档转换器 - 使用组件 Spire.Office

打造一个很简单的文档转换器 - 使用组件 Spire.Office 目录 Spire.Office 介绍 库引用 界面预览 代码片段 Spire.Office 介绍 关于 Spire.Office,它是一个专门为开发人员创建,读取,写入设计的库,转换和从打印 word 文档文件.作为一个独立的 .NET组件,它不需要在机器上安装微软的 Word 等办公软件.然而,它可以将微软的“文档创建功能”集成到任何开发人员的网络应用程序中.它是一个可靠的 MS Word 的API,可以执行许多Word文档处