unity3d中,脚本的相互调用。

脚本的调用我这里把它分为四种情形: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#");
}


已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页