求助,Unity3D C#调用JS脚本出问题了.JS识别不了

JavaScript010

求助,Unity3D C#调用JS脚本出问题了.JS识别不了,第1张

你这几个错误并非new一个类的问题,从上面的代码看有两个错误,前面俩错误是因为你用js直接创建了二维数组,而unity的js并不知道创建二维数组,需要从C#写个方法来返回数组,再直接调用,具体的请百度。。。

后面的两个错误就明显了,在 var card:Object这个地方,你创建这个card本来是Card类型,你后面又加上个:Object干嘛呢。。。再转回Object类型?那Card类型里面的属性和方法岂不是都不能用了?所以只要去掉这个:Object就行了

首先需要跟大家说明的一点是,JS脚本必须放在"StandardAssets"、 "Pro StandardAssets“和

"Plugins"这三个目录中的哪个都可以,原因是,这三个目录里的脚本被最先编译,"Editor"目录里的稍后编译,其他的脚本最后编译。如果在一

个目录下则CS文件无法读取JS里的方法,也就无法编译通过了。而JS调用CS方法则无此限制。

其次是,当你在CS脚本中获取JS脚本的时候,你写JS脚本名字的时候可能是不能被识别的(报红),不要害怕 - -,大胆的写下去吧,运行时是不会报错的

不要看到他红了就以为不能运行了,其实有的电脑是没有加载这个程序集,所以才这样的,想说的就这么多,大家顺利的调用JS吧~

JsScript.js

[csharp] view plain copy

function OnGUI()

{

if(GUI.Button(Rect(25,25,100,30),"JS Call CS" ))

{

var c = gameObject.GetComponent("test2")

c.PrintTest()

}

}

function testPrint()

{

print("CS Call JS")

}

Csharp.cs

[csharp] view plain copy

using UnityEngine

using System.Collections

public class test2: MonoBehaviour {

void OnGUI()

{

if(GUI.Button(new Rect(25,70,100,30), "CS Call JS"))

{

test1 c = (test1)gameObject.GetComponent("test1")

c.testPrint()

}

}

void PrintTest()

{

print("JS Call CS")

}

}

Unity3D中C#和JS的方法互相调用

http://www.cnblogs.com/solq/archive/2012/05/24/2517297.html

详细可以参考这个,有图解教程,希望可以帮到你