返回介绍

示例: 将 Flash 中的数据提交给 Unity

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

如需将 Flash 中的数据提交给 Unity,则该数据必须为支持的数据类型。也可创建类来表示数据(通过提供 匹配的 C# 或 JavaScript 实现)。

首先,创建对象的 AS3 实现,并在工程(在名为 ActionScript 的文件夹中)中加入此类:

ActionScript 3

package
{
	public class ExampleObject
	{
		public var anInt : int;
		public var someString : String;
		public var aBool : Boolean;
	}
}

现在创建一个与 AS3 实现匹配的 C# 或 JavaScript 对象。

以下使用的 NotRenamed 属性防止对构造函数、类函数、字段和属性进行名称重整。.

NotConverted 属性指示构建管线不要将类型或成员转换为目标平台。通常,构建 Flash 时,每个 C#/JavaScript 脚本都将转换为 ActionScript (.as) 脚本。添加 [NotConverted] 属性可重写此过程,进而允许您手动提交自有的 .as 脚本版本。您提供 的虚拟 C#/JavaScript 将允许 Unity 了解类的签名(如允许其调用的函数),并且 .as 脚本将提交这些函数的实现。注意,ActionScript 版本只可用于构建 Flash。在编辑器中或构建其他平台时,Unity 将使用 C#/JavaScript 版本。

NotFlashValidated 属性以显性方式告知 Flash 验证控件忽略该类型或成员,以此方式实现目标。

C#

[NotConverted]
[NotRenamed]
public class ExampleObject
{
    [NotRenamed]
    public int anInt;

    [NotRenamed]
    public string someString;

    [NotRenamed]
    public bool aBool;
}

JavaScript

@NotConverted
@NotRenamed
class ExampleObject
{
    @NotRenamed
    public var anInt : int;

    @NotRenamed
    public var someString : String;

    @NotRenamed
    public var aBool : boolean;
}

现在,您需要使用 AS3 中的一种方式查找对象,例如:

ActionScript 3

public static function getExampleObject() : ExampleObject
{
    return new ExampleObject();
}

然后,可以检索该对象并访问其中的数据:

ExampleObject exampleObj = UnityEngine.Flash.ActionScript.Expression<ExampleObject>("MyStaticASClass.getExampleObject()");
Debug.Log(exampleObj.someString);

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

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

发布评论

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