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