如何查看IronPython脚本生成的异常?

时间:2018-09-24 16:43:32

标签: c# unity3d ironpython

我正在尝试将IronPython嵌入Unity 3D项目中,但遇到了一些似乎无法弄清的错误。

我在Unity中将以下脚本附加到GameObject。

Optional

目标是让上面实例化的IronPython引擎执行以下名为using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEditor; using IronPython; using IronPython.Modules; using System.Text; public class IronPythonWrapper : MonoBehaviour { void Start() { ScriptTest(); } public static void ScriptTest() { // create the engine var engine = IronPython.Hosting.Python.CreateEngine(); // and the scope (i.e. the Python namespace) var scope = engine.CreateScope(); // execute the Python script engine.ExecuteFile("Assets/Scripts/ipscript.py"); // grab the variable from the Python scope string commands = scope.GetVariable<string>("commands"); Debug.Log(commands); } } 的简单Python脚本。

ipscript.py

当我进入播放模式(在Unity中)时,出现以下错误。

commands = "Script executed."

有人知道我应该调查什么以解决此问题吗?也许我需要实现一些错误捕获,以便我可以看到IronPython在执行Python脚本时生成的任何异常?

1 个答案:

答案 0 :(得分:1)

您的python执行未正确传递范围。因此,您的commands变量是在执行python文件后被丢弃的瞬时作用域上创建的,而显式创建的作用域不知道commands是什么。

该片段应显示为

engine.ExecuteFile("Assets/Scripts/ipscript.py", scope);