清理现有的Unity项目并将其迁移到新的一台或另一台PC中

Aid*_*ner 2 unity-game-engine

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

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

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

der*_*ugo 6

开始之前,请务必进行备份-您永远不会知道!


打扫干净

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

您可以删除的所有其余内容,当您再次打开项目时,Unity将重新创建/重新编译它们。

另请参阅幕后花絮

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

顾名思义

  • Assets 是您所有的资产,例如脚本,图像,预制件等,包括其他场景。
  • ProjectSettings 是项目的所有常规设置,例如质量,物理特性,播放器字符串等

对我来说,有些Library/*.asset文件也应该保留..它们存储例如构建设置,目标平台等。因此,我不必在每次“重置”时都从头开始配置它们/切换平台。当然,如果您也想这样做,则取决于您。


您还可以使用任何其他版本控制系统...,或者当然也可以手动删除相应的文件夹和文件,但是我始终将其GIT用于我的项目。

另请参阅将外部版本控制系统与Unity一起使用以获取有关项目版本控制设置的一些常规信息。

因此,当我想在应对之前清理存储库时,通常使用以下格式*.gitignore(还有更完整的版本,例如Github的版本)。

基本上,这里列出的所有内容都可以删除,并且下次您在Unity中打开项目时将重新编译它们。(开头的行!是我添加的例外,因为正如我所说的,保留它们也很有意义。)

/.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
Run Code Online (Sandbox Code Playgroud)

如果尚未完成,请先初始化运行中的存储库

cd your/project/root/path
git init
git add *
Run Code Online (Sandbox Code Playgroud)

这将为中列出的每个文件显示一些警告,.gitignore但是您可以忽略这些警告。它只说类似

您正在尝试将一个忽略的文件添加到提交中,它将被跳过

比跑

git commit -m "Initial commit"
Run Code Online (Sandbox Code Playgroud)

进行第一次提交。

现在终于可以运行了

git clean -xfd
Run Code Online (Sandbox Code Playgroud)

这会删除所有未跟踪的文件(因此请确保始终保留所有至少暂存(git add)或更好地提交的文件),或将其忽略*.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迁移

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

从您当前的项目中导出UnityPackage

文件摘录:

使用导出包创建自己的自定义包。

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

  2. 从菜单中选择AssetsExport Package,以打开“导出软件包”对话框。(请参阅下面的“导出包”对话框图像。)

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

  4. 保留包括依赖项复选框为选中状态,以自动选择所选资产所使用的任何资产。

  5. 单击导出以调出文件浏览器,然后选择要存储软件包文件的位置。

  6. 命名并保存包到任何您喜欢的地方。

提示:导出软件包时,Unity也可以导出所有依赖项。因此,例如,如果您选择一个场景并导出具有所有依赖关系的包,则Unity也会导出场景中出现的所有模型,纹理和其他资源。这是导出多个资产的快速方法,而无需手动查找所有资产。

在此处输入图片说明

或者,2您也可以Right-Click在中的Assets文件夹上,Project View然后Export Package在上下文菜单中找到该选项。

然后在新项目中导入UnityPackage

要导入资产包:

  1. 打开您要将资产导入到的项目。
  2. 选择Assets→交通Import Package→交通Custom Package
  3. 在文件浏览器中,选择所需的软件包,然后会出现“导入Unity软件包”对话框,其中的所有项目均已预先检查,可以安装。(请参见下面的“导入Unity软件包”对话框图像。)
  4. Select Importand Unity将软件包的内容放入Assets文件夹中,您可以从中访问该文件夹Project view

在此处输入图片说明

或者24您甚至可以简单地通过Unity Editor 将unitypackage文件拖放到文件Assets夹中。

  • 添加到这个非常全面的答案中,当内容被取消链接时,这表明您设法丢失了隐藏的 .meta 文件,并且 Unity 为所有内容分配了新的 ID。如果您确保复制包括图元文件在内的资产,并向上移动版本(向下版本时是一个混合包),那么所有内容都应该链接起来 (3认同)