据我所知,我的问题以前没有得到解答。我正在使用Unity为Windows Phone 8创建一个应用程序,我想获取用户的输入并将其作为代码执行。现在通常使用JavaScript,可以使用eval(“这里是代码”),但Unity不喜欢这样,并且说我的目标(WP8)不允许使用eval()。
所以我的问题是 - 如何在不使用eval()的情况下在EITHER C#或UnityScript中执行字符串代码,而不依赖于窗口或将脚本附加到文档 - 基本上它可以与Unity一起使用。
例如,如果我可以使用eval,我会这样做:eval(“createCuboid(0,1,2)”);
感谢您的帮助。
编辑: 所以我正在创建一个允许用户在GUI.TextField中输入一行代码的应用程序。当用户单击按钮时,它将获取其代码并运行它。在我的示例createCuboid(0,1,2)中,我有自己的函数,可以根据用户的规范创建一个长方体(如参数中所示)。
我想要这个的原因是因为我希望用户能够自由地操纵3D环境而不必做一些更加紧缩的事情 - 例如,必须点击带有createCuboid的按钮,然后输入参数多个领域。我有多个用户可以调用的函数来操作环境。
这有帮助吗?
答案 0 :(得分:1)
为什么需要让用户编写代码? 那是非常危险的。如果你想允许用户在运行时创建对象(比如立方体),让用户选择他们想要创建的内容,使用字段来获取函数参数(在这里检查是否正确。)并创建对象。
可能是这样的:
List<Cubes> cubes = new List<Cubes>();
int create = /* read */;
switch (create)
{
case 0: {
int x = /* ask for x */
int y = /* ask for y */
cubes.Add(createCuboid(x, y, 0));
break;
}
/* etc */
}
如果您想让用户删除多维数据集,请从列表中获取并删除它。 而且......是的,这段代码只是为了澄清我想说的话。