前提
Unityで、ScriptableObject に Prefab の Transform を保持する機能の実装中に、
SerializeField の欄に TypeMismatch と表示される不具合が発生しました。
私自身の説明につたないところもあると思いますが、アドバイス頂ければと思います。
発生している問題
該当のソースコード
c#
1using UnityEngine; 2 3[CreateAssetMenu(fileName = "Test", menuName = "Test")] 4public class Test : ScriptableObject 5{ 6 // Transform の保持元 7 [SerializeField] 8 private GameObject prefab; 9 10 [SerializeField] 11 private Transform transform; 12 13 // ゲーム開始時に呼び出される 14 public void SetTransform() { 15 // Prefab の生成 16 GameObject obj = Instantiate(prefab, new Vector3(0f, 0f, 0f), Quaternion.identity); 17 18 // obj.transform でも TypeMismatch は起こる 19 transform = obj.GetComponent<Transform>(); 20 21 // position は正確に出力される 22 Debug.Log(transform.position); 23 } 24} 25
試したこと
以下のサイトを拝見したのですが、理解できませんでした。
特定のプレハブを全てのシーンにコピーするエディタ拡張(ならびにHideFlagsの使い方)
補足情報
Unity 2021.3.0f1

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/08/26 15:03