文章目录
我想更改演示游戏中的卡片
演示游戏使用两个预制件来存放您手中的卡片,即 CreatureCard 和 SpellCard,以及一个用于板上的生物的预制件 BoardCreature(这些预制件位于 Demo/Prefabs 文件夹中)。对应的脚本是 CreatureCardView、SpellCardView 和 BoardCreature(位于 Demo/Scripts 文件夹中)。建议您学习这些课程,以便了解如何从卡的信息中填充预制件。
如果您希望每张卡片都有不同的图像,您可以使用现有的“图片”属性,这是演示中的所有卡片所具有的。它应该以位于 Resources 文件夹(将动态加载)中的相应 sprite 命名。
我想更改演示游戏,以便生物在与玩家战斗时具有第二个类似“攻击”的属性
默认情况下,演示游戏在解决玩家和生物战斗中的伤害时会使用生物的“攻击”属性。如果您想拥有两个独立的战斗统计数据,以便玩家战斗将使用次要统计数据,您可以按照以下步骤轻松完成:
- 在可视化编辑器中创建一个新的生物属性(在此示例中我们称之为“力量”):
修改 EffectSolver 类的 FightPlayer 方法,使引用“Attack”统计信息的行:
attackedPlayer.namedStats["Life"].baseValue -= card.namedStats["Attack"].effectiveValue;
现在指的是“力量”统计数据:
attackedPlayer.namedStats["Life"].baseValue -= card.namedStats["Power"].effectiveValue;
当然,您还需要更改卡片预制件,以在新标签中显示“力量”统计数据的值。
我想根据演示游戏中的现有场景/弹出窗口创建一个新场景/弹出窗口
演示游戏中的用户界面大量使用了 Unity 的内置 UI 系统。场景类派生自基 BaseScene 类,而弹出类派生自基 Popup 类(您可以在 Demo/Scripts/Game 文件夹中找到这些类)。您可以在 Demo/Scenes 文件夹中找到演示场景,在 Demo/Prefabs 文件夹中找到弹出式预制件。
请注意,如果您正在创建新的弹出窗口并希望将其基于现有弹出窗口,则应始终将弹出窗口预制件作为场景的 Canvas 对象的子项放置,而不是直接放置在场景层次结构中。
在游戏过程中将鼠标悬停在卡片上时显示卡片预览的代码位于何处?
代码位于 DemoHumanPlayer 类中;更具体地说,在其 Update 方法中。相关方法名为 CreateCardPreview 和 DestroyCardPreview。
游戏战斗机制的代码在哪里?
实战分辨率代码位于 EffectSolver 类中;更具体地说,在其 FightPlayer 和 FightCreature 方法中。在服务器端有一个效果求解器,在客户端有一个效果求解器(以便客户端可以在本地运行游戏逻辑,以防止感知到的延迟)。在网络方面,有两个与战斗相关的网络消息:NetworkProtocol.FightPlayer 和 NetworkProtocol.FightCreature。这些消息由 CombatHandler 类中的服务器处理。在客户端,BoardCreature 和 DemoHumanPlayer 类是最终调用相应 EffectSolver 方法的类。
CCG Kit 是多人游戏吗?
虽然该套件肯定专注于 CCG 的多人游戏方面,但我们也提供了一个单人游戏模式,可用于测试目的,并作为构建您自己的单人游戏/故事模式的起点。
CCG Kit 可以在移动平台和 WebGL 上运行吗?
虽然该套件由 Mirror 作为其网络库提供支持,并且在技术上可能使其在移动和 WebGL 等平台上运行,但请注意,我们仅正式支持桌面平台。
CCG套件的原始基于UNET的版本发生了什么变化?
UNET 已于 2022 年正式弃用。从版本 2.0.0 开始,CCG Kit 使用 Mirror 作为其网络库。Mirror 是 UNET 的开源进化版本,拥有积极开发和维护的充满活力的用户社区。将套件迁移到 Mirror 可保证与撰写本文时 Unity 的最新稳定版本 Unity 2021 LTS 兼容。