実装したいこと
画像のピンクスロットの中にしたのアイテムアイコンをドロップした際に画像右側のText(Script)の中身へMyExplanationの中身を入れたい
errorはスクリプトへ記載 画像で解決案へ対する質問
アイテムのデータ(呼び出し用の変数)
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; [CreateAssetMenu(fileName = "Items", menuName = "Items/items")] public class Item : ScriptableObject { [SerializeField] private string itemName; [SerializeField] private Sprite itemImage; [SerializeField] private Text explanation; private EditButton.Symbol EditSymbol; public string MyItemName { get => itemName;} public Sprite MyItemImage { get => itemImage;} public static Text MyExplanation { get => explanation; } ☆この部分を呼び出したい
実際にアイテムの変数を呼び出し文字変数をセットするスクリプト
using System.Collections; using System.Collections.Generic; #if UNITY_EDITOR using UnityEngine; using UnityEngine.UI; public class ExplanationTXT : MonoBehaviour { private Item item; public Item MyItem { get => item; set => item = value; } public virtual void SetExplanation(Text text) { Text ChangeTXT = MyItem.MyExplanation; } } #endif
関数を呼び出すタイミング
using
1using System.Collections.Generic; 2using UnityEngine; 3using UnityEngine.EventSystems; 4using UnityEngine.UI; 5 6public class EditSlot : Slot 7{ 8 private Edit edit; 9 private Text text; 10 public Edit MyEdit { get => edit; private set => edit = value; } 11 public Text Text { get => text; private set => text = value; } 12 13 protected override void Start() 14 { 15 base.Start();//継承元のスタート関数 16 17 MyEdit = FindObjectOfType<Edit>(); 18 19 } 20 21 public override void OnDrop(PointerEventData eventData) 22 { 23 base.OnDrop(eventData); 24 //ExplanationTXT.SetExplanation(Text); 25 edit.SetItem(MyItem); 26 edit.SetExplanation(text); 27 }
合っているかわからないものだけ見せられて何がしたいか伝わりますか?
あっているかわからないから質問しているのですが それに”スクリプトの内容””ができているかわからないという意味です
何がしたいか回答者に伝わらなければ、あっているかをこちらで判断することも、できているかを判断することも、代替案を用意することもできないのでは?
改めて文にするとやりたいことは別スクリプトで設定した任意の文字変数を
画像右の青い部分に入れたいという感じです
上のスクリプト
[SerializeField]
private string explanation;を読み取って青文字の場所に入れたいです
ここは目につきにくいので、「自分と他人は違う」ということを念頭に、知らない人に十分な状況説明ができるよう質問を書き直すのが良いのではないかと思います。
編集ボタンを押せば追記・修正できます。
下のスクリプトは自分でいろいろ調べて仮で作ったスクリプトなのですができてないっぽいので
こまってます
最初のコメントはそもそもの認識が違うようなのでそこに対して補足しました
編集でスクリプト内にある説明を改めて付け足しました。
プログラムにおいての「合っている」には何段階かあります。
1.エラーが出ず、正常な動作をする(大前提)
2.動作が重い・他プログラムに影響を与える等が無い
3.テスト・デバグや以後の編集(拡張)が容易である
teratailで見られるのは大体1です。2、3は全体のプロジェクト構成等に影響される為です。
そしてUnityの場合、「スクリプトは正しく記載されていても、正常な動作をしない(上記1すら満たさない)」場合があります。(シーン上に必要なオブジェクトが存在しない等)
https://teratail.com/help/question-tips
こちらも参考に、何が起こっているのか・どうしたいのか(何が問題なのか)を明記してください。
(「元データのテキストが表示されない(上記1を満たさない)」、「テキストは表示されるが動作が遅い(上記2を満たさない)」など)
回答3件
あなたの回答
tips
プレビュー