unity中js脚本与c#脚本互相调用

unity中js脚本与c#脚本互相调用

test1.js

  1. function OnGUI()
  2. {
  3. if(GUI.Button(Rect(25,25,100,30),"JS Call CS" ))
  4. {
  5. var c = gameObject.GetComponent("test2");
  6. c.PrintTest();
  7. }
  8. }
  9. function testPrint()
  10. {
  11. print("CS Call JS");
  12. }

test2.cs

  1. using UnityEngine;
  2. using System.Collections;
  3. public class test2: MonoBehaviour {
  4. void OnGUI()
  5. {
  6. if(GUI.Button(new Rect(25,70,100,30), "CS Call JS"))
  7. {
  8. test1 c = (test1)gameObject.GetComponent("test1");
  9. c.testPrint();
  10. }
  11. }
  12. void PrintTest()
  13. {
  14. print("JS Call CS");
  15. }
  16. }

这里必须要注意的是JS文件必须是在 "StandardAssets"、 "Pro StandardAssets“和 "Plugins"这三个目录中的任何一个里,而CS文件不能与JS文件在一个目录中。原因是,这三个目录里的脚本被最先编译,"Editor"目录里的稍后编译,其他的脚本最后编译。如果在一个目录下则CS文件无法读取JS里的方法,也就无法编译通过了。而JS调用CS方法则无此限制。

时间: 2024-11-04 18:09:50

unity中js脚本与c#脚本互相调用的相关文章

如何实现IE中JS和VC之间的互相调用

引用: http://www.cnblogs.com/kwliu/archive/2011/09/29/2195894.html 一直做IE相关的东西,但是发现对JS和VC之间如何调用不是很明白.虽然知道通过IDispatch接口可以在VC程序和JS之间进行交互,但是如何具体做一直有点模糊,所以就专门做了个实验,看看他们到底如何进行沟通. 脚本语言和编译型语言之间进行通信是通过IDispatch接口来行的,这里我对双接口的理论就不进行讨论,直接看看如何用WTL代码来实现. 首先定义如下的一个ID

Unity中Web.Config文件的配置与调用

在上一篇文章“Unit简单依赖注入”我们可以实现构造对象和被依赖对象之间的 松耦合,使我们的抽象层(Player)能够保持稳定,但是在并没有把客户类和Player类之间彻底解耦,即当我们不想使用MP3Player注入,而 想使用CDPlayer注入时,我们需要修改客户类的容器注册.下面我们使用web.config配置文件来解决这个问题.Unity 应用程序块可以从 XML 配置文件中读取配置信息.配置文件可以是 Windows Forms 应用程序的 App.config 或者 ASP.NET

Unity中CS脚本于JS脚本交互

这里需要注意的是被调用的脚本必须放在 "Standard Assets". "Pro Standard Assets" 和"Plugins" 这三个文件夹中的任何一个里,而调用它的脚本不能在一个目录文件夹中,否则无法编译通过,原因是Unity会最先编译这三个文件夹,"Editor"目录里的脚本稍后编译,其他的脚本最后编译(既 CS调用JS,CS脚本放在其他文件家中,JS脚本要放在 如上三个文件夹中先编译:JS调用CS,JS脚本

unity中三种调用其他脚本函数的方法

第一种,被调用脚本函数为static类型,调用时直接用  脚本名.函数名().很不实用-- 第二种,GameObject.Find("脚本所在物体名").SendMessage("函数名");  此种方法可以调用public和private类型函数 第三种,GameObject.Find("脚本所在物体名").GetComponent<脚本名>().函数名();此种方法只可以调用public类型函数 unity中三种调用其他脚本函数的

【Unity】6.1 Unity中的C#脚本基础知识

分类:Unity.C#.VS2015 创建日期:2016-04-16 一.简介 1.常用的C#数据类型 这里简单介绍用Unity开发游戏时,最常用的一些数据类型. (1)基本类型 int.float.string.bool (2)数组 public string[ ] familyMembers = new string[ ]{"Greg", "Kate", "Adam", "Mia"} ; public GameObject

在Unity中使用Lua脚本

前言:为什么要用Lua首先要说,所有编程语言里面,我最喜欢的还是C#,VisualStudio+C#,只能说太舒服了.所以说,为什么非要在unity里面用Lua呢?可能主要是闲的蛋疼.....另外还有一些次要原因:方便做功能的热更新:Lua语言的深度和广度都不大,易学易用,可以降低项目成本. C#与Lua互相调用的方案坦白来将,我并没有对现在C#与Lua互相调用的所有库进行一个仔细的调研,大概搜了一下,找到这样几个:slua:https://github.com/pangweiwei/sluaN

在Unity中使用Lua脚本:语言层和游戏逻辑粘合层处理

前言:为什么要用Lua 首先要说,所有编程语言里面,我最喜欢的还是C#,VisualStudio+C#,只能说太舒服了.所以说,为什么非要在Unity里面用Lua呢?可能主要是闲的蛋疼.....另外还有一些次要原因: 方便做功能的热更新: Lua语言的深度和广度都不大,易学易用,可以降低项目成本. C#与Lua互相调用的方案 坦白来将,我并没有对现在C#与Lua互相调用的所有库进行一个仔细的调研,大概搜了一下,找到这样几个: slua:https://github.com/pangweiwei/

MQTT通信协议在Unity中的应用之——JS实现

一直以来在工业领域研究,根据数字孪生的要求,需要打通网络,从CLP到IOT到Dass到虚拟工厂(三维可视化),为了打通控制与反控制的状态,需要打通网络通信,对于Unity首先想到的肯定是Socket通信,这也是很多开发人员所熟悉的方法,但是MQTT通信协议在工业通信中使用很普遍,所以今天我就对MQTT通信协议在Unity使用做介绍我这边因为要上云端,所以,我测试了两套方案1.通过JS实现MQTT通信,再通过Unity与JS交互,实现通信首先需要paho-mqtt.js,jquery.min.js

JS 动态加载脚本 执行回调[transfer]

JS 动态加载脚本 执行回调 关于在javascript里面加载其它的js文件的问题可能很多人都遇到过,但很多朋友可能并不知道怎么判断我们要加载的js文件是否加载完成,如果没有加载完成我们就调用文件里面的函数是不会成功的.本文讲解怎么在js中加载其它js文件并在加载完成后执行回调函数. 我们可以动态的创建 <script> 元素,然后通过更改它的 src 属性来加载脚本,但是怎么知道这个脚本文件加载完成了呢,因为我们有些函数需要在脚本加载完成生效后才能开始执行. 经过对网络上资源的搜索,我发现