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

  • 相关阅读:
    python socket实现文件传输(防粘包)
    python爬虫之路——模拟登陆简单使用post方法和cookie和selenium
    python爬虫之路——使用逆行工程抓取异步加载网页数据
    python爬虫之路——多进程爬虫和单进程爬虫的简单对比
    python爬虫之路——初识数据库存储
    python爬虫之路——初识lxml库和xpath语法
    爬取一本小说全文
    python爬虫之路——Python的re模块及其方法
    python爬虫之路——正则表达式初识
    案例-爬去南京地区短租房信息
  • 原文地址:https://www.cnblogs.com/FLWL/p/3655652.html
Copyright © 2011-2022 走看看