【问题标题】:Unity3d: Execute arbitrary javascript from C# objectUnity3d:从 C# 对象执行任意 javascript
【发布时间】:2012-09-12 19:18:53
【问题描述】:
我愿意
string expression = "2+2";
public string evaluateExpresion(expression)
{
return executeJavascript(expression); // Magic javascript executor
}
Debug.Log(evaluateExpression(expression);
我怎样才能做到这一点?
【问题讨论】:
标签:
c#
unity3d
expression
unityscript
expression-evaluation
【解决方案1】:
您可以使用所需的函数创建一个 javascript 文件,如果我没有误解您的意思,您可以在您的 c# 文件中调用它们。在您的示例中,您可以创建:
// JavaScriptExpressions.js
function executeExpression( x : string ) {
// Some code here..
}
JavaScript 文件,您可以通过将 js 拖到与您的 c# 文件相同的转换来访问该函数,也可以将其拖到不同的转换。或者,如果它未连接到单声道库,您可以将其设置为静态。这是c#的示例代码:
// YourCsharp.cs
string expression = "2+2";
public string evaluateExpresion(string expression) {
return transform.GetComponent<JavaScriptExpressions>().executeExpression(expression);
}
Debug.Log(evaluateExpression(expression));