2017-10-05 19 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 {}あなたはConsoleControllerスクリプトにGetComponentを使用し、今public class ConsoleController : MonoBehaviour {}

でなければなりません。 「()」も忘れてしまったことに注意してください。 GetComponentは関数なので、それを含める必要があります。

それはこのようになります。

ConsoleObject.GetComponent<ConsoleController>().appendLogLine("Test123"); 
関連する問題