zoukankan      html  css  js  c++  java
  • 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");
    }
    }

  • 相关阅读:
    [精华] Linux内存:内存管理的实质
    阿里巴巴笔试题
    LINUX内核经典面试题(转)
    常见网络编程面试题答案征集与面试题(收集)
    转使用jQuery Ajax的内存回收
    模式识别与机器学习
    vc2010 学习笔记2
    vc2010 学习笔记3
    Android高级编程(笔记)第6章 数据存储、检索和共享—3SQLite数据库
    Android高级编程(笔记)第6章 数据存储、检索和共享1共享Preference
  • 原文地址:https://www.cnblogs.com/FLWL/p/3655652.html
Copyright © 2011-2022 走看看