public bool CreateWaitGoToCheckPoint(PackageWaitCheckPoint data)
    {
        mPackageWaitCheckPoint = data;
        GameObject checkPoint = AutoTileMap_Editor.Instance.CreateItem("OBJ/CheckPoint", data.X, data.Y);

        if (checkPoint == null)
        {
            return(false);
        }
        checkPoint.name = "Item_MainCharAction_WaitMoveToPos";
        var col = checkPoint.AddComponent <BoxCollider>();

        col.center    = new Vector3(0, -0.5f, 0);
        col.isTrigger = true;
        checkPoint.AddComponent <CollisionCallback>().mOnMainCharEnter = (Collider c) => {
            if (checkPoint != null)
            {
                GameObject.Destroy(checkPoint);
            }
            var action = mPackageWaitCheckPoint.Callback;
            mPackageWaitCheckPoint = null;
            action();
        };
        return(true);
    }
    public bool WaitGoToCheckPoint(ScriptGame scriptGame, int x, int y, OnMainCharWasToCheckPoint callBack)
    {
        if (IsMainChar_Wait_To_Interaction())
        {
            return(false);
        }
        var packageWaitCheckPoint = new PackageWaitCheckPoint {
            ScriptGame = scriptGame,
            X          = x,
            Y          = y,
            Callback   = callBack
        };

        return(CreateWaitGoToCheckPoint(packageWaitCheckPoint));
    }