我在C#中有这个(Gameobject来自unity3d)

namespace DLLTest
{
    public class buttong : MonoBehaviour
    {

        public GameObject BButtn([ParamDictionary] IDictionary kwargs)


这在python init中:

engine.Runtime.LoadAssembly(System.Reflection.Assembly.GetAssembly(typeof(DLLTest.buttong)));


而在Python中:

from DLLTest.buttong import BButtn
def BButton(**kwargs):
    BButtn(kwargs)


而且我不断

TypeError: expected buttong, got dict


当我从c#调用它时,它只需要字典(我认为),但是从python它需要2个参数,另外一个buttong类型,我想知道为什么以及如何提供buttong类型。

最佳答案

您的方法BButtn不是静态的。因此您需要使用buttong实例调用它(或使其变为静态)

尝试做

from DLLTest import buttong
def BButton(**kwargs):
    b= buttong()
    b.BButtn(kwargs)

关于c# - C#从python调用时需要额外的参数(.net with ironpython),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32652953/

10-12 05:17