Python中的委托与unity结合使用
本文关键字:unity 结合 Python | 更新日期: 2023-09-27 18:12:47
我有一些来自Unity3D教程的c#代码片段
AddListener(delegate {print(i);}
我想在python中这样做,我需要一个容器来传递I来打印,但是Unity不接受部分
TypeError: expected UnityAction, got partial
请帮帮我
AddListener(Lambda i: print(i))
应该可以工作,但不知何故,我没有设法拼写正确的函数,我总是得到:
()只接受1个参数(给定0)
使用IronPython和普通python。
这里是我想要做的一个更大的概要:
browser(enter=holderdict,itemy=0,*a):
for item in enter["template"]:
kgo = GameObject()
kgo.AddComponent[RectTransform]()
kgo.name=str(item)
butn = kgo.AddComponent[Button]()
butn.onClick.AddListener(lambda butn: browser(item))
好的,我解决了这个问题,到目前为止,问题不是在Lambda,而是在我如何调用浏览器这是正确的:
butn.onClick.AddListener(lambda butn: browser(holderdict[item]))
,但我仍然有一个问题:Lambda不保护它应该在循环中传递的项目,而只是传递循环的最后一个。有什么建议吗?
好了,我终于设法让Lambda工作了:
butn.onClick.AddListener(lambda item=item: dicbrowser(holderdict[item],0))