2017-10-05 89 views
0

我有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型' 预期”

+1

'ConsoleObject.GetComponent ()appendLogLine( “Test123”);' – zwcloud

回答

4

为了使用GetComponent,您正在执行的脚本GetComponent必须从MonoBehaviour继承。这里不是这种情况。

public class ConsoleController {}应该public class ConsoleController : MonoBehaviour {}

现在,你在ConsoleController脚本中使用GetComponent。请注意,您也忘记了“()”。由于GetComponent是一个函数,因此您必须包含该值。

它应该是这样的:

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