我有一个组件类SetTrigger : MonoBehaviour
。在此处发布代码很长且无关紧要。在其中,我可以从引用的_targetTrigger
中的所有触发器参数中选择一个字符串值Animator
。
我有一个按钮GameObject
,上面有多个SetTrigger
组件,因此我可以从多个Animator
中选择多个触发器。
因此,假设我有2个SetTrigger
组件,它们引用按钮对象上的相同 Animator
(也有Button
组件)。
_targetTrigger
设置为StartButton
。_targetTrigger
设置为Initialize
。然后,我将两者都添加到检查器中调用方法onClick
的{{1}}组件的Button
中(该方法通过在引用的{{1 }}使用Set
。
因此,我希望同时设置两个_targetTrigger
和Animator
触发器(在我直接使用{{1} )。
当我单击animator.SetTrigger(_targetTrigger)
时,仅使用值StartButton
调用Initialize
方法,但两次。
这让我认为,Animator.SetTrigger(string)
组件显然只在Button
的两个条目上使用GameObject上的SetTrigger.Set()
的第一次遇到(可能是内部使用了{{1 }})。
(如何)我可以为StartButton
的{{1}}使用相同类型但具有不同值的多个组件吗?
修改
我注意到它当然只能得到一个组件,因为尽管我两次拥有该组件,但在按钮Button
的组件/方法选择弹出窗口中已经只有一个条目SetTrigger
...
我目前的替代解决方案/解决方法是
每个想要的触发器都有一个子GameObject,每个触发器只有一个onClick
并引用它们。 (不是很喜欢)
重新编写GetComponent
组件以使用触发器列表。只有这一部分。
我喜欢第二种更好的方法,但是现在我还必须使用ReorderableList为其重写整个检查器脚本,而且对于只有多个触发器来说,这真的很繁重...