在拖放游戏中匹配对象

时间:2012-03-30 22:12:20

标签: c# unity3d gameobject

我正在开发一款教育游戏,我会向用户提供一系列单词。目标是通过单独拖动每个单词并将其按顺序放置在提供的区域上,将这些单词排列成句子。我有一个飞机准备好拖动每个单词,但我不确定如何确定用户是否已将他们的单词拖到句子中的正确位置。

我想也许我可以为每个单词提供一个ID /标签,并为每个平面提供相关的ID /标签。当两个碰撞时,我可以比较两个ID,如果它们匹配,则认为它是成功的放置。

我想知道是否有其他人有更好的解决方案,因为我不确定最好的解决方法?

1 个答案:

答案 0 :(得分:1)

你的想法很好,我不明白为什么不。根据你如何实现这个,如果你有很多单词,你可以做很多工作,对吗?

我建议你这样做:制作一个由2个碰撞器(及其各自的游戏对象)和一个脚本组成的预制件。一个对应的单词和一个正确位置的colider。脚本将从某处读取(资源xml,编辑器中的字段等)并应用单词的初始位置和“正确位置”对撞机的位置。该脚本还会读取其他信息(如实际单词)并对这些对象进行所有配置。

通过这种方式,您可以轻松地将“word prefabs”拖动到场景中并单独配置它们。

此外,您可以在场景中使用外部脚本代替“级别”(如果该概念适用于您的游戏......),而不是拖动此预制件。这里的想法是这个脚本可以在运行时加载该“级别”的预制件。它甚至可以传递预制脚本的所有数据来配置对象,就像我之前说的那样。

我忘了说最重要的区别:在这种方法中你不必担心ID。它们属于同一个GameObject父级,因此您可以轻松地在脚本中检索所需的对象。