无法在python

时间:2017-07-11 17:20:11

标签: ironpython monogame

我在这个问题上遇到了很多困难。由于文件在这个问题上是不存在的,样本很少,我必须倾向于SO社区。

我所做的就是让我的模型围绕Z轴旋转。为此我每次更新都执行一个python脚本:

renderComp = Entity.GetComponent[Render3DComponent]()
rot = renderComp.Rotation
renderComp.Rotation = rot.Z + MathHelper.ToRadians(0.01)

Entity 是在pass-thru范围内执行之前设置的游戏实体。 Render3DComponent 是包含对象的缩放和旋转的组件(至少现在)并呈现模型。 旋转因此是 Vector3 ,它存储所有三个轴旋转值。

一旦我执行了脚本,就会告诉我:

  

IronPython.Runtime.UnboundNameException:' name' Render3DComponent'是   没有定义'

我的引擎设置如下:

_engine = Python.CreateEngine(options);

_engine.Runtime.IO.RedirectToConsole();
_engine.Runtime.LoadAssembly(AppDomain.CurrentDomain.GetAssemblies()
    .First(a => a.FullName.Contains("MonoGame.Framework")));
_engine.Runtime.LoadAssembly(Assembly.GetEntryAssembly());
_engine.Runtime.LoadAssembly(Assembly.Load("mscorlib"));
_scope = _engine.CreateScope();
Console.SetOut(TextWriter.Synchronized(_engine.Runtime.IO.OutputWriter));

因此,实际上应该已经引用了我的游戏程序集和MonoGame。 尽管如此,我还尝试在脚本中添加引用(毕竟在我看来这是一个性能问题):

import clr
clr.AddReferenceToFileAndPath("AlphaEnergy.exe")
clr.AddReferenceToFileAndPath("MonoGame.Framework.dll")

from AlphaEnergy import Render3DComponent

renderComp = Entity.GetComponent[Render3DComponent]()
rot = renderComp.Rotation
renderComp.Rotation = rot.Z + MathHelper.ToRadians(0.01)

但后来我得到了这个例外:

  

IronPython.Runtime.Exceptions.ImportException:'无法导入名称   Render3DComponent'

所以我真的不知道问题应该是什么。我记得这更容易使用...

由于我在运行时期间按需执行脚本,因此我无法让Visual Studio的调试器使用它。

0 个答案:

没有答案