使用Python代表团结一致

时间:2015-09-15 15:52:35

标签: c# python unity3d

我有一些c#代码摘自Unity3D教程

AddListener(delegate {print(i);}

我想在python中这样做我需要一个容器来传递我打印,但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不保证它应该在循环中传递的项目,而只是传递循环的最后一个。有什么建议吗?

1 个答案:

答案 0 :(得分:0)

好吧,我终于设法让Lambda工作了:

butn.onClick.AddListener(lambda item=item: dicbrowser(holderdict[item],0))