【问题标题】:Transmitting parameters from script to script, how?将参数从脚本传输到脚本,如何?
【发布时间】:2015-01-15 19:56:26
【问题描述】:

我知道这个问题有一些答案,但它们对我不起作用,或者我只是愚蠢。对不起。

这是我的脚本:

menu_options.js - http://pastebin.com/NFXD3ZgP

Transmitter.js - http://pastebin.com/kCmGTgbH

我已将 Transmitter.js 附加到特定对象。它被称为“_Transmitter”。

如果我运行我的脚本,我会收到以下错误:

Assets/Script/menu_options.js(7,40): BCE0023: No appropriate version of 'UnityEngine.GameObject.GetComponent' for the argument list '(UnityEngine.GameObject)' was found.

为什么?又是什么意思?

我在教程和答案中理解错了什么?

我也试过这个:

trans = Transmitter.gameObject.GetComponent(Transmitter);

还有这个:

trans = Transmitter.GetComponent(Transmitter);

【问题讨论】:

  • 我明白了! PlayerPrefs.SetInt("light", 50);和 PlayerPrefs.GetInt("light");我正在使用!
  • PlayerPrefs 当您只想在脚本之间传递一个参数时,这太过分了。在下面检查我的答案。

标签: parameters unity3d unityscript transmission


【解决方案1】:

要将参数传递给另一个脚本,您必须首先引用该脚本。

脚本A

function Start()
{
    var reference : GameObject = GameObject.Find("Name Of GameObject").GetComponent("ScriptB");

    reference.setValue(50);
}

所以我们Find() 拥有脚本的游戏对象,我们首先需要拥有它的游戏对象的名称。然后我们使用GetComponent() 来获取脚本的引用。然后我们调用函数来设置参数。


脚本B

private var myValue : int;

function setValue(var amount : int)
{
    myValue = amount;
}

【讨论】:

  • 哦,好的,谢谢,但我不需要调用 funktions。但是谢谢!
【解决方案2】:
PlayerPrefs.SetInt("variablenname", 1);

var v1 = PlayerPrefs.GetInt("variablenname");

效果很好!

【讨论】:

  • 请确保您的帖子使用英文。该网站只有英文,看着你的问题,你说得很好。 ;)
猜你喜欢
  • 1970-01-01
  • 2022-09-27
  • 2016-12-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-15
  • 2011-04-26
  • 2019-09-13
  • 1970-01-01
相关资源
最近更新 更多