通知
すべてクリア
15/11/2022 6:41 pm
アイテムリストについて質問です。
ボタンオブジェクトを作成する際に割り当てられたIDをスクリプト内部で参照する方法はありますでしょうか?
アイテムリスト内のアイテムの個数を管理しようとしましたが、既存のアイテムリスト内にあるボタンのIDを確認する方法が分からず、
処理の条件を分岐させることが出来ませんでした。
参照する方法としては以下のようなやり方になるのでしょうか?
_itemButton[index].id
(要素を指定した後に.〇〇でアクセスするのかなと思いましたが、独自に作成したItemContents型でのアクセス方法が分かりませんでした。)
15/11/2022 6:42 pm
どういう状況で参照したいのでしょうか?"ボタンを押したときにIDを参照する"のであれば、ItemContentsのOnClickItemButtonが実行された際に参照されています。
アイテムの個数の管理でしたら、"配列"というものを使うと便利だと思います。
配列には複数のintを記録、参照することができます。
https://qiita.com/JunShimura/items/7d8514fbe7ac798e77f0
また、ItemContentsは型の名前ではなくCs(スクリプト)としての扱いなので、スクリプトやコンポーネントを参照する方法で中身を取り出すことができます。
15/11/2022 6:43 pm
具体的な状況としては、アイテムリストが何度も更新された後、以下のように順番もバラバラになっている状況で要素の削除や追加をしたい場合を考えていました。
itemButtons[0] = ID:1 itemButtons[1] = ID:3 itemButtons[2] = ID:5 itemButtons[3] = ID:9
ゲーム起動直後は、index番号とIDが一致している状態であったのでアイテムが増えていくだけなら、アイテムリストのindex番号と対応した配列で個数を管理していました。
しかし、リストが何度も更新された後では配列内の要素のIDを取得しないと追加や削除ができないと思い、IDの参照をしたいと考えていました。以下のようにアイテムを削除した後、itemButtonsの要素をnullとすることで、アイテムリストのindex番号とIDが一致する状態を維持できるのではと思ったので、こちらを一度試してみようと思います。
しかし、リストが何度も更新された後では配列内の要素のIDを取得しないと追加や削除ができないと思い、IDの参照をしたいと考えていました。以下のようにアイテムを削除した後、itemButtonsの要素をnullとすることで、アイテムリストのindex番号とIDが一致する状態を維持できるのではと思ったので、こちらを一度試してみようと思います。
itemButtons[0] = ID:0 itemButtons[1] = ID:1 itemButtons[2] = ID:2 itemButtons[3] = ID:3 ↓ ID:2を削除したい itemButtons[0] = ID:0 itemButtons[1] = ID:1 itemButtons[2] = null itemButtons[3] = ID:3
他のスクリプトの変数を参照する方法も見つけたので、こちらも実施してみようと思います。
https://futabazemi.net/unity/script_var
https://futabazemi.net/unity/script_var