Object 使用Unity'替换对象的质量;标签是什么?

Object 使用Unity'替换对象的质量;标签是什么?,object,unity3d,replace,Object,Unity3d,Replace,我现在正在做一个练习,我想为它创建一个技术设计文档 因此,我需要评估可能的解决方案,以解决我虚构项目中出现的一系列问题 下面是对该练习的快速浏览: 游戏的艺术和核心游戏设计被非常严格地分割——基本上,核心系统、游戏机制和设计被创建为非常抽象的,以便允许他们处理各种各样的艺术设置。此外,限制之一是重复使用尽可能多的资产、标高和设计 现在我的问题是: 我希望关卡设计师使用“模板”对象(具有所需所有技术功能的对象,即附件插槽、正确比例、纹理等)创建关卡,然后用我从外包商处收到的一组资产替换这些对象 由

我现在正在做一个练习,我想为它创建一个技术设计文档

因此,我需要评估可能的解决方案,以解决我虚构项目中出现的一系列问题

下面是对该练习的快速浏览:

游戏的艺术和核心游戏设计被非常严格地分割——基本上,核心系统、游戏机制和设计被创建为非常抽象的,以便允许他们处理各种各样的艺术设置。此外,限制之一是重复使用尽可能多的资产、标高和设计

现在我的问题是:

我希望关卡设计师使用“模板”对象(具有所需所有技术功能的对象,即附件插槽、正确比例、纹理等)创建关卡,然后用我从外包商处收到的一组资产替换这些对象

由于我不希望在获得一组新资产时手动替换所有对象,因此我希望这样做:

每个模板对象都会获得一个描述性标签,外包商交付的每个资产都需要具有与其存储在其中的对应模板对应物完全相同的标签名称(例如,作为自定义属性、通道或仅以其名称)

现在,我想使用脚本将所有模板替换为相关资产

这将针对每套资产进行。我也会保留我的引擎的几个部署,每个集合一个,但最初,它们都会以需要替换的模板开始(因为每个设置都需要一些修改,无论是从视觉上还是从游戏设计的角度来看,将所有资产保留在一个主干/项目中对我来说没有任何意义)

为了简化这一过程,我使用了某种类型的“数据库”(可能是引擎脚本可以查询的简单字典,在交付新资产时由另一个脚本预先填写)

我的问题是:这可能吗?如果是,从程序员的角度来看,这有多困难?我在这个领域的知识有限,所以我很想听听你们的想法

同样(非常重要)-您知道实现资产“可替换性”的更好方法吗?或者只是有一个更简单的方法来实现我想做的事情?我感谢任何反馈!谢谢大家!


快速编辑:这不仅适用于三维对象;纹理也需要更换,显然,我想您正在寻找

基本上预制实现了一种。 不必直接将
游戏对象
放入场景的层次结构中,您可以将其设置为
预设
,并将
游戏对象
放入场景中,该对象是该
预设
的一个实例

当进入场景的
游戏对象
链接到
预设
,并且
预设
将被修改时,链接的对象也将被修改。 如果您有多个相同的
预置的实例
,则所有IStance也将更新

此功能的唯一强大限制是,从现在起,不支持嵌套预制

我希望标高设计师使用“模板”对象创建标高 (对象具有所需的所有技术特征,即 用于附件、正确比例、纹理等的插槽)和以后的替换 这些对象包含我从外包商处收到的一组资产

这是典型的用例。在场景中有一个占位符(例如立方体),当艺术家提供该占位符时,该占位符将由模型显示。 如果将100个立方体实例化到场景中,当需要替换它们时,可以手动为所有对象执行此操作

相反,如果您创建了一个
预制件
(我们称之为ModelPrefact),并且场景中的立方体是该预制件的实例,那么当您拥有新的3d模型时,您只需更新
预制件
,所有链接实例也将更新

我的问题是:这可能吗?如果是,这会有多困难 从程序员的角度来看

如果您可以在没有嵌套预设的情况下工作,那么您无需执行任何操作,它已经实现了。如果您需要实现
嵌套预置
,它可能不会那么简单

快速编辑:这不仅适用于三维对象;质地 显然,也需要更换

我使用模型制作了上面的示例,但是您可以从每个
游戏对象
中制作一个预制,它实际上是一个组件集合(如果您感兴趣,请查看)


编辑

是的,可以通过脚本更新预置。所需的函数位于UnityEdit命名空间中,因此它们可以通过编辑器扩展使用。
你可以在课堂上找到所有你需要的东西。

mmyeeea它非常接近我想要的,我需要知道的是,是否有可能(好吧,可能是-更好地说:如果不是太复杂的话)通过脚本访问预置的组件并将其更改为不同的对象?基本上,如果我将对象A作为预置,我可以访问该预置并将预置对象的路径更改为对象B吗?手动更换可能会奏效,但我正在尽可能避免人为错误。此外,可能还需要嵌套的预制件-环境模型将是模块化的,并将使用“附件”系统进行窗户、门和其他装饰。我假设“不那么简单”意味着发动机方面可能需要一些更大的调整/修改?另外,谢谢你的链接,我会看看的!:)