unity3D中C#和JS互相访问

方法01

------------------------JS访问C#的变量-----------------------------

JS脚本:

import System.Reflection; 
var ee = 0;
var ddf:GameObject;
function OnGUI () 
{
var targetController1:Component= ddf.GetComponent("ctrl");
var fieldInfo: FieldInfo=targetController1.GetType().GetField("csvalue");

if(GUI.Button(Rect(100,100,100,100),"Call"))
{
ee=fieldInfo.GetValue(targetController1); 
print(ee.ToString());
}
}

 

C#脚本:

using UnityEngine;
using System.Collections;

public class ctrl : MonoBehaviour 
{
public int csvalue = 100;
void Start () 
{
}

void Update () 
{

}
}

-----------------------c#访问JS变量------------------------

c#代码:

using UnityEngine;
using System.Collections;
using System;
using System.Reflection;

public class CtoJS : MonoBehaviour {

public GameObject tt;
public String moneycount;
public String boncount;
// Use this for initialization
void Start () 
{
Component AComponent = tt.GetComponent("CllisionsSomeThing");
FieldInfo fieldInfo = AComponent.GetType().GetField("MC");
FieldInfo fieldInfo1 = AComponent.GetType().GetField("BomCount"); 
moneycount = fieldInfo.GetValue(AComponent).ToString();
boncount= fieldInfo1.GetValue(AComponent).ToString();

print(moneycount);
print(boncount);
}

void Update () 
{
}
}

 

js代码:

#pragma strict

var MC = "sdfsdfs";
var BomCount = 1000;

function Start () {

}

function Update () {

}

-------------------------------------------------------------------------------------------------

方法02

 

兩個文件 test1.js 和 test2.cs

test1.js

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

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

 

test2.cs

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->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互相访问,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。