unity3d 错误CS0246:找不到型别或命名空间名称'StreamingContext'(您是否遗漏using指示词或组件指涉?)

rbl8hiat  于 2022-11-15  发布在  其他
关注(0)|答案(1)|浏览(200)

我有这些错误时,试图写这个脚本保存和加载在我的游戏。
资源\脚本\保存系统\保存数据.cs(62,40):错误CS0246:找不到型别或命名空间名称'StreamingContext'(您是否遗漏using指示词或组件指涉?)
资源\脚本\保存系统\保存数据.cs(13,31):错误CS0246:未能找到类型或命名空间名称“PlaceableObjectData”(是否缺少using指令或程序集引用?)
资源\脚本\保存系统\保存数据.cs(61,6):错误CS0246:未能找到类型或命名空间名称“OnDeserializedAttribute”(是否缺少using指令或程序集引用?)
资源\脚本\保存系统\保存数据.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

资源\脚本\保存系统\保存系统.cs(17,13):错误CS0103:当前上下文中不存在名称“Directory”
资源\脚本\保存系统\保存系统.cs(20,13):错误CS0103:当前上下文中不存在名称“Directory”
资源\脚本\保存系统\保存数据.cs(26,21):错误CS0246:未能找到类型或命名空间名称“placeableObjectDatas”(是否缺少using指令或程序集引用?)
资源\脚本\保存系统\保存系统.cs(31,28):错误CS0246:找不到类型或命名空间名称“JsonSerializerSettings”(是否缺少using指令或程序集引用?)
资源\脚本\保存系统\保存系统.cs(32,42):错误CS0103:目前内容中不存在名称'ReferenceLoopHandling'
资源\脚本\保存系统\保存系统.cs(34,29):错误CS0103:当前上下文中不存在名称“JsonConvert”
资源\脚本\保存系统\保存系统.cs(36,19):错误CS1061:'string'不包含'WriteAllText'的定义,而且找不到可接受第一个'string'型别参数的可存取扩充方法'WriteAllText'(您是否遗漏using指示词或组件指涉?)
资源\脚本\保存系统\保存数据.cs(48,21):错误CS0246:未能找到类型或命名空间名称“placeableObjectDatas”(是否缺少using指令或程序集引用?)
资源\脚本\保存系统\保存系统.cs(42,22):错误CS1061:'string'不包含'Exists'的定义,而且找不到可接受第一个'string'型别参数的可存取扩充方法'Exists'(您是否遗漏using指示词或组件指涉?)
资源\脚本\保存系统\保存系统.cs(45,42):错误CS1061:'string'不包含'ReadAllText'的定义,而且找不到可接受第一个'string'型别参数的可存取扩充方法'ReadAllText'(您是否遗漏using指示词或组件指涉?)
资源\脚本\保存系统\保存系统.cs(47,13):错误CS0246:找不到类型或命名空间名称“saveData”(是否缺少using指令或程序集引用?)
资源\脚本\保存系统\保存系统.cs(47,31):错误CS0103:当前上下文中不存在名称“JsonConvert”
资源\脚本\保存系统\保存系统.cs(47,61):错误CS0246:找不到类型或命名空间名称“saveData”(是否缺少using指令或程序集引用?)

ryevplcw

ryevplcw1#

您可以通过在文件顶部添加using System.Runtime.Serialization;来修复错误1、3和4。
但是我从来没有听说过PlaceableObjectData,它可能是您在其他名称空间中创建的自定义类吗?那么您还必须使用using关键字导入该名称空间。

相关问题