前提
C#でシューティングゲーム制作しています。
配置データを管理するスクリプトで
以下のこのエラーが出てしまっています。
実現したいこと
ここに実現したいことを箇条書きで書いてください。
- ▲▲機能を動作するようにする
発生している問題・エラーメッセージ
Assets\sozai\RoomManager\SaveDataManager.cs(24,58): error CS1061: 'SaveData[]' does not contain a definition for 'Lendth' and no accessible extension method 'Lendth' accepting a first argument of type 'SaveData[]' could be found (are you missing a using directive or an assembly reference?)
該当のソースコード
C#
1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4 5public class SaveDataManager : MonoBehaviour 6{ 7 public static SaveDataList arrangeDataList; //配置データ 8 9 // Start is called before the first frame update 10 void Start() 11 { 12 //SaveDataList初期化 13 arrangeDataList = new SaveDataList(); 14 arrangeDataList.saveDatas = new SaveData[] { }; 15 //シーン名を読み込む 16 string stageName = PlayerPrefs.GetString("LastScene"); 17 //シーン名をキーにして保存データを読み込む 18 string data = PlayerPrefs.GetString(stageName); 19 if(data != "") 20 { 21 //ーーーセーブデータが存在する場合ーーー 22 //JSONからSaveDataListに変換する 23 arrangeDataList = JsonUtility.FromJson<SaveDataList>(data); 24 for(int i = 0; i < arrangeDataList.saveDatas.Lendth; i++) 25 { 26 SaveData savedata = arrangeDataList.saveDatas[i]; //配列から取り出す 27 //タグのゲームオブジェクトを探す 28 string objTag = savedata.objTag; 29 GameObject[] objects = GameObject.FindGameObjectsWithTag(objTag); 30 for (int ii = 0; ii < objects.Length; ii++) 31 { 32 GameObject obj = objects[ii]; 33 //配列からGameObjectを取り出す 34 35 if (objTag == "ItemBox") //宝箱 36 { 37 ItemBox box = obj.GetComponent<ItemBox>(); 38 if (box.arrangeId == savedata.arrangeId) 39 { 40 box.isClosed = false; //arrangeIdが同じなら開く 41 box.GetComponent<SpriteRenderer>().sprite = box.openImage; 42 } 43 } 44 else if (objTag == "Item") //アイテム 45 { 46 ItemData item = obj.GetComponent<ItemData>(); 47 if (item.arrangeId == savedata.arrangeId) 48 { 49 Destroy(obj); //arrangeIdが同じなら削除 50 } 51 } 52 else if (objTag == "Enemy") //敵 53 { 54 EnemyController enemy = obj.GetComponent<EnemyController>(); 55 if (enemy.arrangeId == savedata.arrangeId) 56 { 57 Destroy(obj); //arrangeIdが同じなら削除 58 } 59 } 60 } 61 } 62 } 63 } 64 65 // Update is called once per frame 66 void Update() 67 { 68 69 } 70 71 //配置Idのセット 72 public static void SetArrangeId(int arrangeId,string objTag) 73 { 74 if(arrangeId == 0 || objTag == "") 75 { 76 //記録しない 77 return; 78 } 79 //追加するために1つ多いSaveData配列を作る 80 SaveData[] newSavedatas = new SaveData[arrangeDataList.saveDatas.Length + 1]; 81 //データをコピーする 82 for(int i = 0; i < arrangeDataList.saveDatas.Length; i++) 83 { 84 newSavedatas[i] = arrangeDataList.saveDatas[i]; 85 } 86 //SaveData作成 87 SaveData savedata = new SaveData(); 88 savedata.arrangeId = arrangeId; //Idタグを記録 89 savedata.objTag = objTag; //タグを記録 90 //SaveData追加 91 newSavedatas[arrangeDataList.saveDatas.Length] = savedata; 92 arrangeDataList.saveDatas = newSavedatas; 93 } 94 95 //配置データの保存 96 public static void SaveArrangeData(string stageName) 97 { 98 if(arrangeDataList.saveDatas != null && stageName != "") 99 { 100 //SaveDataListをJSONデータに変換 101 string saveJson = JsonUtility.ToJson(arrangeDataList); 102 //シーン名をキーにして保存 103 PlayerPrefs.SetString(stageName, saveJson); 104 } 105 } 106}
試したこと
インターネットで検索し打ち直しなど行った
補足情報(FW/ツールのバージョンなど)
Visual Studio2019
Unity 2020.3.25f1
ご教授お願いいたします。
Lendth
Lengthの間違いでは
回答1件
あなたの回答
tips
プレビュー