C# js脚本中的Access C变量

C# js脚本中的Access C变量,c#,unity3d,unityscript,C#,Unity3d,Unityscript,在过去,我通过 static var somevar; 在一个脚本中。另一方面: OtherScript.somevar; 但是我需要从js脚本中的C代码中访问一个变量。我试过: Public static bool somevar; 在C文件和js文件中: OtherScript.somevar; 但是我得到了一个错误:js文件中的未知标识符“somevar”只需将Unityscript文件放在插件或标准资产文件夹中即可 说明: 按照标准方式,只能从C脚本访问Unityscript变

在过去,我通过

static var somevar;
在一个脚本中。另一方面:

 OtherScript.somevar;
但是我需要从js脚本中的C代码中访问一个变量。我试过:

Public static bool somevar;
在C文件和js文件中:

OtherScript.somevar;

但是我得到了一个错误:js文件中的未知标识符“somevar”

只需将Unityscript文件放在插件或标准资产文件夹中即可

说明: 按照标准方式,只能从C脚本访问Unityscript变量,但不能执行相反的操作。这只是C代码在Unityscript的代码之前编译

因此,为了实现您想要做的事情,您必须将Unityscript文件移动到Unity中的一个特殊文件夹中,它们是插件和标准资产,以便首先对其进行编译


之后,您应该使用常规逻辑实现访问。

您不能从JS调用静态对象并调用其属性。您必须从Unity GameObject获得帮助才能将对象作为组件,因为在Unity中,一切都是ObjectComponent。然后使用脚本中的组件作为参考

范例


游戏对象名称是MyCsharpGameObject可能正在寻找此教程:我最终只是在UnityScript中重写了脚本谢谢您的帮助,但使用了SCharpscript:OtherScript;我得到错误OtherScript不表示有效类型“未找到”SCharpscript:OtherScript;我很确定我做到了,但我最终还是用js重写了c脚本。谢谢你的帮助。
theCscharpscript : OtherScript;
theCsharpscript =  GameObject.find("MyCsharpGameObject").GetComponent("OtherScript");
theCsharpscript.thevariable;