如何在Unity3D的Button中引用相同类型的多个组件?

时间:2018-09-19 15:11:09

标签: c# unity3d

情况

我有一个组件类SetTrigger : MonoBehaviour。在此处发布代码很长且无关紧要。在其中,我可以从引用的_targetTrigger中的所有触发器参数中选择一个字符串值Animator

我有一个按钮GameObject,上面有多个SetTrigger组件,因此我可以从多个Animator中选择多个触发器。

因此,假设我有2个SetTrigger组件,它们引用按钮对象上的相同 Animator(也有Button组件)。

  • 我将_targetTrigger设置为StartButton
  • 另一方面,我将_targetTrigger设置为Initialize

然后,我将两者都添加到检查器中调用方法onClick的{​​{1}}组件的Button中(该方法通过在引用的{{1 }}使用Set

因此,我希望同时设置两个_targetTriggerAnimator触发器(在我直接使用{{1} )。

问题

当我单击animator.SetTrigger(_targetTrigger)时,仅使用值StartButton调用Initialize方法,但两次。

这让我认为,Animator.SetTrigger(string)组件显然只在Button的两个条目上使用GameObject上的SetTrigger.Set()的第一次遇到(可能是内部使用了{{1 }})。

(如何)我可以为StartButton的{​​{1}}使用相同类型但具有不同值的多个组件吗?


修改
我注意到它当然只能得到一个组件,因为尽管我两次拥有该组件,但在按钮Button的组件/方法选择弹出窗口中已经只有一个条目SetTrigger ...

我目前的替代解决方案/解决方法是

  • 每个想要的触发器都有一个子GameObject,每个触发器只有一个onClick并引用它们。 (不是很喜欢)

  • 重新编写GetComponent组件以使用触发器列表。只有这一部分。

    我喜欢第二种更好的方法,但是现在我还必须使用ReorderableList为其重写整个检查器脚本,而且对于只有多个触发器来说,这真的很繁重...

0 个答案:

没有答案