//子アイコンとカーソルが合わさった時(最初)に呼び出される public void OnPointerEnter(GameObject choice_obj) { //子アイコンオブジェクト分回す for (int i = 0; i < icon_objs.Count; i++) { //子アイコンの誰なのかを検索する if (icon_objs[i] == choice_obj) { //見つかったのでその子のアイコンの画像を //現在選択中のselect_icon_displayの画像にする if (icon_display_flag == true) { //Iconと名前情報を更新する PlayerManagemaentScript.StorageNameName_and_IconInformationPlayer1(i); //選択したアイコンなどを表示するオブジェクト情報を更新する select_icon_display1.GetComponent <PlayerIconScript>().IconDataUpData(); } else { //Iconと名前情報を更新する PlayerManagemaentScript.StorageNameName_and_IconInformationPlayer2(i); //選択したアイコンなどを表示するオブジェクト情報を更新する select_icon_display2.GetComponent <PlayerIconScript>().IconDataUpData(); } } } }
// Use this for initialization void Start() { //マップのメモリをセット map = new GameObject[map_size, map_size]; //マップを初期化 for (int map_y = 0; map_y < map_size; map_y++) { for (int map_x = 0; map_x < map_size; map_x++) { //ピース(マップの1つ1つ)を作成 GameObject Piece; //マップのようになるように並べる(ローカル座標) Vector3 pos = new Vector3(map_x * GetComponent <RectTransform>().sizeDelta.x, map_y * GetComponent <RectTransform>().sizeDelta.y, 0.0f); //ピース(マップの1つ1つ)を初期化 プレハブを設定 Piece = Instantiate(block_prefab) as GameObject; //ピース(マップの1つ1つ)に親を設定する Piece.transform.SetParent(transform, false); //ピース(マップの1つ1つ)のサイズを調整する Piece.GetComponent <RectTransform>().sizeDelta = GetComponent <RectTransform>().sizeDelta; //ピース(マップの1つ1つ)の子の枠のサイズを調整する Piece.transform.GetChild(0).GetComponent <RectTransform>().sizeDelta = GetComponent <RectTransform>().sizeDelta; //ピース(マップの1つ1つ)の子の枠を非表示にする Piece.transform.GetChild(0).gameObject.SetActive(false); //ピース(マップの1つ1つ)の位置を調整する Piece.GetComponent <RectTransform>().localPosition = pos; //ピース(マップの1つ1つ)の名前を設定 Piece.name = "Block:" + map_x + map_y; //テクスチャを設定 Piece.GetComponent <Image>().sprite = normal_piece; //ピース(マップの1つ1つ)のボタンの設定をする Piece.GetComponent <Button>().onClick.AddListener(() => GetComponent <SelectSystemScript>().OnPieceClick(Piece)); //ピース(マップの1つ1つ)のEventTriggerの設定をする EventTrigger.Entry entry = new EventTrigger.Entry(); entry.eventID = EventTriggerType.PointerEnter; entry.callback.AddListener((data) => { GetComponent <SelectSystemScript>().OnPiecePointerEnter(Piece); }); Piece.GetComponent <EventTrigger>().triggers.Add(entry); //ピース(マップの1つ1つ)に親を設定したらなぜかスケール値が変わるので1に戻す Piece.transform.localScale = new Vector3(1.0f, 1.0f, 1.0f); //ピース(マップの1つ1つ)をマップに設定 map[map_x, map_y] = Piece; } } //最初のプレイヤーを配置するーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー //各プレイヤーのピースの画像データを読み込む Sprite player1_piece = PlayerManagemaentScript.GetPieceImageDataPlayer1(); Sprite player2_piece = PlayerManagemaentScript.GetPieceImageDataPlayer2(); //プレイヤー1用にテクスチャと名前を変更 ChangeObjctNameAndTexture(map[map_size - 1, 0], player1_piece, "Player1"); ChangeObjctNameAndTexture(map[0, map_size - 1], player1_piece, "Player1"); //プレイヤー2用にテクスチャと名前を変更 ChangeObjctNameAndTexture(map[0, 0], player2_piece, "Player2"); ChangeObjctNameAndTexture(map[map_size - 1, map_size - 1], player2_piece, "Player2"); //-------------------------------------------- }
//アイコン、台紙、名前データを更新する public void IconDataUpData() { if (name.StartsWith("Player1")) { icon_image.sprite = PlayerManagemaentScript.GetIconImageDataPlayer1(); mount_image.sprite = PlayerManagemaentScript.GetMountImageDataPlayer1(); name_text.text = PlayerManagemaentScript.player1_name; } if (name.StartsWith("Player2")) { icon_image.sprite = PlayerManagemaentScript.GetIconImageDataPlayer2(); mount_image.sprite = PlayerManagemaentScript.GetMountImageDataPlayer2(); name_text.text = PlayerManagemaentScript.player2_name; } }
//子アイコンがクリックされたときに呼び出される public void OnClick(GameObject choice_obj) { //左クリックの時 if (Input.GetMouseButtonUp(0)) { //決定されたので使えないようにする choice_obj.SetActive(false); //選択された子アイコンが判明したので //選択する順番を変える //最後ならシーンを切り替える if (icon_display_flag == true) { icon_display_flag = false; } else { //シーンを移動する SceneManager.LoadScene("ModeCPUScene"); //シーン移動したのでフラグをONにする scene_move_flag = true; } } //右クリックの時 if (Input.GetMouseButtonUp(1)) { //現在の画像データを取得する if (icon_display_flag == true) { //Verを更新する PlayerManagemaentScript.IconVerUpPlayer1(); //選択したアイコンなどを表示するオブジェクト情報を更新する select_icon_display1.GetComponent <PlayerIconScript>().IconDataUpData(); } else { //Verを更新する PlayerManagemaentScript.IconVerUpPlayer2(); //選択したアイコンなどを表示するオブジェクト情報を更新する select_icon_display2.GetComponent <PlayerIconScript>().IconDataUpData(); } } }
// Use this for initialization void Start() { //Iconオブジェクトリストを初期化 icon_objs = new List <GameObject>(); //Iconオブジェクト情報を取得する------- //全ての子の情報を取得 var children = icons_panel.GetComponentInChildren <Transform>(); foreach (Transform child in children) { //Iconの子(Iconは背景なのでその子を取得) icon_objs.Add(child.gameObject); } //----------------------------------------------- //プレイヤー情報を初期化する PlayerManagemaentScript.PlayerDataInitialization(); }
//子アイコンとカーソルが離れた時(最後)に呼び出される public void OnPointerExit() { //シーンを移動していないなら if (scene_move_flag == false) { //子アイコンとカーソルがあっていないときは //現在選択流のselect_icon_displayの画像を消す if (icon_display_flag == true) { //Iconと名前情報をなしにする PlayerManagemaentScript.StorageNameName_and_IconInformationPlayer1(-1); //選択したアイコンなどを表示するオブジェクト情報を更新する select_icon_display1.GetComponent <PlayerIconScript>().IconDataUpData(); } else { //Iconと名前情報をなしにする PlayerManagemaentScript.StorageNameName_and_IconInformationPlayer2(-1); //選択したアイコンなどを表示するオブジェクト情報を更新する select_icon_display2.GetComponent <PlayerIconScript>().IconDataUpData(); } } }