纳金网

标题: Unity3D 里 C# 和JS互相访问方法 [打印本页]

作者: 会飞的鱼    时间: 2012-5-2 14:42
标题: 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");

}

}




欢迎光临 纳金网 (http://go.narkii.com/club/) Powered by Discuz! X2.5