// Start is called before the first frame update
    void Start()
    {
        var cameraObj = GameObject.Find(CAMERA_NAME);

        camTransform = cameraObj.transform;

        var scriptObject = cameraObj.AddComponent <ScriptObject>();

        scriptObject.IsCamera = true;
        scriptObject.KeyFrames.Add(KeyFrame.Empty());

        scriptObject.Origin       = cameraObj.transform.position;
        scriptObject.ZeroRotation = cameraObj.transform.eulerAngles;

        CamOrigin  = cameraObj.transform.position;
        CamZeroRot = cameraObj.transform.eulerAngles;

        gizmo.onSelectObject = trsfrm =>
        {
            activeObject = trsfrm.gameObject.GetComponent <ScriptObject>();
        };

        activeObject = scriptObject;
        scriptObjects.Add(scriptObject);
    }
    void DrawObjectList()
    {
        ImGui.SetNextWindowPos(new Vector2(10, 30), ImGuiCond.Once, new Vector2(0.0f, 0.0f));
        ImGui.SetNextWindowSize(new Vector2(150, Screen.height - 125), ImGuiCond.Once);
        ImGui.Begin("Objects", ImGuiWindowFlags.NoSavedSettings);
        {
            if (ImGui.Checkbox("Camera View", ref camView))
            {
                ToggleCameraView();
            }

            ImGui.BeginChild("ObjectList", new Vector2(0, -ImGui.GetFrameHeightWithSpacing() * 2), true);
            {
                foreach (var obj in scriptObjects)
                {
                    if (ImGui.Selectable(obj.name, activeObject == obj))
                    {
                        activeObject = obj;
                    }
                }
            }
            ImGui.EndChild();

            if (ImGui.Button("+"))
            {
                var sfd = new SelectFileDialog()
                          .SetFilter("Image file\0*.jpg;*.png\0")
                          .SetTitle("Select image")
                          .SetDefaultExt("png")
                          .Show();

                if (sfd.IsSucessful)
                {
                    var gameObJ   = new GameObject();
                    var scriptObj = gameObJ.AddComponent <ScriptObject>();
                    scriptObj.TextureName = sfd.File;

                    var newKeyframe = KeyFrame.Empty();
                    newKeyframe.Position = transform.position + transform.rotation * new Vector3(0, 0, 5);
                    newKeyframe.Rotation = transform.eulerAngles;

                    scriptObj.KeyFrames.Add(newKeyframe);
                    scriptObj.Position = newKeyframe.Position;
                    scriptObj.Rotation = newKeyframe.Rotation;

                    scriptObjects.Add(scriptObj);
                }
            }
        }
        ImGui.End();
    }