从脚本到脚本传输参数,如何?

时间:2015-01-15 19:56:27

标签: parameters unity3d unityscript transmission

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

以下是我的脚本:

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);

PS:对不起我的英语,我是德国人。

2 个答案:

答案 0 :(得分:1)

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

SCRIPTA

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

    reference.setValue(50);
}

所以我们Find()拥有脚本的GameObject,我们首先需要拥有它的GameObject的名称。然后我们使用GetComponent()来获取脚本的参考。然后我们进行函数调用以设置参数。


ScriptB

private var myValue : int;

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

答案 1 :(得分:0)

PlayerPrefs.SetInt("variablenname", 1);

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

效果很好!