私が作業しているプロジェクトのクラスのデリゲートに問題があります。このクラスは、ラベルと値の両方を受け入れるGUIコンポーネントです。ここでのアイデアは、ユーザーがラベルを指定して、その値が更新されるたびにGUIコンポーネントが表示されるように、どこからでも(特にその値のToStringメソッド)値をリンクできることです。これは、それが設定されている方法の基本である:デリゲートの詳細
public delegate string GUIValue();
public class GUIComponent
{
GUIValue value = null; // The value linked in
string label = ""; // The label for the value
string text = ""; // The label and value appended together
public GUIComponent(string Text, GUIValue Value)
{
this.text = Text;
this.value += Value;
}
public void Update()
{
this.text = this.label + this.value();
}
}
そして私は、コードが正しくコンパイル、およびコンポーネントが表示を行い、および初期値を表示し
GUIComponent component = new GUIComponent("Label: ",
new GUIValue(this.attribute.ToString));
このようにそれを呼び出しますただし、属性値が変更されるたびに更新されることはありません。
私の質問は、私が最初に正しい設定をしているかどうかであり、もしそうなら、なぜそれが動作しないのかということです。私の最初の考えは、引数をとらないので、ToStringメソッドによる最初の値の返りを受け付けるだけですが、誰でもそれを確認できますか?
「更新」メソッドはいつ呼びますか? – Justin
更新メソッドは、フレームごとにゲームコードによって自動的に呼び出されます。 – shmeeps