2015-04-08 26 views
0

對不起,因爲我不知道該怎麼稱呼它。 我有這樣的代碼:如何將MonoBehaviour傳遞給靜態方法?

using UnityEngine; 
using System.Collections; 
using System.Collections.Generic; 

public class ScoreBridge : MonoBehaviour { 

public static string resultText; 

public static string GetScores() 
{ 
    HighscoreSaver.loadScores(this); 
    return resultText; 
} 
public void OnHighscoreLoaded(List<HighscoreSaver.Highscore> highscores) 
{ 
    Debug.Log("Updating highscores!"); 
    string text = ""; 
    foreach (HighscoreSaver.Highscore hs in highscores) 
    { 
     text += hs.name + "\t\t" + hs.score + "\n"; 
    } 
    resultText = text; 
} 

,我需要運行在GetScores HighscoreSaver.loadScores(本)()調用,但我不能在靜態方法使用「這個」關鍵字。 任何建議都可以接受。 謝謝

+1

爲什麼GetScores靜態的?你不能只從GetScores中刪除靜態關鍵字? – Polyfun

+0

我需要訪問另一個腳本中的GetScores()。這就是爲什麼它是靜態的。 – user1831943

+0

如果您需要在另一個腳本中使用GetScores(),則可以將ScoreBridge實例保存在該腳本中。 –

回答

0

有沒有神奇的方式將引用傳遞到靜態上下文中。所以你必須將你的ScoreBridge實例傳遞給GetScores方法,如果你真的想讓它靜態的話。

我想你想要的是實現一個單身設計模式。如果你不熟悉它,請看看這裏。

http://wiki.unity3d.com/index.php/Singleton

+0

我使用單例和錯誤消失了,但GetScores()不返回任何內容。 – user1831943