脚本的调用我这里把它分为四种情形:c#调用js,js调用js,js调用c#,c#调用c#。
通用原则:
1.被调用的js脚本必须放在Standard Assets文件夹下,没有就自己新建一个。
2.两个脚本都要处于运行状态。
3.js脚本和C#脚本重名可以通过编译,但是在调用的时候会出问题。
4.通过GetComponent()方法来调用脚本。
代码:以下代码会有大量的重复。但是为了自己以后不至于遗忘,不做任何删减。
c#调用js:(悲剧!代码片不会用)
c#代码:
void OnGUI(){
if(GUI.Button(new Rect(100,170,200,100),"c#js")){
jsScript ts=(jsScript)GetComponent("jsScript");
ts.MeJS();
}
}
public void MeC () {
Debug.Log("me C#");
}
js代码:
function OnGUI(){
if(GUI.Button(new Rect(300,170,200,100),"jsc#")){
var cs=GetComponent("DyScript");
cs.MeC();
}
}
function MeJS () {
Debug.Log("me js");
}
将两个脚本绑定到一个物体上,运行,可以看到两个脚本可以相互调用。
js调用js:
js1代码:
function OnGUI(){
if(GUI.Button(new Rect(100,170,200,100),"js#js")){
var ts=GetComponent("jsScript");
ts.MeJS();
}
}
function MeC () {
Debug.Log("me js#");
}
js2代码:
function OnGUI(){
if(GUI.Button(new Rect(300,170,200,100),"jsc#")){
var cs=GetComponent("DyScript1");
cs.MeC();
}
}
function MeJS () {
Debug.Log("me js");
}
将两个脚本绑定到一个物体上,运行,可以看到两个脚本可以相互调用。
c#调用c#:
c#1代码:
void OnGUI(){
if(GUI.Button(new Rect(100,170,200,100),"c#bdyC#")){
BdyScript ts=(BdyScript)GetComponent("BdyScript");
ts.MeBdyC();
}
}
public void MeC () {
Debug.Log("me C#");
}
c#2代码:
void OnGUI(){
if(GUI.Button(new Rect(100,370,200,100),"bdyC#c#")){
DyScript ts=(DyScript)GetComponent("DyScript");
ts.MeC();
}
}
public void MeBdyC () {
Debug.Log("me BdyC#");
}
js调用c#:
js代码:
function OnGUI(){
if(GUI.Button(new Rect(100,170,200,100),"js#C#")){
var ts=GetComponent("BdyScript");
ts.MeBdyC ();
}
}
c#代码:
public void MeBdyC () {
Debug.Log("me BdyC#");
}