Unity从其他脚本调用类功能
问题描述:
我有2个脚本:控制台和测试。我想从测试脚本调用“appendLogLine”函数,但无法使其工作。Unity从其他脚本调用类功能
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
型' 预期”
答
为了使用GetComponent
,您正在执行的脚本GetComponent
必须从MonoBehaviour
继承。这里不是这种情况。
public class ConsoleController {}
应该public class ConsoleController : MonoBehaviour {}
现在,你在ConsoleController
脚本中使用GetComponent
。请注意,您也忘记了“()”。由于GetComponent
是一个函数,因此您必须包含该值。
它应该是这样的:
ConsoleObject.GetComponent<ConsoleController>().appendLogLine("Test123");
'ConsoleObject.GetComponent()appendLogLine( “Test123”);' –
zwcloud