Unity从其他脚本调用类函数

时间:2017-10-05 14:15:11

标签: c# function class unity3d

我有2个脚本:控制台和测试。我想从测试脚本中调用“appendLogLine”函数,但无法使其正常工作。

Console.cs:

public class ConsoleController
{

    public void appendLogLine(string line)
    {
        if (line == "Unable to process command ''")
            return;

        Debug.Log(line);

        if (scrollback.Count >= ConsoleController.scrollbackSize)
        {
            scrollback.Dequeue();
        }
        scrollback.Enqueue(line);

        log = scrollback.ToArray();
        if (logChanged != null)
        {
            logChanged(log);
        }
    }
}

test.cs中:

public GameObject ConsoleObject;

public void CallLog()
{

    ConsoleObject.GetComponent<ConsoleController>.appendLogLine ("Test123");
}

我得到错误:“错误CS0119:表达式表示method group', where a变量',value' or类型'是预期的”

1 个答案:

答案 0 :(得分:4)

要使用GetComponent,您正在执行MonoBehaviour的脚本必须从public class ConsoleController {}继承。这不是这种情况。

public class ConsoleController : MonoBehaviour {}应为GetComponent

现在,您在ConsoleController脚本上使用GetComponent。请注意,您也忘记了“()”。您必须包括,因为ConsoleObject.GetComponent<ConsoleController>().appendLogLine("Test123"); 是一个函数。

应该是这样的:

translatedWord = $translate.instant(YOUR_KEY,{},"",YOUR_LANGUAGE);