从C调用IronPython函数,反之亦然

2024-09-27 00:15:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在设计一款Unity3D游戏,用户可以通过修改.py文件来调整游戏玩法。在

我使用的是Python Interpreter资产,它包装了IronPython。在

我需要在C和运行中的Python实例之间传递控制权。下面是一个伪代码示例:

// From Unity, C# script... 
bool MakeNoise( float vol ) {
    //...
}
void Awake() {
    m_pythonEngine = Python.CreateEngine();
    m_scriptScope = m_pythonEngine.CreateScope();
}
bool NewRound( int n ) {
    myPythonRuntime.InvokeFunction( "NewRoundPy", param: roundNumber = n );
    return retVal;
}

然后,在游戏运行时,用户可以在文本框中输入:

^{pr2}$

它又会在新一轮启动时调用MakeNoise函数。在

为笨拙的假设情况道歉。重要的是,我需要能够将执行从一个环境转移到另一个环境,并在执行过程中传递数据。在

我知道运行Python脚本所需的代码。但是我想从脚本中调用各个函数。脚本必须在这两个调用之间保持运行,以便在一个函数/调用中设置的变量在下次调用某个函数时保留其值。在

这可能吗?如果是,怎么办?在

PS使用Python->;C#似乎相当简单;IronPython .NET Integration documentation

当我对发生的事情有了一些了解后,我会整理这个问题


Tags: 文件函数代码用户py脚本游戏环境

热门问题