• Unity3d版本控制


    官网地址:

    http://unity3d.com/support/documentation/Manual/ExternalVersionControlSystemSupport.html

    官方有提供,但是要花钱。可以用SVN。

    转一个别人的翻译:

    算是从unity3d官方网站上的翻译,如果你没有看到,可以看下,这个也是我自己碰到比较麻烦的事情,经常windows下提交,然后mac下更新下去一堆关联没了,有些可以reimport可以变好,有些要重新关联,麻烦的很,因为我们漏了一些东西没有提交到版本控制中。

     

      1. unity3d中建立一个项目,如:InitialUnityProject,你可以加入一些assetspackage或者放到以后加也没关系,我一般是刚开始是空的项目,空的场景,然后保存,一些asset可以在用到的时候选择性的添加,不然一堆东西看着也是麻烦的
      2. Edit->Project Settings->Editor,选择Enable, 我在4.3.1的时候,安装了默认是disable的,这里要开起来,这样你的asset每个就会有meta 文件生成,大家可以用ultraedit等打开看下里面的东西,注意这个文件最好生成后不要自己去修改和删除,提交到svn即可,这个文件是文本,svn可以merge
      3. 退出unity3d,当然你可以保存你的空场景
      4. 删除Library下的所有文件和目录,不过以下的文件要保留,其实也就是一些配置的东西:
        • EditorBuildSettings.asset
        • InputManager.asset
        • ProjectSettings.asset
        • QualitySettings.asset
        • TagManager.asset
        • TimeManager.asset
        • AudioManager.asset
        • DynamicsManager.asset
        • NetworkManager.asset
        • 不过在mac下面比较搞笑的是,它不会自动生成cache目录,他会生成其他的如preview之类的,但cache不会,你如果reimport,则他会报错,说不能从temp复制到cache.搞不清楚他自己为啥不创建,怀疑写程序的人有点想当然了,没判断目录是否存在吧。所以在mac下,自己要创建下cache目录,不然你报错可能不知道怎么回事情。
      5. 把项目文件夹Importsvn服务器上,命令行如下:
        svn import -m"Initial project import" InitialUnityProject svn://my.svn.server.com/MyUnityProject
      6. 你可以从svn 服务器上check out出来整个项目,任何组内的开发人员都可以
        svn co svn://my.svn.server.com/MyUnityProject
        看看所有用到的Assets下面的文件是否都已经在版本控制下了
      7. 建议: 可以为Library设立ignore ,如果用命令行的话
        svn propedit svn:ignore MyUnityProject/Library
        svn 
        会打开一个文本编辑器,添加所有除了下面文件外的目录和文件到这个文本中
        • EditorBuildSettings.asset
        • InputManager.asset
        • ProjectSettings.asset
        • QualitySettings.asset
        • TagManager.asset
        • TimeManager.asset
        • AudioManager.asset
        • DynamicsManager.asset
        • NetworkManager.asset
      8. 当用unity3d打开项目的时候,一些丢失的文件会全部重新建立,如Library中被我们删除了的,如果还是不行,可以用reimport all
      9. 最后就可以用svn commit
        svn ci -m"Finishing project import" MyUnityProject

     

    一些注意点:

    (1) Unity3D的二进制资源必须加锁进行版本控制,因为它没办法merge;
    (2) Unity3D自己产生的C#工程相关文件,包括VS产生或者Mono产生的,都不需要归入版本控制;
    (3) 在新加入项时,Unity3D会产生一个同名的.meta文件,这个文件记录了此项一个唯一的64位的guid,这个文件必须上传,否则会出现各种缺失的异常情况(比如脚本Miss等)
    (4) 对于Library文件夹,有以下几个.Asset文件需要进行版本管理:
                   TimeManager
                   TagManager
                   QualitySettings
                   ProjectSettings
                   NetworkManager
                   InputManager
                   EditorBuildSettings
                   DynamicsManager
                   AudioManager
    即便如此,在使用Editor进行开发时,由于需要经常改动场景的.unity 文件,而这个是二进制的,所以需要得锁且不能Merge。感觉并行开发的难度还是比较大的,Unity3D还是比较适合个人开发者和较小团队开发,对于大型团队开发,无论是从版本管理还是代码结构上,都觉得不太方便和自然。

     

  • 相关阅读:
    观后感
    用户故事排球教练助手
    本周工作量
    本周个人作业
    个人工作量
    个人作业
    产品计划总结
    典型用户和场景总结
    排球比赛计分规则
    PowerShell ISE:Windows Server 2008 R2默认不安装
  • 原文地址:https://www.cnblogs.com/gameprogram/p/2470348.html
Copyright © 2020-2023  润新知