Пример #1
0
    public static bool LoadDataFromFile()
    {
        if (!File.Exists(filePath))
        {
            return(false);
        }

        List <Component> components = new List <Component>();

        for (int i = 0; i < SceneManager.sceneCount; i++)
        {
            var scene = SceneManager.GetSceneAt(i);
            foreach (var rootGameObject in scene.GetRootGameObjects())
            {
                components.AddRange(rootGameObject.GetComponentsInChildren <Component>());
            }
        }

        localFileIDToInstanceID = new Dictionary <int, int>(components.Count);
        foreach (var component in components)
        {
            var id = GetID(component);
            if (id != 0)
            {
                localFileIDToInstanceID.Add(id, component.GetInstanceID());
            }
        }

        var rec = JsonUtility.FromJson <Recording>(File.ReadAllText(filePath));
        List <FrameInfo> frameRecords = new List <FrameInfo>();

        foreach (var frameData in rec.FrameInfos)
        {
            frameRecords.Add(FrameInfo.FromJson(frameData));
        }

        GameDebuggerDatabase.FrameRecords = frameRecords;
        return(true);
    }