Unity3D: JavaScript->C# 或 C#->JavaScript的调用

2015年03月19日 11:50 0 点赞 0 评论 更新于 2017-05-03 15:21

在进行Unity3D编程时,有时我们需要访问使用不同编程语言编写的脚本。虽然建议将所有脚本统一为一种语言,但了解如何在JavaScript类中访问C#脚本,以及在C#脚本中访问JavaScript脚本是很有必要的。

脚本放置要求

首先,需要将脚本放置在项目的正确目录中。你要访问的脚本必须放在Standard Assets或者Plugins目录下,而其他脚本则放在这些目录之外。这是因为这些目录中的脚本会首先被编译,意味着它们不能访问外部尚未编译的脚本。

从JavaScript调用C#脚本

完成脚本的放置后,就可以像调用其他组件一样使用GetComponent()方法。以下是一个JavaScript的示例代码:

// 创建一个变量以访问C#脚本
private var csScript : CSharp1;

function Awake()
{
// 获取C#脚本组件
csScript = this.GetComponent("CSharp1");
// 注意:需要将 'CSharp1' 文件放在 'Standard Assets' 文件夹内
}
// ...

从C#调用JavaScript脚本

下面是一个从C#脚本调用JavaScript脚本的示例:

using UnityEngine;
using System.Collections;

public class CSharp2 : MonoBehaviour
{
// 创建一个变量以访问JavaScript脚本
private JS1 jsScript;

void Awake()
{
// 获取JavaScript组件
jsScript = this.GetComponent<JS1>();
// 注意:需要将 'JS1' 文件放在 'Standard Assets' 文件夹内
}
// ...
}

总结

以上就是在Unity3D中实现JavaScript与C#脚本相互调用的方法。由于脚本编译顺序的限制,无法同时让C#和JavaScript脚本相互直接访问,必须有一个脚本放在Standard Assets或者Plugins目录下。

作者信息

menghao

menghao

共发布了 332 篇文章