

やりたいことは <https://www.sejuku.net/blog/55029> の応用のようなもので  
別スクリプトで設定したItemスクリプトのMyExplanation変数の内容をEditSlotのOnDropが実行された際にExplanationTXTのSetExplanation関数を呼び出すことで画像右の赤丸の部分にMyExplanation変数の内容を書き込むというものを実装しようとしています

エラーあり（画像）

読み込むデータ

[code]

    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 Text MyExplanation { get => explanation; }
    }
    
[/code]

呼び出すタイミングであるONDROP関数があるスクリプト

[code]

    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    using UnityEngine.EventSystems;
    using UnityEngine.UI;
    
    public class EditSlot : Slot
    {
        private Edit edit;
        private Text text;
        private ExplanationTXT explanationTXT;
        public Edit MyEdit { get => edit; private set => edit = value; }
        public Text MyText { get => text; private set => text = value; }
        public ExplanationTXT ExplanationTXT { get => explanationTXT; private set => explanationTXT = value; }
    
        protected override void Start()
        {
            base.Start();//継承元のスタート関数
    
            MyEdit = FindObjectOfType<Edit>();
            MyText = FindObjectOfType<Text>();
        }
    
        public override void OnDrop(PointerEventData eventData)
        {
            base.OnDrop(eventData);
    
            edit.SetItem(MyItem);
    
            ExplanationTXT.SetExplanation(MyText);ここで呼び出す
        }
    
    }
    
[/code]

SetExplanationの処理を書いたもの

[code]

    using System.Collections;
    using System.Collections.Generic;
    #if UNITY_EDITOR
    using UnityEngine;
    using UnityEngine.UI;
    
    public class ExplanationTXT : MonoBehaviour
    {
        private Item item;
    
        private Text ChangeTxtObj = null;
        public Item MyItem { get => item; private set => item = value; }
        public Text  MyChangeTxtObj{ get => ChangeTxtObj;private set => ChangeTxtObj = value; }
    
        public void SetExplanation(Text etext)
        {
            Text ChangeTxt = MyChangeTxtObj.GetComponent<Text>();ChangeTXTの空TEXTを呼び出す
            MyChangeTxtObj.text = MyItem.MyExplanation;呼び出したからオブジェクトに対してMyItem.MyExplanationを格納
        }
    }
    #endif
    
[/code]

[![参考画像](https://i.stack.imgur.com/KEjmG.png)](https://i.stack.imgur.com/KEjmG.png)  
しかしエラーがありますUNUTY ENGINE UIをSTRINGに暗黙的に変換できないというものです
ITEMクラスなどで作った変数はすべてTEXTで変数を立てSTRINGを使っていないはずなのにこのようなエラーが出てきます。

[![画像の説明をここに入力](https://i.stack.imgur.com/0cxWW.png)](https://i.stack.imgur.com/0cxWW.png)


CC BY-SA 4.0
2020-05-12T13:44:49.763
66545
2020-05-12T16:47:54.277
2020-05-12T16:39:14.283
3060
40113
question
c# unity3d
画像の赤い部分に対して別スクリプトで設定した変数の内容を入れたいです（エラーと実装に関しての質問）


MyItem.MyExplanation.text;  
じゃだめですか？


CC BY-SA 4.0
2020-05-12T16:47:54.277
66546
2020-05-12T16:47:54.277
40114
66545
answer