/// <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); }