unity的js脚本怎么调用c#的类

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了unity的js脚本怎么调用c#的类相关的知识,希望对你有一定的参考价值。

unity的js脚本怎么调用c#的类 , 用c#写了一个单例 在javascript里面怎么调用这个类啊

在c#中一般会封装成dll文件对外提供接口调用,unity的js脚本也是这样的调用方式。
一、创建dll文件
1。打开vs文件->新建-> 项目->C#->类库,输入项目的名称,创建一个dll项目;
2。引入 UnityEngine UnityEditor ;这两个文件放在unity安装目录的Unity\\Editor\\Data\\Managed路径下,
具体添加步骤:右键点击解决方案->添加引用->浏览;
3。如果加入了UnityEngine UnityEditor,在项目中就可以using UnityEngine 和 UnityEditor;如果项目中不需要,也可以省略第二步;
举例说明:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using UnityEngine;
using UnityEditor;
using System.Collections;
namespace dlltest

class Class2 : MonoBehaviour

void Start()

Debug.Log("this is unity call C# dll test!");




5。F5启动生成解决方案(debug或者release),把生成的dll放到unity工程的asset下;
6。如果继承了Monobehaviour的类在dll的子对象中有显示,这样就可以绑定到GameObject上了,如果是要引用dll的类,需要using 命名空间,名字一般和项目名称一致才能调用。
参考技术A #pragma strict
function OnGUI()
if (GUI.Button(Rect(100, 50, 200, 100), "JavaScript调用C#"))
// 获取C#脚本对象
var cs = this.GetComponent("CS_test");
// 调用C#脚本中的方法
(cs as CS_test).CallMe("来自JS");

追问

可是这个c#的类 没有挂在任何游戏物体上啊 他、 不是继承MonoBehaviour的呀

本回答被提问者和网友采纳

unity中两脚本间怎么传值呢?

js向js传值,c#向c#,js向c#传值。这些都怎么做到呢? 求大神解答

参考技术A 无论是JS还是C#都是用GameObject.find()方法来获取游戏对象
然后在游戏对象上调用GetComponent<T>()泛型方法来获取脚本本回答被提问者和网友采纳

以上是关于unity的js脚本怎么调用c#的类的主要内容,如果未能解决你的问题,请参考以下文章

unity3d 全局单例脚本怎么用

unity中怎样让一个对象切换脚本

在unity3D: c# 怎样调用另外一个c#脚本里面东西?

unity 用vs打开 js脚本 怎么没颜色?求解决方法?

Unity 获取WebGL URL中参数,JS调用C#

unity3d中简单的用键盘wsad控制物体移动,只会写js脚本,咋个用C#写这段脚本,这是我