コード例 #1
0
    private int itemId = -1; //上一次图纸的ID

    /// <summary>
    /// 显示制作所需材料
    /// </summary>
    /// <param name="drawing"></param>
    public void DisplayMaterial(Model_Item item, int Multiple = 1)
    {
        //如果要制作的图纸跟上次制作的图纸不一样,清空制作列表
        if (itemId != item.id)
        {
            ClearmakeItem();
            itemId = item.id; //将现在的图纸ID赋值
            //循环遍历所有的所需物品
            foreach (Model_Item.Drawing draw in item.drawing)
            {
                //初始化
                GameObject demandItem = Resources.Load <GameObject>("prefabs/UI/Make/DemandItem");
                demandItem = Instantiate(demandItem);
                demandItem.GetComponent <RectTransform>().localScale = Vector3.one;
                demandItem.transform.parent = this.transform;
                //将所需物品的ID和数量赋值到一个新的类中 防止地址引用错误
                Model_Item.Drawing newDraw = new Model_Item.Drawing
                {
                    itemId    = draw.itemId,   //当前需求物品的ID
                    itemCount = draw.itemCount //当前需求物品的个数
                };
                //赋值后更新UI显示
                demandItem.GetComponent <Ctrl_DemandItem>().Drawing = newDraw;
            }
        }
        //如果这次要制作的物品和上次是一样的,就直接使用上次的数据,但是要注意一点,因这次二次使用,当个数累加时,应乘以当前物品
        //需求的原始值
        else
        {
            foreach (Ctrl_DemandItem demandItem in DemandItems)
            {
                //取得当前需求物品的ID,以及原始需求个数乘以倍数
                Model_Item.Drawing newDraw = new Model_Item.Drawing
                {
                    itemId    = demandItem.Drawing.itemId,
                    itemCount = demandItem.OriginalQuantity * Multiple
                };
                //更新UI
                demandItem.Drawing = newDraw;
            }
        }
    }
コード例 #2
0
ファイル: View_DemandItem.cs プロジェクト: zh5243a/xxslitDemo
 /// <summary>
 /// 初始化UI
 /// </summary>
 /// <param name="drawing"></param>
 public void InitView(Model_Item.Drawing drawing)
 {
     itemName.text     = Ctrl_InventoryManager.Instance.GetItemById(drawing.itemId).itemName;
     demandCount.text  = drawing.itemCount.ToString();
     currentCount.text = Ctrl_BlacksmithStation.Instance.GetItemCountById(drawing.itemId).ToString();
 }