迁移你的工程 (Migrating Your Project)

工程迁移指南(从V1.2版本到V2.0版本) (Project Migration Guide (from v1.2 to v2.0))

注:项目和工程是一个意思。

虽然在一个新工程中使用本插件非常容易。但你可能希望或需要将工程中的旧First Person Exploration Kit插件,迁移到最新版本的First Person Exploration Kit插件。下面是一个步骤的指南,将升级你的现有工程。

注意: 如果你对Unity工程中的FirstPersonExplorationKit文件夹中,原始的文件进行了深入的源代码更改,则需要注意这些你做的这些更改,并将这些更改也移植到新版本。

在做其他事情之前:

注意!注意!!!
一定要备份项目!


目录

[TOC]


你也可以看相关的教程视频,点击这里



第1节:迁移工程的准备 (Section 1: Project Migration Prep)

条件 (Pre-conditions)


迁移的步骤 (Migration Steps)

  1. 确保已安装Unity v5.5.4p3版本,或更高版本。
  2. 关闭Unity软件和Visual Studio软件
  3. 备份您的项目! 我建议使用source control,但是只需确保它已备份。是的,这个步骤可能是重复的。但备份你的工程是非常重要的事情。
  4. 打开工程的资产文件夹。进入Assets/FirstPersonExplorationKit/Scripts文件夹,并将FPEInventoryManagerScript.cs文件复制一份,并将复制品放在一个安全的地方(比如说:你的桌面上)

    注意:
    我们备份此文件,是为了保护你在eInventoryItems枚举中,生成任何自定义库存条目。
    你需要稍后将它们移植到新脚本。
    

    customEnum.jpg


  5. 当你复制了FPEInventoryManagerScript.cs文件后,就可以从旧工程中删除整个FirstPersonExplorationKit文件夹。

    deleteFolder.jpg


  6. 创建一个名字叫做“ImportFPEKitv2”的新Unity项目,并启动这个项目。

  7. 打开“Asset Store”面板,然后导入新版本的First Person Exploration Kit插件。 当被问及“Importing Complete Project(是否导入完整的项目)”时,单击“Import(导入)”按钮:

    注意:
    单击“Import(导入)”可确保导入所有的项目设置。
    这可以让我们把标签,层和输入映射,都导入到项目中。
    

    fullImport.jpg


  8. 当出现以下的提示时,请折叠文件夹列表,并勾选FirstPersonExplorationKit文件夹。 然后,单击“导入(Import)”按钮。(就是把插件中所有的文件都导入到工程中)

    importFolders.jpg


  9. 导入完成后,打开demoScene.unity场景并运行它。确保demoScene的行为符合预期(能够正常运行)。这将有助于直观地验证插件的设置导入是否成功。


第2节:将新文件复制到旧工程中 (Section 2: Copying new files into old project)

  1. 打开旧工程的主文件夹,并打开新的“ImportFPEKitv2”工程的文件夹
  2. 在“ImportFPEKitv2”工程中,打开“Project Settings”子文件夹。复制InputManager.asset文件,并将这个文件粘贴到旧工程的“Project Settings”文件夹中,覆盖旧的文件。

    注意:
    在理想情况下,你可以将Project Settings文件夹中的所有文件,从“ImportFPEKitv2”工程复制到旧工程中。
    但是,如果只复制InputManager.asset文件,那也没问题。
    现有的ImportFPEKitv2标签中的Tag(标签)和Layer(层),都应用会到旧工程中,因此旧工程将按预期工作。
    如果你定义了任何新的输入,则需要重新去定义它们。
    如果你真的知道自己在做什么,你可以打开这两个文件,然后手动合并它们。不过我不推荐这种方法。
    

    inputManager.jpg


  3. 在“ImportFPEKitv2”工程中,打开Assets子文件夹。复制FirstPersonExplorationKit文件夹,并将FirstPersonExplorationKit文件夹,粘贴到旧项目的Assets文件夹中。

    copyPasteAssets.jpg


  4. 打开Unity,然后打开旧工程。当新代码重新编译,并为旧工程编制索引时,现在,你将看到“Hold On”对话框。

    UpgradeHoldOnDialog.jpg



第3节:更换预制体和修复错误 (Section 3: Replacing Prefabs and Fixing Errors)

  1. 马上你会发现一些事情。首先,你的场景中可能会丢失一些预制体。比如,下图中的这是旧的FPEUICamera预制体,这个预制体已被弃用,所以你可以删除它。

    DeleteMissingPrefab.jpg


  2. 删除后,请查看控制台。控制台中可能会输出一些错误,上面写着"The type of namespace name 'FPEInteractableActivateScript' could not be found",如下所示:

    MissingDirective.jpg


  3. 要修复此命名空间错误,你需要更改受影响的脚本,以便它们引用新的Whilefun.FPEKit命名空间。将下面显示的这行代码,添加到这些脚本的顶部,然后保存它们。命名空间错误现在应该消失了。

    注意:
    你可能需要将此命名空间引用添加到多种类型的文件中。
    例如,如果你还扩展了FPEInteractablePickupScript,那么这些子类的文件也将需要引用新的命名空间。
    

    UpdateNamespaces.jpg


  4. 选择FPEInteractionManager、FPEPlayerController和FPEEventSystem预制体,并从场景中删除它们。将一个FPECore预制体放入场景中。

    ReplaceCorePrefab.jpg


第4节:运行场景 (Section 4: Running the Scene)

  1. 如果场景中有任何旧的库存类型的对象,你将看到以下的错误:

    InventoryRigidbodyError.jpg


  2. 要修复这个错误,请在所有库存预制体中添加Rigidbody组件。重新运行场景,以确保让这些错误消失。

    AddRigidbodyToInventoryPrefabs.jpg


  3. 再次运行场景,你应该看不到任何错误啦。


第5节:为游戏保存/加载兼容性准备自定义资产 (Section 5: Preparing Custom Assets for Game Save/Load Compatibility)

  1. 所有的Pickup和Inventory类型的预制体,都必须在运行时调用Resources.Load()进行加载。为了支持这一点,所有这些预制体都必须放在Resources文件夹中。此外,所有Audio Diary的audio clips(音频文件)也必须位于Resources文件夹中。将资源放在以下的文件夹结构中:

    MovePrefabsAndAudioClips.jpg


  2. 你还需要准备库存物品及其相应的查找值。为此,你需要将上面第1节中(我们复制到桌面上的那些)的旧枚举值,添加回FPEInventoryManager脚本中的eInventoryItems枚举中,如下所示:

    AddBackOldInventoryEnumValue.jpg


  3. 还要在FPEObjectTypeLookup脚本中添加新的查找值,如下所示。这将确保“保存和加载系统”知道哪个预制体对应于哪个库存类型。

    InventoryObjectLookupValue.jpg


  4. 旧的值可能与之前的索引不同(这个索引,取决于你的旧的枚举值)。如果索引不同,你需要仔细检查你的库存预制体是否具有正确的值。单击预制体,然后查看FPEInventoryUItem

    AssignEnumValueToInventoryPrefab.jpg

    注意:

    新版本的库存物品,有一些新的选项,包括玩家操作选项以及物品名称、物品描述和物品图像。这些可以在Inspector面板中进行配置: img 有关库存物品的详细信息,请参阅文档的Inventory Items Section(库存物品)章节。


  5. 另外,v1.x版本和v2.x版本之间,最后一个重要的区别是:添加了菜单系统。使用v2.x构建的项目必须把Build Settings的场景列表索引0处的场景,设置为“Main Menu”场景,才能正常运行。索引为0的场景,是为开始菜单的特别保留场景,这是2D交互菜单,而不是3D交互。有关详细信息,请参阅Making Your First Build(进行第一次构建)的章节。

  6. 你完成了工程的迁移,万岁! 如果你在这个过程中遇到困难,或者发现奇怪的错误,请发送电子邮件至support@whilefun.com,我们将尝试修复和解决你的问题。

    AllFinished.jpg

results matching ""

    No results matching ""