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#");
}


  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值