質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

Q&A

1回答

1440閲覧

Unity 関数宣言が2度以降うまくいかない

rin_game

総合スコア10

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

0グッド

1クリップ

投稿2016/08/27 14:48

###前提・実現したいこと
アイテムリストをスクロールビューで二列で表現したいと考えてます。
ただ現在の実装方法だと生成されたノード1のメソッドのみしか実行できません。
そもそも基本的部分の認識が足りてない場合がございますが、その場合もご指摘いただけると助かります。
宜しくお願い致します。

###該当のソースコード

C#

1using UnityEngine; 2using System; 3using System.Collections; 4using System.Collections.Generic; 5 6public class ShopContoroller : MonoBehaviour { 7 8 Database db; 9 DataTable shopGoods; 10 ItemModel ItemModel; 11 12 void Start () { 13 GenerateShopList (); 14 } 15 16 /// <summary> 17 /// ショップで販売するリストを生成する 18 /// </summary> 19 void GenerateShopList(){ 20 db = GameObject.Find("DBController").GetComponent<Database>(); 21 22 shopGoods = db.GetGoodsList(); 23 Debug.Log (shopGoods.Rows); 24 25 26 int count = 1; 27 GameObject obj = this.gameObject; 28 GameObject ParentObj = GameObject.Find("Shop/ScrollView/Content"); 29 30 bool isSoldOut = false; 31 string TargetObject = ""; 32 string work = ""; 33 34 foreach (DataRow row in shopGoods.Rows) { 35 if (obj.name != "TopItem") { 36 obj = Instantiate ((GameObject)Resources.Load ("Prefabs/ItemNode")) as GameObject; 37 obj.name = "ItemNode" + count; 38 work = obj.name; 39 Debug.Log ("debug_work " + work); //ここでは3ループ目にItemNode2が入っている 40 obj.transform.SetParent (ParentObj.transform, false); 41 42 obj = GameObject.Find ("Shop/ScrollView/Content/ItemNode" + count + "/TopItem"); 43 isSoldOut = CheckSoldOut ((int)row["id"]); 44 ItemModel = GameObject.Find ("Shop/ScrollView/Content/ItemNode" + count + "/TopItem").GetComponent<ItemModel>(); 45 ItemModel.setInfo ((int)row ["id"],(string)row ["name"],(int)row ["price"],isSoldOut); 46 } else { 47 obj = GameObject.Find ("Shop/ScrollView/Content/ItemNode" + count + "/BottomItem"); 48 isSoldOut = CheckSoldOut ((int)row["id"]); 49 ItemModel = GameObject.Find ("Shop/ScrollView/Content/ItemNode" + count + "/BottomItem").GetComponent<ItemModel>(); 50 ItemModel.setInfo ((int)row["id"],(string)row["name"],(int)row["price"],isSoldOut); 51 52 count++; 53 } 54 55 } 56 } 57 58 bool CheckSoldOut(int id){ 59 if (SaveData.Instance.HaveItems.ContainsKey(id)) { 60 return true; 61 } else { 62 SaveData.Instance.HaveItems[id] = 1; 63 } 64 return false; 65 } 66} 67

###補足情報(言語/FW/ツール等のバージョンなど)
Unity 5.3.4f1

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sakura_hana

2016/08/29 01:37

実行したいメソッドはどれで、実行しようとしている部分はどこでしょうか?(ItemModel.setInfoでしょうか?) また、エラーログは表示されていますか?
guest

回答1

0

下記を参考にリストに表示するノードのプレハブを用意して、動的に追加していく方が簡単だと思います。
ちょうど、下記のサイトが3列での表示方法(画像、テキスト、チェックボックス)で詳しく解説されているので、とても参考になると思います

http://tsubakit1.hateblo.jp/entry/2014/12/18/040252

投稿2016/09/11 02:32

Qoo

総合スコア1249

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問