gpt4 book ai didi

javascript - 为 android 构建统一代码时出现问题

转载 作者:行者123 更新时间:2023-12-03 03:15:07 24 4
gpt4 key购买 nike

我的代码在 Windows 上运行得很好,但是当我切换到 Android 时,它就不起作用了。我收到错误

Assets/enemyNo.js(49,20): BCE0019: 'gameObject' is not a member of 'Object'. 

这是我遇到问题的代码

function OnTriggerEnter2D(obj) {

// Name of the object that collided with the enemy
var name = obj.gameObject.name;

// If the enemy collided with a bullet
if (name == "bullet(Clone)") {
// Destroy itself (the enemy) and the bullet
//shship.AddScore(scoreValue);
Destroy(gameObject);
Destroy(obj.gameObject);
}

// If the enemy collided with the spaceship
if (name == "spaceship") {
// Destroy itself (the enemy) to keep things simple
Destroy(gameObject);
}
}

我的最小 android 设置为 kitkat,我将其注释掉,它工作正常,只是没有与对象交互。我的 SDK 最初无法工作,但我复制了旧 SDK 的一部分(我相信是工具),它可以编译并转换为 APK

最佳答案

因为Android不支持动态类型。在这行代码中:

var name = obj.gameObject.name;

name 被声明为通用变量,没有特定类型。Windows,在编译阶段就让它过去,但Android不会。应该是:

var name : String = obj.gameObject.name;

两个提示:

1) [推荐]开始学习C#,它更健壮、更高效、支持更好。

2) 如果您想继续使用 UnityScript 路径,请在每个脚本的开头添加 #pragma strict。这会迫使编译器像 Android 中一样应用严格的规则,从而防止动态类型(在 Windows 上会出现编译错误,就像在 Android 上一样)。

关于javascript - 为 android 构建统一代码时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46801392/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com