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

  • 相关阅读:
    中台架构的新一代业务支撑体系是如何实现
    共同探索企业级数据库架构之道路
    综述:图像风格化算法最全盘点 | 内附大量扩展应用
    【加法笔记系列】JS 加法器模拟
    OAuth 及 移动端鉴权调研
    神经引导演绎搜索:两全其美的程序合成方法
    围观神龙架构首次开箱,现场直播暴力拆机
    QA质量意识
    接口测试总结篇
    接口测试用例设计
  • 原文地址:https://www.cnblogs.com/FLWL/p/3655652.html
Copyright © 2011-2022 走看看