コード例 #1
0
 /// <summary>
 /// 召唤卡牌动作
 /// (玩家ID,角色数据,战区id,格子id)
 /// </summary>
 /// <param name="player">玩家ID</param>
 /// <param name="chr">角色数据</param>
 /// <param name="warzone">战区id</param>
 /// <param name="grid">格子id</param>
 public void CallCard(int player, BattleObjData chr, int warzone, int grid)
 {
     //寻找卡牌位置
     int       search = 0;
     Transform posi;
     {
         //时机:召唤卡牌前
         timing.CallCard(player, chr, warzone, grid, 0);
         //改变游戏目标的父级
         posi = GameObject.Find("IHandCard").transform.GetComponentInChildren <Transform>();
         foreach (Transform item in posi)
         {
             if (int.Parse(item.name) == chr.ID)
             {
                 item.SetParent(GameObject.Find("IBattleField").transform);
             }
         }
         //将目标作用效果设置为不激活
         cardControlManager.Judge(false);
         //数据传输
         {
             //查找目标卡牌下标
             for (int i = 0; i < getData.matchData.player[player].card.Count; i++)
             {
                 if (getData.matchData.player[player].card[i].ID == chr.ID)
                 {
                     search = i;
                     break;
                 }
             }
             //将角色数据赋值至战场上
             getData.matchData.warZone[warzone].grid[grid].chr = getData.matchData.player[player].card[search];
             //移除手牌卡牌数据
             getData.matchData.player[player].card.RemoveAt(search);
         }
         //对象生成
         {
             //生成一个预制体
             GameObject a = Instantiate(gameChr, GameObject.Find("Panel").transform.GetChild(warzone).GetChild(grid));
             //将图片赋值到角色对象上
             a.GetComponent <Image>().sprite = chr.image;
             //将属性显示到UI上(Hp、Atk、Def、Mp)
             UIview(a, chr);
         }
         Debug.Log("1");
         //时机:召唤卡牌后
         timing.CallCard(player, chr, warzone, grid, 1);
     }
 }