private void OnGUI()
        {
            if (GUILayout.Button("Scan the project"))
            {
                DependencyGraphManager.ScanProject();
                DependencyGraphIOUtility.Save(DependencyGraphManager.AssetCollection.Values.ToList());
            }

            DependencyGraphAssetDrawer.DrawGraphForActiveObject();
        }
        private static void Update()
        {
            if (!DependencyGraphManager.IsDirty)
            {
                return;
            }

            AssetDatabase.SaveAssets();
            DependencyGraphManager.Update();
            DependencyGraphIOUtility.Save(DependencyGraphManager.AssetCollection.Values.ToList());
        }
        private static void PlayModeStateChangeHandler(PlayModeStateChange _playModeState)
        {
            switch (_playModeState)
            {
            case PlayModeStateChange.EnteredEditMode:
            case PlayModeStateChange.EnteredPlayMode:
                List <DependencyGraphAsset> collection = DependencyGraphIOUtility.Load();
                DependencyGraphManager.Init(collection);
                break;

            case PlayModeStateChange.ExitingEditMode:
            case PlayModeStateChange.ExitingPlayMode:
                break;

            default:
                throw new ArgumentOutOfRangeException(nameof(_playModeState), _playModeState, null);
            }
        }