【问题标题】:GetComponent not recognising component in Unity JavaScript codeGetComponent 无法识别 Unity JavaScript 代码中的组件
【发布时间】:2017-08-05 13:47:56
【问题描述】:

我有一个代码块,它启动一个计时器,启用一个脚本,实例化,然后禁用该脚本(这使我的游戏机制发挥作用)。我现在面临的唯一问题是我的 Javascript 代码无法识别组件(触发)错误将脚本读取为未声明 从公共变量(已添加,并保存脚本)。

我遵循了 Unity 的示例,但似乎没有成功。任何帮助表示赞赏。这是我的代码:

#pragma strict

var enemy : Transform;
private var timer : float;
public var mother : GameObject;

function Awake() {
    timer = Time.time + 14;
    script = mother.GetComponent(triggered);
    script.enabled = script.enabled;
}

function Update() {
    if (timer < Time.time) {
        Instantiate(enemy, transform.position, transform.rotation);
        timer = Time.time + Random.Range(55, 60);
        script.enabled = !script.enabled;
    }
}

【问题讨论】:

  • 1.您没有描述您的问题。你有什么错误吗?这段代码到底发生了什么? 2.script 未声明。你为什么要访问/写入一个甚至没有声明的变量? 3.您应该使用 C# 而不是 Unityscript/Javascript。如果您想在未来创建严肃的游戏,您将需要它。
  • @Programmer 这是我第一次编写游戏代码,所以我对使用哪种语言不是很有经验;)。是的,错误是因为它未声明,但脚本不是声明为母亲的组件吗?这怎么可能解决?将 private var script = mother.GetComponent(triggered); 添加到 Awake 函数的外部和上方会修复它吗?
  • 你有一个名为triggered的脚本?
  • @Programmer 是的,它在游戏对象下添加到 public var

标签: javascript variables unity3d unity5


【解决方案1】:

script 变量声明。

#pragma strict

var enemy : Transform;
private var timer : float;
public var mother : GameObject;

//DECLARE IT
private var script : triggered;

function Awake() {
    timer = Time.time + 14;
    script = mother.GetComponent(triggered);
    script.enabled = script.enabled;
}

function Update() {
    if (timer < Time.time) {
        Instantiate(enemy, transform.position, transform.rotation);
        timer = Time.time + Random.Range(55, 60);
        script.enabled = !script.enabled;
    }
}

注意:

learn C# 并开始在 Unity 中使用它。您将节省自己的时间。此外,在创建脚本时,请确保将它们大写。例如,triggered 应该是 Triggered

【讨论】:

  • 巨大的菜鸟错误,该死的。如果我决定继续使用 Unity,我会相信你的话,一定要学习我的 Cs。谢谢!
猜你喜欢
  • 1970-01-01
  • 2016-10-10
  • 2015-07-12
  • 1970-01-01
  • 1970-01-01
  • 2020-01-25
  • 2014-09-21
  • 1970-01-01
  • 2016-09-06
相关资源
最近更新 更多