Я экспериментирую со встраиванием IronPython в проект Unity 3D, и у меня возникли некоторые ошибки, которые я не могу понять.
У меня есть следующий скрипт, присоединенный к GameObject в Unity.
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);
}
}
Цель состоит в том, чтобы приведенный выше экземпляр движка IronPython выполнил следующий простой скрипт Python, называемый ipscript.py
.
commands = "Script executed."
Когда я вхожу в режим игры (в Unity), я получаюследующая ошибка.
MissingMemberException: 'ScopeStorage' object has no attribute 'commands'
Кто-нибудь знает, что я должен исследовать, чтобы решить эту проблему?Возможно, мне нужно реализовать перехват ошибок, чтобы я мог видеть любые исключения, которые IronPython генерирует при выполнении скрипта Python?