【UI】Item : 1 みたいに表示される数字のところを何かの名前に変更したい | Unity Forum | Tech Stadium Forum

【UI】Item : 1 みたいに表示...
 
通知
すべてクリア

【UI】Item : 1 みたいに表示される数字のところを何かの名前に変更したい  

  RSS

Student
(@student)
メンバー Moderator
結合: 4年前
投稿: 1351
31/08/2022 5:45 pm  

ボタンのオリジナル課題なのですが、
Item : 0 
や Item : 1 みたいに表示される数字のところを何かの名前に変更しようと思ったのですが、どこを変えていけばいいのか分からないです。

ItemListManager.csの53 ~ 60辺りを色々と変えてみたのですが変わらないです。

int型じゃなくてstring型にしてみたのですがエラー連発で進みません。
どこを変えたら数字の部分を名前に変えることができるのか教えてもらえたら嬉しいです。


引用
Teacher
(@admin)
メンバー Admin
結合: 4年前
投稿: 1318
31/08/2022 5:46 pm  

確認ですが、コンテンツのボタンとその情報を表示するテキスト、両方の内容を変えたい、ということであっていますか?

【方法1】
itemId を参照している箇所をエラーがなくなるまですべて変更する

これは修正箇所が多いのでおすすめしません。「識別ID」という意味合いから考えても、適切ではない変更のように思います。

【方法2】
ItemListManager に itemId の値によって一意に決まる「名前」を定義する定義する

方法は色々とありますが string[] List Dictionary などで練習するのが簡単だと思います。Inspector 上で定義してしまうのも良いです。

・情報表示のテキストの変更
ItemListManager.OnClickItemButton の _itemInfoText.text

・ボタンのテキストの変更
ItemContent.Start の _thisBtnTxt.text


返信引用
Student
(@student)
メンバー Moderator
結合: 4年前
投稿: 1351
31/08/2022 5:48 pm  

コンテンツのボタンとその情報を表示するテキスト、両方の内容を変えたい、ということであっていますか?

A. 一応、情報を表示するの部分だけ変えたかったです。
ボタンの変え方が分からなかったので情報だけでもと思いました。

--------------------------------------------------

・ string[] List Dictionaryとはサイトみたいなのがあるということでしょうか?

・ itemIdはItemContents.csにあるところをstringの形にして_current_ManagedIdに結びつけるということで合っていますか?


返信引用
Teacher
(@admin)
メンバー Admin
結合: 4年前
投稿: 1318
31/08/2022 5:49 pm  

返信引用
Student
(@student)
メンバー Moderator
結合: 4年前
投稿: 1351
31/08/2022 5:52 pm  

string[] List Dictionary

そうでした。申し訳ありません。

以前に一人で学習していたときはUnityのC#とは似てて少し違うようなのですが、
例えば

Dictionary<String, String> station =
new Dictionary<String, String>();
station["渋谷"] = "渋谷駅";
station["新宿"] = "新宿駅";
station["池袋"] = "池袋駅";
forech (string a in station.Keys)
{
 Console.WriteLine("{0}の駅は{1}です。" , a, station[a]) ;
}

みたいなのではダメでしょうか?すみません。以前にやったC#しか分からず、Unityで実行しようものならエラーになるのは分かっているのですがUnityに直すとしたらどうすればよろしいでしょうか。

ItemListManager.OnClickItemButton
の _itemInfoText.textの部分に
string[] List Dictionaryを使えばよろしいでしょうか?


返信引用
Teacher
(@admin)
メンバー Admin
結合: 4年前
投稿: 1318
31/08/2022 5:52 pm  
上の例ですと Dictionary のキーは string ですね。
このキーを今回の itemId に対応させて int 変更すれば、キー ( itemId ) に対応した string の値( 名前 )を取得できるのではないでしょうか。
Dictionary<int, string>
に変更後、上の例であれば、
 _itemInfoText.text = station[itemId];
このように変更すると itemId に対応した「駅の名前」が表示できますね。
 
Dictionary に存在しないキーで参照するとエラーになるので注意しましょう。
 
講義を進めながら、少しずつで良いので C# の学習も進められると、課題で挑戦したい実装を実現するために何が必要か見えてくると思います。引き続き、頑張ってください。

返信引用
共有:
タイトルとURLをコピーしました