/// <summary>
 /// 軸にするダイスを中心にダイスを回転させる
 /// </summary>
 /// <param name="storage_obj">軸にするダイス</param>
 /// <param name="para">移動方向パラメータ</param>
 public void Storage_Control_Obj(GameObject storage_obj, int para)
 {
     //自分が保持しているプレイヤーのポインターを更新する
     (g_player_ver, g_player_side, g_player_high) = g_player_con_Script.Get_Player_Pointer();
     g_con_Obj       = storage_obj;
     g_dice_Script   = g_con_Obj.GetComponent <Dice_Squares>();
     g_rotate_Script = g_con_Obj.GetComponent <Dice_Rotate>();
     Move(para);
 }
    void Start()
    {
        g_game_Con_Script = GameObject.Find("Game_Controller").GetComponent <Game_Controller>();
        g_check_Script    = GameObject.Find("Dice_Controller").GetComponent <Check_Dice>();

        g_rotate_Script = GetComponent <Dice_Rotate>();
        g_work_Array    = new int[6];
        //縦横高さを決めた数へ変更する
        (g_max_Ver, g_max_Side, g_max_High) = g_game_Con_Script.Get_Array_Max();
        //スタート時にくっつくダイスを探す
        All_Check();
    }
    /// <summary>
    /// 軸にするダイスと同じ親のダイスを全て回転させる処理
    /// </summary>
    /// <param name="center_obj">回転の軸にするダイス</param>
    /// <param name="para">回転の向き</param>
    public void All_Rotation(GameObject center_obj, int para)
    {
        //配列初期化
        Reset_Objs_Array();
        //回転の軸にするオブジェクトを保持
        g_center_Dice = center_obj;
        //回転の軸になるオブジェクトと同じ子オブジェクトを取得
        Get_Children();
        //現在のパラメータ保持
        g_now_para = para;
        //現在のパラメータに応じた処理をする
        switch (para)
        {
        //縦プラス方向
        case g_ver_plus_Para:
            Plus_Ver_Rotate();
            break;

        //縦マイナス方向
        case g_ver_minus_Para:
            Minus_Ver_Rotate();
            break;

        //横プラス方向
        case g_side_plus_Para:
            Plus_Side_Rotate();
            break;

        //横マイナス方向
        case g_side_minus_Para:
            Minus_Side_Rotate();
            break;
        }
        //回転できる状態なら
        if (g_is_rotate && g_is_ground)
        {
            //移動前の状態を保持
            g_undo_Script.Keep_Info();
            //回転の軸にするダイスの回転用スクリプト取得
            g_rotate_Script = g_center_Dice.GetComponent <Dice_Rotate>();
            //ダイスを回転させる
            g_rotate_Script.This_Rotate(g_now_para);
        }
    }
    /// <summary>
    /// サイコロを回転移動させる処理
    /// </summary>
    /// <param name="para"></param>
    private void Move(int para)
    {
        //回転中の間は回転させない
        if (g_player_con_Script.Get_MoveFlag())
        {
            return;
        }
        //回転の中心にしているサイコロの親を取得
        g_con_Obj_Parent = g_con_Obj.transform.parent.gameObject;
        //親のスクリプトを取得
        g_parent_Script = g_con_Obj_Parent.GetComponent <Parent_Dice>();
        //与えられたパラメータに応じて、回転の軸にするダイスを取得
        switch (para)
        {
        //縦プラス方向
        case g_ver_plus_Para:
            g_next_con_Obj = g_parent_Script.Get_Center_Ver_Plus(g_player_ver, g_player_side, g_player_high);
            break;

        //縦マイナス方向
        case g_ver_minus_Para:
            g_next_con_Obj = g_parent_Script.Get_Center_Ver_Minus(g_player_ver, g_player_side, g_player_high);
            break;

        //横プラス方向
        case g_side_plus_Para:
            g_next_con_Obj = g_parent_Script.Get_Center_Side_Plus(g_player_ver, g_player_side, g_player_high);
            break;

        //横マイナス方向
        case g_side_minus_Para:
            g_next_con_Obj = g_parent_Script.Get_Center_Side_Minus(g_player_ver, g_player_side, g_player_high);
            break;
        }
        //回転の中心にするサイコロを変更
        g_con_Obj = g_next_con_Obj;
        //サイコロのスクリプト取得
        g_dice_Script = g_con_Obj.GetComponent <Dice_Squares>();
        //サイコロのスクリプト取得
        g_rotate_Script = g_con_Obj.GetComponent <Dice_Rotate>();
        //サイコロを親オブジェクトごと回転させる処理
        g_parent_rotate_Script.All_Rotation(g_con_Obj, para);
    }