public void OnEnable()
    {
        instance = this;
        //Disable all objects
        List <GameObject> rootObjects = new List <GameObject>();
        Scene             scene       = SceneManager.GetActiveScene();

        scene.GetRootGameObjects(rootObjects);
        for (int i = 0; i < rootObjects.Count; ++i)
        {
            GameObject gameObject = rootObjects[i];
            gameObject.SetActive(false);
            gameObject.hideFlags = HideFlags.HideInHierarchy;
        }
        //Generate camera
        GameObject cameraObject = new GameObject();

        cameraObject.name = "PreviewCamera";
        instantiatedObjects.Add(cameraObject);
        camera = cameraObject.AddComponent <Camera>();
        cameraObject.transform.position = new Vector3(0, 0, -8);

        //Generate preview object
        currentPreviewObject = Instantiate(Resources.Load <GameObject>("FeedbackToolResources/PreviewMesh"));
        currentPreviewObject.transform.position = Vector3.zero;

        //Generate preview panel
        GameObject previewPanel = Instantiate(Resources.Load <GameObject>("FeedbackToolResources/PreviewPanel"));

        previewPanel.transform.position = new Vector3(0, 0, 4);
        instantiatedObjects.Add(previewPanel);
    }
 public void PreviewFeedback(FeedbackData _data)
 {
     if (FeedbackPreviewer.instance == null)
     {
         FeedbackPreviewer previewWindow = ScriptableObject.CreateInstance <FeedbackPreviewer>();
         previewWindow.Show();
     }
     FeedbackPreviewer.instance.PreviewFeedback(_data);
 }
    private void OnDestroy()
    {
        foreach (GameObject obj in instantiatedObjects)
        {
            DestroyImmediate(obj);
        }
        if (currentPreviewObject)
        {
            DestroyImmediate(currentPreviewObject);
        }
        List <GameObject> rootObjects = new List <GameObject>();
        Scene             scene       = SceneManager.GetActiveScene();

        scene.GetRootGameObjects(rootObjects);
        for (int i = 0; i < rootObjects.Count; ++i)
        {
            GameObject gameObject = rootObjects[i];
            gameObject.SetActive(true);
            gameObject.hideFlags = HideFlags.None;
        }
        instance = null;
    }