Unity项目间共享资源

关键字

  • unity
  • 资源共享
  • multiplayer debug
  • 多人游戏调试
  • mklink
  • link, ln

链接创建工具介绍

  • 当文件或文件夹被多个项目用到的时候,传统办法是将它们分别复制到各个项目,不但浪费空间,更新时也要更新多份。
  • 链接创建工具可以为文件或文件夹创建”任意门“。
  • 首先把要共享的资源单独准备好,然后只需要在不同项目里建立指向所需资源的”任意门“即可。
  • 感觉上像是”快捷方式“,也不会占用多份存储资源,但每个“任意门”的路径就像真的文件或文件夹那样,都是独立的,运作起来跟真实的文件或文件夹一样,不会像“快捷方式”那样跳转到原始资源路径。这就为各个项目(看起来)拥有自己独享的资源奠定了基础。
  • 无论创建多少“任意门”,实际上系统中仅存有一份原始资源。对原始资源或者任何“任意门”中的资源更新,可实时反映到各个相关项目中。

mklink

mklink是windows系统下的链接创建工具,请自行查阅mklink使用说明。

link

link也简称为ln,是Mac系统下的链接创建工具,请自行查阅相关使用说明。

用软连接实现Unity项目资源共享

只要把要共享的资源连接到Unity项目的Assets目录(或其子目录)中即可。以下描述我经常用的方案。

个人可重用资源库

通过开发一个一个项目,自己会累积很多可重用的资源(如代码、材质、音频、模型、预制体等)。我将这些资源单独组织在一个文件夹中,这个文件夹位于Unity项目目录之外。在开发Unity项目时,如果需要用到这个资源库,就将其链接到当前项目的Assets目录下。这样随着一个个项目的开发,这个库也在不断壮大,并且可在各个项目间共享。

发现的问题

  • 在Mac系统下,Visual Studio对于采用软链接实现共享的项目支持不好,无法debug。

用软连接实现Unity的多人游戏调试

Unity的项目无法同时打开多份,这就造成通常情况下,需要先生成一个运行版,然后同时运行编辑器中的游戏以及运行版,从而进行多人游戏的调试,如果要同时调试服务器和客户端,就没办法了,因为无法同时开启同一个项目的两个编辑器实例,让它们一个做服务器,另一个做客户端。
将项目完整复制一份,然后双双打开,可以,但太费事而,特别是需要修改时,得两边都修改。
那么,链接操作就可以起到大作用了。
Unity项目中最重要都三个文件夹是Assets、Packages、ProjectSettings。


三个最重要都文件夹

只要在当前项目之外新建一个目录,然后将这三个文件链接到新建立的目录中,就可以构造一个新的Unity项目,并且这个新项目与当前项目共享着相同的核心资源。最重要,这两个项目可以同时以编辑器模式打开,且可以分别调试。

github上有一个辅助Unity多人游戏开发的工具,用的也是这个原理,可以直接使用这个工具,非常方便。

  • GitHub - VeriorPies/ParrelSync: (Unity3D) Test multiplayer without building
  • 这个工具是从B站.无法停止奔跑的马.Unity插件ParrelSync在网络联机游戏开发中的使用得知的。

灵活运用链接技术

了解链接技术的作用后,请根据需求灵活共享资源,没什么固定的模式,只要能达到共享资源、同步更新的目的即可。

你可能感兴趣的:(Unity项目间共享资源)