我正在开发一个教育游戏,我给用户选择单词。目标是通过单独拖动每个单词并将其按顺序排列在提供的区域上,将这些单词排列成一个句子。我已经准备好将每个单词拖到飞机上,但我不确定如何确定用户是否已将他们的单词拖到句子中的正确位置。
我想也许我可以为每个单词提供一个 ID/Tag,并为每个平面提供一个相关的 ID/Tag。当两者发生碰撞时,我可以比较两个 ID,如果它们匹配,则认为这是一个成功的放置。
我想知道是否还有其他人有更好的解决方案,因为我不确定解决这个问题的最佳方法?
我正在开发一个教育游戏,我给用户选择单词。目标是通过单独拖动每个单词并将其按顺序排列在提供的区域上,将这些单词排列成一个句子。我已经准备好将每个单词拖到飞机上,但我不确定如何确定用户是否已将他们的单词拖到句子中的正确位置。
我想也许我可以为每个单词提供一个 ID/Tag,并为每个平面提供一个相关的 ID/Tag。当两者发生碰撞时,我可以比较两个 ID,如果它们匹配,则认为这是一个成功的放置。
我想知道是否还有其他人有更好的解决方案,因为我不确定解决这个问题的最佳方法?
你的想法很好,我不明白为什么不。取决于你如何实现这个,如果你有很多单词,你可以做很多工作,对吧?
我建议你这样做:制作一个包含 2 个碰撞器(及其各自的游戏对象)和一个脚本的预制件。一个单词碰撞器和一个正确位置的碰撞器。该脚本将从某处(资源 xml、编辑器中的字段等)读取并应用单词的初始位置和“正确位置”对撞机的位置。该脚本还将读取其他信息(如实际单词)并对这些对象进行所有配置。
通过这种方式,您可以轻松地将“word prefabs”拖到您的场景中并单独配置它们。
此外,您可以在场景中使用外部脚本来代表该“关卡”(如果该概念适用于您的游戏……),而不是拖动此预制件。这里的想法是该脚本可以在运行时加载该“级别”的预制件。它甚至可以传递预制脚本的所有数据来配置对象,就像我之前说的那样。
我忘了说最重要的区别:在这种方法中,您不必担心 ID。它们属于同一个 GameObject 父级,因此您可以轻松地在脚本中检索所需的对象。