合并工程¶
合并项目时,您可以重用在另一个项目中创建的资源和节点。合并项目允许您导入完整项目或仅导入选定的资源和节点。在合并过程中,Kanzi 提供冲突解决。
Kanzi 提供了以下选项以从其他项目中引入内容:
您可以将整个工程引入当前工程。请参阅 导入项目。
您可以合并 3D 资产文件中的 3D 资产。请参阅 合并 3D 资产。
您可以仅将另一工程的一部分引入当前工程。请参阅 合并引用的 Kanzi Studio 项目的内容。。
您可以共享单个工程项。请参阅 共享工程项。
如果您想导入现成内容的集合,请使用 Kanzi Studio 资产包。
请参阅 资产包。
如果要导入使用第三方工具创建的资源,请使用 Kanzi Studio 导入工具。请参阅 导入。
合并 Kanzi Studio 项目。¶
要合并工程:
选择 File > Import > Merge Project,选择您要合并到当前打开项目(目标项目)的项目(源项目),然后单击 Open。
Project Merge 对话框打开。
在 Project Merge 对话框中设置:
Select referenced items。 当您希望 Kanzi Studio 自动选择所选项目所引用的所有项目时,选中复选框。
例如,当您选中 Select referenced items 复选框并选择一个具有材质的网格时,Kanzi Studio studio 会自动选择您所选网格使用的材质、材质类型和着色器。
变换。如果 Kanzi Studio 在将目标中的对象替换为源中的对象时遇到对象变换冲突,请将 Keep transformations from 设置为:
Target Project: <ProjectName> 以保持您在目标中使用的对象变换。Kanzi Studio 记住您在 Kanzi Studio 中对对象所做的所有变换更改。
Source Project: <ProjectName> 以导入您在源中使用的对象转换。
材料。如果 Kanzi Studio 在将目标中的对象替换为源中的对象时遇到对象材料冲突,请将 Keep materials from 设置为:
Target Project: <ProjectName> 以保持您在目标对象中使用的材质。Kanzi Studio 记住您在 Kanzi Studio 中对对象所做的所有材质更改。
Source Project: <ProjectName> 以导入您在源中用于对象的材质。
选中您要从源合并到目标的项旁边的复选框。根据目标项目中所选项的存在情况,项的名称使用以下方式书写:
白色 字体。项目存在于源中,但不存在于目标中。当您选择此类项目时,Kanzi Studio 会在目标中创建它们。
红色 字体。项目在源和目标中都存在,但在两者之间有所不同。
您必须选择使用目标还是源中的项来解决冲突,才能继续合并。
紫色 字体。项目存在于目标中,但不存在于源中。当您选择这些项目时,Kanzi Studio 会将它们从目标中移除。
如果要合并包含使用本地存储数据的数据源的工程,请参阅 合并包含使用本地存储数据的数据源的工程。
如果您正在合并包含 Kanzi Engine Plugins 的项目,请参阅 合并包含 Kanzi Engine 插件的项目。。
解决冲突。当您的目标和源都包含相同的项目且该项目的属性不同时,您必须决定要保留哪些属性:
单击 Resolve to source 以使用源中的值解决所有冲突。
单击 Resolve to target 以使用目标中的值解决所有冲突。
单击 Use base project 以选择一个基础项目来解决目标和源之间的冲突。例如,Use base project 在合并两个项目或资产时很有用,这些项目或资产是初始项目的修改版本。
使用三路合并时,Kanzi Studio 中的冲突解决方式如下:
如果差异仅限于基准工程和目标之间,Kanzi Studio 使用目标中的更改。
如果差异仅限于基准工程和源之间,Kanzi Studio 使用源中的更改。
如果在基准工程和目标之间以及源和目标之间都有更改,则必须解决冲突。
要手动解决冲突,选择源树中的项,并在冲突窗格中为每个属性选择要保留目标还是源中使用的值。
您可以选择多个属性,然后单击 Resolve to Target 以保留目标中使用的值,或单击 Resolve to Source 以保留源中使用的值。
您可以从 Target 或 Source 列中选择一个要保留的值。
解决所有冲突后,源树中项名称的字体颜色将变为绿色。
点击 Merge。Kanzi Studio 通过将源的内容放入目标的相应位置来合并源和目标。
合并包含 Kanzi Engine 插件的项目。¶
当您合并具有相同名称但组件类型、数据源、消息或属性类型不同的 Kanzi Engine 插件的项目时,您无法在 Project Merge 工具中解决冲突。
要合并含有冲突 Kanzi Engine 插件的项目:
在 Kanzi Studio 中打开未使用正确版本 Kanzi Engine 插件的项目。
在 Library > Kanzi Engine Plugins 中右键单击插件并选择 Update Kanzi Engine Plugin。
合并 Kanzi Studio 项目。请参阅 合并 Kanzi Studio 项目。。
合并包含使用本地存储数据的数据源的工程¶
通常,合并到 Kanzi Studio 项目中的数据源数据由您的应用程序连接的服务器提供。然而,如果您要合并的数据源的源文件存储在源项目中,则必须手动将它们从 <SourceProjectName>/Application/bin 复制到 <TargetProjectName>/Application/bin。如果您不将数据文件复制到目标项目,Preview 将无法启动。
响应 kzm 文件更改¶
当 Kanzi Studio 检测到工程目录中的 kzm 文件在 Kanzi Studio 之外被更改时(例如,在执行 git pull 或从另一个工程复制文件之后),会显示 Project modified 通知对话框,其中包含以下选项:
Reload — 从磁盘重新加载工程。如果您有未保存的本地更改,重新加载会丢弃这些更改。
Merge — 打开 Project Merge 对话框,以便您有选择地将磁盘上的更改合并到本地版本中。仅当您有未保存的本地更改时,此选项才可用。
Ignore — 保留当前工程状态,并丢弃磁盘上的更改。
Kanzi Studio 会监视工程目录及其子目录中所有扩展名为 .kzm 的文件。
使用版本控制工具合并工程¶
在配置版本控制工具后,您可以使用 Kanzi 合并工具进行 Kanzi 项目的更新和合并。对于集成,Kanzi 需要一个版本控制工具,该工具为 Kanzi 合并工具提供必要的参数。
参数类型示例 |
描述 (Description) |
|---|---|
MINE |
源工程的参数。 |
THEIRS |
目标工程的参数。 |
基准 (Base) |
基准工程的参数。 |
MERGED |
合并工程的参数。 |
将 Kanzi 合并工具与版本控制工具集成¶
要将 Kanzi 合并工具与版本控制工具集成:
将您的版本控制工具配置为对 .kzproj 文件使用 Kanzi 合并工具 (
<KanziInstallation>/Studio/Bin/KanziMergeTool.bat)。将
KanziStudio.exe的绝对路径传递给您的版本控制工具。例如,C:\Program Files\Rightware\Kanzi\Studio\Bin\KanziStudio.exe。为 Kanzi 合并工具设置版本控制工具参数。例如,这些参数可以称为 MINE、THEIRS、BASE、MERGED。
将 Kanzi 合并工具与 SVN 版本控制软件集成¶
要将 Kanzi 合并工具与 SVN 版本控制软件集成,请将 Kanzi 合并工具添加为用于合并 .kzproj 扩展名文件的外部程序。
例如,如果您在使用 Tortoise SVN,在 TortoiseSVN 中选择 SVN > 设置 > 外部程序 > 合并工具 > 高级,然后进行设置:
文件名、扩展名或 MIME 类型设为 .kzproj
外部程序设为
<KanziInstallation>/Studio/Bin/KanziMergeTool.bat "<KanziInstallation>/Studio/Bin/KanziStudio.exe" %mine %theirs %base %merged
例如,如果您的 Kanzi 安装在
C:\Program Files\Rightware\Kanzi中,使用C:\Program Files\Rightware\Kanzi\Studio\Bin\KanziMergeTool.bat "C:\Program Files\Rightware\Kanzi\Studio\Bin\KanziStudio.exe" %mine %theirs %base %merged