将现有的Unity项目迁移到新项目

时间:2019-05-23 03:50:47

标签: unity3d

我希望将现有的Unity项目复制到一个新的空白Unity项目中。似乎所有对象引用和许多脚本都没有在我的场景的层次结构中正确配置/存在。

我只将我的资产文件夹/package.json复制到新的Unity项目中,因为其余文件很脏,并且缓存了很多无用的信息。

文件在哪里,详细说明了场景数据所在的位置?我想将其复制过来,以便可以使用所有对象引用和脚本将场景运行到正确的游戏对象上。 >

2 个答案:

答案 0 :(得分:5)

通常,您将始终需要AssetsProjectSettings文件夹。

另请参见Behind the Scenes

  

备份项目或将项目添加到版本控制存储库时,应包括Unity主项目文件夹,该文件夹同时包含资产   和 ProjectSettings 文件夹。 这些文件夹中的所有信息对于Unity的工作方式至关重要

对我来说,某些Library/*.asset文件也可以保留..它们存储例如构建设置,目标平台等。因此,我不必在每次“重置”时从头开始配置它们。


我始终在项目中使用git。因此,当我想在应对之前清理存储库时,通常将其用作*.gitignore(还有更完整的版本,例如the one from Github

/.out/
/[Ll]ibrary/*
/[Tt]emp/
/[Oo]bj/
/[Bb]uild/
/[Bb]uilds/
/Assets/AssetStoreTools*
/UWP/

# Visual Studio cache directory
/.vs/

# Autogenerated VS solution and project files
/ExportedObj/
.consulo/
*.csproj
*.unityproj
*.sln
*.suo
*.tmp
*.user
*.userprefs
*.pidb
*.booproj
*.svd
*.pdb

# Unity3D generated meta files
*.pidb.meta
*.pdb.meta

# Unity3D Generated File On Crash Reports
**/sysinfo.txt

# keep the *.asset files from Library
!/[Ll]ibrary/*.asset

只需运行

git clean -xfd

删除所有未被*.gitignore跟踪或忽略的文件

  

-f
  如果Git配置变量clean.requireForce未设置为false,则git clean将拒绝删除文件或目录,除非指定了-f,-n或-i。除非给出第二个-f,否则Git将拒绝删除具有.git子目录或文件的目录。

     

-d
  除未跟踪的文件外,还删除未跟踪的目录。如果未跟踪的目录由其他Git存储库管理,则默认情况下不会将其删除。如果确实要删除这样的目录,请使用-f选项两次。

     

-x
  不要使用从.gitignore(每个目录)和$ GIT_DIR / info / exclude中读取的标准忽略规则,但仍要使用-e选项提供的忽略规则。这允许删除所有未跟踪的文件,包括构建产品。可以使用它(可能与git reset结合使用)创建一个原始的工作目录,以测试干净的构建。


在两个不同项目之间移动场景或部分资产的另一种方法是使用UnityPackage

从您当前的项目export a UnityPackage

  1. 打开要从中导出资产的项目。

  2. 从菜单中选择Assets> Export Package…,以打开“导出软件包”对话框。

  3. 在对话框中,通过单击框选择要包含在包中的资产,以便选中它们。

  4. 保留选中include dependencies框以自动选择您选择的资产所使用的任何资产

  5. 单击Export以打开文件资源管理器(Windows)或Finder(Mac),然后选择要存储软件包文件的位置。

  6. 命名并在所需的任何位置保存该软件包。

Import the UnityPackage进入新项目

  1. 打开要将资产导入到的项目。

  2. 选择Assets> Import Package> Custom Package…以打开文件资源管理器(Windows)或Finder(Mac)。

  3. 从资源管理器或Finder中选择所需的软件包,随即显示“导入Unity软件包”对话框,其中的所有项目均已预先检查,可以安装。

  4. 选择Import,然后Unity将软件包的内容放入Assets文件夹中,您可以从“项目”视图中访问该文件夹。

答案 1 :(得分:0)

我想做类似的事情,适用于“移至另一台PC”部分。

我注意到我的项目占用了相当多的空间,并且想要清洁该proyect。我遵循derHugo的回答,建议使用“ git clean”程序,但是使用了他链接的GitHub .gitignore文件。

我必须进行一些更改,才能在Unity 19.4上运行:

# This .gitignore file should be placed at the root of your Unity project directory
#
# Modified from https://github.com/github/gitignore/blob/master/Unity.gitignore
#
# Keep Library Folder
#/[Ll]ibrary/
/[Ll]ibrary/Artifacts/
/[Ll]ibrary/ArtifactDB*
/[Ll]ibrary/PackageCache/
/[Tt]emp/
/[Oo]bj/
/[Bb]uild/
/[Bb]uilds/
/[Ll]ogs/
/[Uu]ser[Ss]ettings/

# MemoryCaptures can get excessive in size.
# They also could contain extremely sensitive data
/[Mm]emoryCaptures/

# Asset meta data should only be ignored when the corresponding asset is also ignored
!/[Aa]ssets/**/*.meta

# Uncomment this line if you wish to ignore the asset store tools plugin
# /[Aa]ssets/AssetStoreTools*

# Autogenerated Jetbrains Rider plugin
/[Aa]ssets/Plugins/Editor/JetBrains*

# Visual Studio cache directory
.vs/

# Gradle cache directory
.gradle/

# Autogenerated VS/MD/Consulo solution and project files
ExportedObj/
.consulo/
*.csproj
*.unityproj
*.sln
*.suo
*.tmp
*.user
*.userprefs
*.pidb
*.booproj
*.svd
*.pdb
*.mdb
*.opendb
*.VC.db

# Unity3D generated meta files
*.pidb.meta
*.pdb.meta
*.mdb.meta

# Unity3D generated file on crash reports
sysinfo.txt

# Builds
*.apk
*.aab
*.unitypackage

# Crashlytics generated file
crashlytics-build.properties

# Packed Addressables
/[Aa]ssets/[Aa]ddressable[Aa]ssets[Dd]ata/*/*.bin*

# Temporary auto-generated Android Assets
/[Aa]ssets/[Ss]treamingAssets/aa.meta
/[Aa]ssets/[Ss]treamingAssets/aa/*

基本上,我所做的是不忽略整个Library文件夹,而只忽略以下内容:

/[Ll]ibrary/Artifacts/
/[Ll]ibrary/ArtifactDB*
/[Ll]ibrary/PackageCache/

这是您应该遵循的步骤:

  • 以防万一,备份您的项目。
  • 将提供的.gitignore文件放在项目的根目录中
  • 运行以下命令:

# Initialize Repository
git init

# Add .gitignore file
git add .gitignore

# Add the rest of the files
git add *

# Commit changes
git commit -m "Initial Commit"

# Clean all untracked files and folders
git clean -Xfd

*请注意,-X选项使用git clean命令大写,这样可以避免擦除任何空白且未跟踪的文件夹。

要验证一切正常:

  • 加载您的Unity项目并检查一切是否正常
  • 再次运行git clean -Xfd以清除由Unity重建的项目文件。

再次感谢derHugo的详细回答,该回答曾用于在最新的Unity版本中使之有效。