public void CleanActiveObject(GameObject key)
        {
            if (!activeObjects.ContainsKey(key) || activeObjects[key] == null)
            {
                return;
            }
            IActive active = activeObjects[key].GetComponent <IActive>();

            active?.SetActive(false);
            activeObjects[key] = null;
        }
        public void SetActiveObject(GameObject key, GameObject newActiveObject)
        {
            if (!activeObjects.ContainsKey(key))
            {
                activeObjects.Add(key, null);
            }
            if (activeObjects[key] == newActiveObject)
            {
                return;
            }
            CleanActiveObject(key);
            activeObjects[key] = newActiveObject;
            IActive active = activeObjects[key].GetComponent <IActive>();

            DebugObject(key);
            active?.SetActive(true);
        }