2016-07-12 6 views
0

以下の変数をマルチアレイ変数に変換するにはどうすればよいですか?私はゲームオブジェクトのマヨネーズは、数量、価格、持っているが含まれていることを望んUnityでマルチアレイを作成するには?

public GameObject Mayonnaise; 
    Text Qty; 
    Text Price; 
    Text Have; 

    public GameObject Cheese; 
    Text Qty; 
    Text Price; 
    Text Have; 

    public GameObject Flour; 
    Text Qty; 
    Text Price; 
    Text Have; 

    public GameObject Sugar; 
    Text Qty; 
    Text Price; 
    Text Have; 

;:

のコード例に

だから、それは次のようになります。[「持っている」、「数量」、「価格」]マヨネーズ

だから私と同じもので、あまりにも多くの変数名を作成する必要はありません。

Unity C#はどのようになっていますか?

私はゲームオブジェクトのマヨネーズは、数量、価格、持っているが含まれていることを望むおかげ

+0

このような 'GameObject'の配列を作ることができます。 'public GameObjec [] sampleObjets'だがあなたの質問を解決できない場合は、' Text'sのgameobjectsの配列を作成しようとする。あなたは 'Dictionary 'をチェックすることもできます。詳しい情報は:[link](http://www.dotnetperls.com/dictionary)です。 –

+0

上記のコードを例に変換できますか? –

+0

まず、私はあなたがなぜこのような構造をしたいのかを知る必要があります。たとえば、「Public GameObject Mayonnaise」や「Text Qty」、「Text Price」などを作成したのはなぜですか?クラスを作成することを検討する必要があります。例:public class Product {public Text Qty;パブリックテキスト価格;公開テキストがあります。 } 'オブジェクトを作成するよりも、例えば' public Product Mayonnaise = new Product(); Mayonnaise.Qty = //あなたのテキストコンポーネントなど[リンク](http://www.dotnetperls.com/class) –

答えて

1

ゲームオブジェクトにはゲームオブジェクトを含めることはできません。これらの変数を保持する方法を探していて、これを行うスクリプトを使用するのが適切であるようです。

だから、あなたが必要とする私と同じ1

であまりにも多くの変数名を作成する必要はありませんすべては、各食品のタイプを保持しているスクリプトです。その後、各食品タイプの配列を作成することができます。これは私にとってこの質問に聞こえるものです。うまくいけば、私はこれを正しく読んでいます。

あなたの質問に非常に近いとすれば、QtyPrice、およびHaveという変数がすべてのスクリプトに含まれていることがわかります。ここではinheritanceを使用する必要があります。

Foodクラス:

public class Food 
{ 
    protected Text Qty; 
    protected Text Price; 
    protected Text Have; 

    public void setQty(Text Qty) 
    { 
     this.Qty = Qty; 
    } 

    public void setPrice(Text Price) 
    { 
     this.Price = Price; 
    } 

    public void setHave(Text Have) 
    { 
     this.Have = Have; 
    } 

    public Text getQty() 
    { 
     return this.Qty; 
    } 

    public Text getPrice() 
    { 
     return this.Price; 
    } 

    public Text getHave() 
    { 
     return this.Have; 
    } 
} 

あなたは、あなたのMayonnaiseCheeseFlourSugarクラスを作成し、それらのすべてにFoodから継承することができます。

public class Mayonnaise : Food 
{ 

} 

public class Cheese : Food 
{ 

} 

public class Flour : Food 
{ 

} 

public class Sugar : Food 
{ 

} 

ここで、複数の配列を作成する方法について質問すると、以下のようになります。

const int Size = 4; 

Mayonnaise[] mayonnaise; 
Cheese[] cheese; 
Flour[] flour; 
Sugar[] sugar; 

void Start() 
{ 
    mayonnaise = new Mayonnaise[Size]; 
    cheese = new Cheese[Size]; 
    flour = new Flour[Size]; 
    sugar = new Sugar[Size]; 

    //Create instance of of them 
    for (int i = 0; i < Size; i++) 
    { 
     mayonnaise[i] = new Mayonnaise(); 
     cheese[i] = new Cheese(); 
     flour[i] = new Flour(); 
     sugar[i] = new Sugar(); 
    } 

    mayonnaise[0].setHave(SomeTextComponent); 
    mayonnaise[0].getHave().text = "Some Text"; 
    string text = mayonnaise[0].getHave().text; 
} 
関連する問題