【问题标题】:Unity compare if two input fields have same valueUnity比较两个输入字段是否具有相同的值
【发布时间】:2015-09-13 04:27:36
【问题描述】:

我怎样才能做到这一点?一个函数在 Unity 中只能接受一个事件的参数。 我想比较同一个画布中有两个不同的输入字段。 我假设这可以使用对象作为参数来完成,但我不知道我可以传递哪个对象。我尝试将画布和输入字段 gameObject(我猜这就是它的名称)拖动到我选择的函数的对象参数字段,但它们没有被接受。

这是我要附加脚本的地方:-

【问题讨论】:

  • 你要拖到哪里?我不熟悉 Unity 中可以将 GameObject 作为 argument 的任何地方,仅作为字段。 (也许你指的是一些我还没有玩过的 GUI 东西,增加问题的清晰度会很有帮助。)
  • @e1eee384 我相信他的意思是他将它作为变量添加到检查器中
  • @e1ee384 我尝试将它们拖到我的方法的参数中,该方法由第二个输入字段的 OnValueChange 事件调用。我正在使用 Unity 5。我很确定那是错误的。
  • 对我的用户名的有趣误读!我现在明白了,我只是没有使用过那个 UI。很好的说明。
  • 哦。该用户界面非常方便。你应该尝试使用它。虽然我现在大多数时候更喜欢使用 FindWithTag() :)

标签: c# unity3d


【解决方案1】:

InputFields 不是 GameObject。它们是 UI.InputField 类的对象。所以在你的脚本导入 UI 中使用

#using UnityEngine.UI;

然后创建2个InputField对象。

public InputField inp1;
public InputField inp2;

然后将您的 InputFields 拖到它们上面。然后你可以像这样比较他们的文字:

if( inp1.text == inp2.text) {}

编辑:您不应该将脚本附加到那里,因为变量可能会动态变化。将此脚本附加到一个空的游戏对象,在下面添加新的 sn-p 到脚本,然后将此空的游戏对象附加到您显示的事件字段。然后您应该选择编辑结束时将调用的函数。为此,在脚本中为每个输入字段创建两个不同的函数:

//Call this on EndEdit for inputField1
public void InpField1EndEdit()
{
    //compare input fields here or make what you want
}

//Call this on EndEdit for inputField2
public void InpField2EndEdit()
{
    //compare input fields here or make what you want
} 

【讨论】:

  • 我应该把这个脚本放在哪里?
  • 没关系。你可以把它放在一个空的游戏对象或主摄像机上。
  • 我添加了一个屏幕截图,我想在其中附加脚本。如果我将它附加在那里,我看不到可以拖放输入框的选项。
  • 我编辑了我的答案。我希望它能解决你的问题。顺便说一句对不起英语不好:)
  • 谢谢,这对将来的参考很有用。我用其他方法解决了我的问题:)
猜你喜欢
  • 2016-09-15
  • 1970-01-01
  • 2021-03-09
  • 2020-12-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多