public ResourceRequestInfo GetAllocInfo(int instID, string className)
    {
        int allocSeqID = -1;

        if (className == "GameObject")
        {
            if (!TrackedGameObjects.TryGetValue(instID, out allocSeqID))
            {
                return(null);
            }
        }
        else if (SceneGraphExtractor.MemCategories.Contains(className))
        {
            if (!TrackedMemObjects.TryGetValue(instID, out allocSeqID))
            {
                return(null);
            }
        }

        ResourceRequestInfo requestInfo = null;

        if (!TrackedAllocInfo.TryGetValue(allocSeqID, out requestInfo))
        {
            return(null);
        }

        return(requestInfo);
    }
    public void TrackObjectInstantiation(UnityEngine.Object src, UnityEngine.Object instantiated)
    {
        int allocSeqID = -1;

        if (!TrackedGameObjects.TryGetValue(src.GetInstanceID(), out allocSeqID))
        {
            return;
        }

        ExtractObjectResources(instantiated, allocSeqID);
    }
    private void ExtractObjectResources(UnityEngine.Object obj, int reqSeqID)
    {
        SceneGraphExtractor sge = new SceneGraphExtractor(obj);

        for (int i = 0; i < sge.GameObjectIDs.Count; i++)
        {
            if (!TrackedGameObjects.ContainsKey(sge.GameObjectIDs[i]))
            {
                TrackedGameObjects[sge.GameObjectIDs[i]] = reqSeqID;
            }
        }

        foreach (var p in sge.MemObjectIDs)
        {
            foreach (var item in p.Value)
            {
                if (!TrackedMemObjects.ContainsKey(item))
                {
                    TrackedMemObjects[item] = reqSeqID;
                }
            }
        }
    }
    public ResourceRequestInfo GetAllocInfo(int instID)
    {
        if (!_enableTracking)
        {
            return(null);
        }

        int allocSeqID = -1;

        if (!TrackedGameObjects.TryGetValue(instID, out allocSeqID) && !TrackedMemObjects.TryGetValue(instID, out allocSeqID))
        {
            return(null);
        }

        ResourceRequestInfo requestInfo = null;

        if (!TrackedAllocInfo.TryGetValue(allocSeqID, out requestInfo))
        {
            return(null);
        }

        return(requestInfo);
    }