返回介绍

示例:在 Unity 中调用 ActionScript 函数

发布于 2021-06-19 18:03:21 字数 2707 浏览 967 评论 0 收藏 0

此示例介绍在 Unity 中调用不同 AS3 函数的方法。 您将遇见三种脚本:

  • 包含不同函数示例的AS3 类 (ExampleClass.as)。必须将创建的任何 AS3 类置于工程的 “ActionScript” 文件夹下。
  • 模拟 AS3 实现的 C#/JavaScript 类 (ExampleClass.cs/js)。只需使用其中一种。
  • 如何从 Unity 调用函数的示例。

构建 Flash 时,程序将使用 ExampleClass 的 AS3 实现。在编辑器中运行或构建任何非 Flash平台时,程序将使用 C#/JavaScript 实现。

创建 ActionScript 版本的类将允许您使用原生 AS3 库构建 Flash Player。这在需要使用 Flash 无法导出的 .net 库时尤为有用。

ActionScript 3 (ExampleClass.as)

package
{
	public class ExampleClass
	{
		public static function aStaticFunction() :void
		{
			trace("aStaticFunction - AS3 Implementation");
		}

		public static function aStaticFunctionWithParams(a :int) :void
		{
			trace("aStaticFunctionWithParams - AS3 Implementation");
		}

		public static function aStaticFunctionWithReturnType() :int
		{
			trace("aStaticFunctionWithReturnType - AS3 Implementation");
			return 1;
		}

		public function aFunction() :void
		{
			trace("aFunction - AS3 Implementation");
		}
	}
}


ExampleClass - C#/JavaScript 实现

您可以创建类,以使用 C# 或 JavaScript 来模拟 AS3 实现。这类实现都非常相似。以下是两者的示例。

C# (ExampleClass.cs)

using UnityEngine;

[NotRenamed]
[NotConverted]
public class ExampleClass
{
[NotRenamed]
public static void aStaticFunction()
    {
Debug.Log("aStaticFunction - C# Implementation");
    }

[NotRenamed]
public static void aStaticFunctionWithParams(int a)
    {
Debug.Log("aStaticFunctionWithParams - C# Implementation");
    }

[NotRenamed]
public static int aStaticFunctionWithReturnType()
    {
Debug.Log("aStaticFunctionWithReturnType - C# Implementation");
return 1;
    }

[NotRenamed]
public void aFunction()
    {
Debug.Log("aFunction - C# Implementation");
    }
}

JavaScript (ExampleClass.js)

@NotConverted
@NotRenamed
class ExampleClass
{
@NotRenamed
static function aStaticFunction()
    {
Debug.Log("aStaticFunction - JS Implementation");
    }

@NotRenamed
static function aStaticFunctionWithParams(a :int)
    {
Debug.Log("aStaticFunctionWithParams - JS Implementation");
    }

@NotRenamed
static function aStaticFunctionWithReturnType() :int
    {
Debug.Log("aStaticFunctionWithReturnType - JS Implementation");
return 1;
    }

@NotRenamed
function aFunction()
    {
Debug.Log("aFunction - JS Implementation");
    }
}


如何调用函数

以下代码将在构建 Flash 时调用 ActionScript (.as) 实现中的类函数。这允许您在 flash 导出工程中使用原生 AS3 库。构建非 Flash 平台或在编辑器中运行时,程序将使用类的 C#/JavaScript 实现。

ExampleClass.aStaticFunction();
ExampleClass.aStaticFunctionWithParams(1);
int returnedValue = ExampleClass.aStaticFunctionWithReturnType();

ExampleClass exampleClass = new ExampleClass();
exampleClass.aFunction();

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文