private void Awake()
    {
        _rgb            = GetComponent <Rigidbody2D>();
        _anim           = GetComponent <Animator>();
        _spriteRenderer = GetComponent <SpriteRenderer>();

        _instance = this;
    }
    private void OnGUI()
    {
        GUILayout.Label("Set Player Position", EditorStyles.boldLabel);

        toInitialPosition = EditorGUILayout.BeginToggleGroup("Reset to Initial Position the Player?", toInitialPosition);

        if (toInitialPosition)
        {
            initialized = false;
            if (!initialized)
            {
                InitializeData_InitialPosition();
                initialized = true;
            }

            optionalSettings = EditorGUILayout.Toggle("Use Transform?", optionalSettings);

            if (optionalSettings)
            {
                initialPosition_T = (Transform)EditorGUILayout.ObjectField("Initial Position", initialPosition_T, typeof(Transform), true);
            }
            else
            {
                initialPosition_V3 = EditorGUILayout.Vector2Field("Initial Position", initialPosition_V3);
            }

            player = (PlayerController2d)EditorGUILayout.ObjectField("Player", player, typeof(PlayerController2d), true);

            if (GUILayout.Button("Reset To Initial Position"))
            {
                initialPosition           = optionalSettings ? initialPosition_T.position : initialPosition_V3;
                player.transform.position = initialPosition;
            }
        }
        EditorGUILayout.EndToggleGroup();

        toCheckpointPosition = EditorGUILayout.BeginToggleGroup("Set to Checkpoint Position the Player?", toCheckpointPosition);

        if (toCheckpointPosition)
        {
            initialized = false;
            if (!initialized)
            {
                InitializeData_Checkpoint();
                initialized = true;
            }

            EditorGUILayout.LabelField("Number of Checkpoints in scene: ", checkpointsInScene.ToString());
            index = EditorGUILayout.IntField("Checkbox Index: ", index);

            if (GUILayout.Button("Set me to the Index Checkbox"))
            {
                player.transform.position = currentCheckpointPos.transform.position + Vector3.up * 0.49115f;
            }
        }
        EditorGUILayout.EndToggleGroup();
    }
    void InitializeData_InitialPosition()
    {
        toCheckpointPosition = false;
        if (player == null)
        {
            tempGameobject = GameObject.Find("Player");
            player         = tempGameobject.GetComponent <PlayerController2d>();
        }

        tempGameobject    = GameObject.Find("InitialPoint");
        initialPosition_T = tempGameobject.transform;
    }
    void InitializeData_Checkpoint()
    {
        toInitialPosition = false;
        if (player == null)
        {
            tempGameobject = GameObject.Find("Player");
            player         = tempGameobject.GetComponent <PlayerController2d>();
        }

        _checkpoints         = FindObjectsOfType <Checkpoint>();
        checkpointsInScene   = _checkpoints.Length;
        currentCheckpointPos = _checkpoints[index].transform;
    }