【发布时间】:2022-11-09 21:13:43
【问题描述】:
尝试编写此脚本以在我的游戏中保存和加载时出现这些错误。
Assets\Scripts\Save System\SaveData.cs(62,40):错误 CS0246:类型 或命名空间名称 'StreamingContext' 找不到(你是 缺少 using 指令或程序集引用?)
Assets\Scripts\Save System\SaveData.cs(13,31):错误 CS0246:类型 或命名空间名称“PlaceableObjectData”找不到(你是 缺少 using 指令或程序集引用?)
Assets\Scripts\Save System\SaveData.cs(61,6):错误 CS0246:类型 或命名空间名称“OnDeserializedAttribute”找不到(是 您缺少 using 指令或程序集引用?)
Assets\Scripts\Save System\SaveData.cs(61,6):错误 CS0246:类型 或找不到名称空间名称“OnDeserialized”(您是否缺少 using 指令或程序集引用?)
那是我正在处理的脚本:
using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using System.Runtime.Serialization; [Serializable] public class SaveData { public static int IdCount; public Dictionary<string, PlaceableObjectsData> placeableObjectDatas = new Dictionary<string, PlaceableObjectsData>(); public static string GenerateId() { IdCount++; return IdCount.ToString(); } public void AddData(Data data) { if (data is placeableObjectDatas plObjData) { if (placeableObjectDatas.ContainsKey(plObjData.ID)) { placeableObjectDatas[plObjData.ID] = plObjData; } else { placeableObjectDatas.Add(plObjData.ID, plObjData); } } } public void RemoveData(Data data) { if (data is placeableObjectDatas plObjData) { if (placeableObjectDatas.ContainsKey(plObjData.ID)) { placeableObjectDatas.Remove(plObjData.ID); } } } [OnDeserialized] internal void OnDeserializedMethod(StreamingContext context) { placeableObjectDatas ??= new Dictionary<string, PlaceableObjectsData>(); } }编辑:
这是 PlaceableObjectData 的脚本:
using System; using UnityEngine; public class PlaceableObjectsData : Data { public string assetName; public Vector3 position; }编辑 2
Assets\Scripts\Save System\SaveSystem.cs(17,13):错误 CS0103: 当前上下文中不存在名称“目录”
Assets\Scripts\Save System\SaveSystem.cs(20,13):错误 CS0103: 当前上下文中不存在名称“目录”
Assets\Scripts\Save System\SaveData.cs(26,21):错误 CS0246:类型 或命名空间名称“placeableObjectDatas”找不到(你是 缺少 using 指令或程序集引用?)
Assets\Scripts\Save System\SaveSystem.cs(31,28):错误 CS0246: 找不到类型或命名空间名称“JsonSerializerSettings” (您是否缺少 using 指令或程序集引用?)
Assets\Scripts\Save System\SaveSystem.cs(32,42):错误 CS0103: 当前上下文中不存在名称“ReferenceLoopHandling”
Assets\Scripts\Save System\SaveSystem.cs(34,29):错误 CS0103: 当前上下文中不存在名称“JsonConvert”
Assets\Scripts\Save System\SaveSystem.cs(36,19):错误 CS1061: 'string' 不包含 'WriteAllText' 的定义,并且没有 接受第一个参数的可访问扩展方法“WriteAllText” 可以找到“字符串”类型的(您是否缺少 using 指令或 装配参考?)
Assets\Scripts\Save System\SaveData.cs(48,21):错误 CS0246:类型 或命名空间名称“placeableObjectDatas”找不到(你是 缺少 using 指令或程序集引用?)
Assets\Scripts\Save System\SaveSystem.cs(42,22):错误 CS1061: “字符串”不包含“存在”的定义且不可访问 扩展方法“存在”接受“字符串”类型的第一个参数 可以找到(您是否缺少 using 指令或程序集 参考?)
Assets\Scripts\Save System\SaveSystem.cs(45,42):错误 CS1061: 'string' 不包含 'ReadAllText' 的定义,并且没有 接受第一个参数的可访问扩展方法“ReadAllText” 可以找到“字符串”类型的(您是否缺少 using 指令或 装配参考?)
Assets\Scripts\Save System\SaveSystem.cs(47,13):错误 CS0246: 找不到类型或命名空间名称“saveData”(您是否缺少 using 指令或程序集引用?)
Assets\Scripts\Save System\SaveSystem.cs(47,31):错误 CS0103: 当前上下文中不存在名称“JsonConvert”
Assets\Scripts\Save System\SaveSystem.cs(47,61):错误 CS0246: 找不到类型或命名空间名称“saveData”(您是否缺少 using 指令或程序集引用?)
【问题讨论】: