2015-10-06 63 views
0

我使用的是虚幻引擎,但我的问题涉及到任何代码或游戏引擎。我希望玩家收集5个随机物体,随机物体必须以特定顺序或顺序收集。我想懒惰的方法是为每个触发器做一个真/假的条件,但我想如果我需要添加额外的对象到序列等会变得杂乱。什么是构建我的代码的正确方法是什么后? if语句应该以某种方式与数组链接?使用虚幻引擎收集序列中的随机对象

回答

0

如果我正确理解您的问题,您可以制作一个主清单,其中每个可收集项目按顺序排序。然后你可以简单地遍历每个你拥有的物品。

例如:

masterList = {1, 2, 3, 4, 5, 6, 7} 
collection = {...} 

*masterPos = 0 //Updated inside the function 
for i over collection 
    if(!findMatch(masterPos, masterList[i])) 
     return false 
end for 
return true 

这样你将检查主阵列中的每个元素是,如果它们不是所希望的顺序,则findMatch会由于先前的搜索的一个失败设置masterPos以比您要搜索的项目的索引更大的值。

示例: 集合= {2,5,6} 一个搜索(2)之后的masterPos值为2。然后,它变成5和最后6

如果我们代替看这是一个列表不按顺序,那么我们得到以下结果: collection = {5,6,2} 第一次搜索后,masterPos值为5.接下来的搜索给它的值为6,然后,因为我们从最后一个位置开始,我们完成整个列表而没有找到2,所以我们返回false。

希望这会有所帮助。

+0

感谢您的反馈Noobs DeSroobs。我在虚幻论坛上发现了这个解决方案 - 这对我有用:https://answers.unrealengine.com/questions/314105/how-to-see-if-a-series-of-triggers-has-been-activa。 HTML – joeyc