実現したいこと
Item.CSのMyExplanationを読み取り、コード1のSetExplanation関数にて元データMyExplanationの内容をuiTxtの中に格納するという処理を作ったのですが、エラーはないのに処理が実行されなくて行き詰っています。
問題点
これに対していろいろと模索したところMyItemの実体が存在していないという結論にいたり、いろいろ試しているのですが”別スクリプトの変数の実体化”というものを記述する方法がわからないのでご教示いただければ嬉しいです。
(GetComponentを使えばいいのかNEWの形を使えばいいのかなど)
元データ
using System.Collections; using System.Collections.Generic; using UnityEngine; [CreateAssetMenu(fileName = "Items", menuName = "Items/items")] public class Item : ScriptableObject { [SerializeField] private string explanation; public string MyExplanation { get => explanation; } //読みとる用 }
コード1 (参考にして作った実際に機能するスクリプト)
using
1using System.Collections.Generic; 2#if UNITY_EDITOR 3using UnityEngine; 4using UnityEngine.UI; 5 6public class ExplanationTXT 7{ 8 private Item item; 9 10 public Item MyItem { get => item; private set => item = value; } 11 12 private string stringTxt; 13 14 private Text uiTxt; 15 16 public void SetExplanation(Text etext) 17 { 18 19 //new MyItem MyExplanation(); 20 stringTxt = MyItem.MyExplanation; 21 uiTxt = GameObject.Find("ChangeTXT").GetComponent<Text>(); 22 23 uiTxt.text = this.stringTxt;//ここでMyExplanationの内容を入れる 24 } 25} 26#endif 27 } 28} 29 30
追記1
SAKURAさんの回答をふまえ、エラーにならない原因は画像の内容のせいかなと思います
[CreateAssetMenu(fileName = "Items", menuName = "Items/items")]
でこのようなデータを作っておりそれぞれに「〇〇の文」というふうに内容を設定しております。
追記2
この件に関して個人的に聞いてみた方からここを見てもらった後に頂いたコメントなのですが
エラーが無いという事と、ざっとコードを見た感じから、MyItemの実体が無いというのは合ってる気がします。
teratailに貼ってあるコードが省略されてる部分があるなら、話は変わってくるかもしれませんが。
public class ExplanationTXT { private Item item; public Item MyItem { get => item; private set => item = value; } ExplanationTXT
クラスの実装を見ると MyItem プロパティは item フィールドを読み取って返します。
でも item フィールドに、中身を代入するコードが見当たらないので、MyItem プロパティには実体がない様に見えます。
なので stringTxt = MyItem.MyExplanation しても stringTxt フィールドには何も代入されていない(空文字列が代入されている?)様に思います。
という回答を頂きました。ですがここでプログラム初心者なもので太文字の部分に対する対応として実際にコードに記述するとするならばどういうモノを入力すればこの問題が解決するのかがわからなく、詰まっています。
ご教示お願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/05/20 07:18
2020/05/20 07:19
2020/05/20 07:24
2020/05/20 08:06
2020/05/20 22:35
2020/05/21 04:52
2020/05/22 09:08
2020/05/22 22:25
2020/05/22 22:28
2020/05/23 06:42