Unityでデータ保持用のオブジェクトに不要なSpriteRendererがアタッチされていたのでプロジェクトより選択して、コンポーネントを外そうとしたのですがデータ保持用のスクリプトPlaceData(Saipt)が依存しているため外せないと表示されました。
調べてみたのですが、UnityEngine.RequireComponentというものがあるようですがそれは初めて知ったもので、使用していません。念の為関連したスクリプトからSpriteRendererを検索し不要なコードなどを削除しましたが、やはり外すことができません。
UnityEngine.RequireComponent 以外でスクリプトが依存している場合はどのような場合があるでしょうか、ご教授お願いします。
メッセージは以下のようになります、何故か複数回表示されています。
Can't remove SpriteRenderer because PlaceData (Script), PlaceData (Script), PlaceData (Script), PlaceData (Script), PlaceData (Script) depends on it
using System.Collections; using System.Collections.Generic; using UnityEngine; public class PlaceData : MonoBehaviour { public string Name = "Name"; public int Durable = 1000;// 耐久値 // public int Security = 10; // ビジュアルマップ public int[] MapSizeXY = new int[] { 10, 10}; public GameObject[][] VmapCharaDate; public GameObject[][] MapFloorDate; public GameObject VmapObj; public bool ShowMap = false; public int AllList_ID; public int PiaceID; public int DeepNum = 3; public int PiaceNum = 5; public int SetNeedDeep = 1; public bool Master = false; public bool Building = false; public bool BuildingNeed = false; public bool BuildingCant = false; public bool Artificial = false; public bool ArtificialNeed = false; public bool ArtificialCant = false; // インスタンス public PlaceData ParentPD; public GameObject[] PiaceList; public GameObject[][] PiaceMap; public GameObject placeSelectButton; public int MaxStayChara = 5; public GameObject[] StayCharaList; // 落ちているアイテム public GameObject[] ItemList; // 基底から移植 VisualMapDirector VMD; public void GetVisualMapDiretor() { GameObject go = GameObject.Find("Director"); VMD = go.GetComponent<VisualMapDirector>(); } public static GameObject[][] Return_Jagge_GameObj(int[] Size) { GameObject[][] Array = new GameObject[Size[0]][]; for (int i = 0; i < Array.Length; i++) { Array[i] = new GameObject[Size[1]]; } return Array; } // スタート********************************************************************** void Start() { // ビジュアルマップ データ GetVisualMapDiretor(); VmapCharaDate = Return_Jagge_GameObj(MapSizeXY); MapFloorDate = Return_Jagge_GameObj(MapSizeXY); // キャラリストの準備 StayCharaList = new GameObject[D.AllMapCharaList.Length]; } // クラス関数********************************************************************** public int CountStayChara()// マップのキャラクターの数を返す。 { int Count = 0; for (int i = 0; i < StayCharaList.Length; i++) { if (StayCharaList[i] != null) { Count++; } } Debug.Log("マップに滞在中のキャラクター数_" + Count); return Count; } public int DeepOfMax(GameObject[] List) { int Deep = 0; for (; Deep < List.Length; Deep++) { if (List[Deep] == null) { break; } } return Deep; } public int DeepOfMax() { int Deep = 0; for (; Deep < PiaceList.Length; Deep++) { if (PiaceList[Deep] == null) { break; } } Deep--; Debug.Log(Name + "DeepOfMax_ReTurn" + Deep); return Deep; } public bool CharaListSerch() { for (int i = 0; i < StayCharaList.Length; i++) { if (StayCharaList[i] != null) { if (!StayCharaList[i].GetComponent<ADVCharaState>().Hiden) { return true; } } } return false; } public bool PlaceExistenceCheck() { for (int i = 0; i < PiaceList.Length; i++) { if (PiaceList[i] != null) { return true; } } return false; } }
回答1件
あなたの回答
tips
プレビュー