public void OnCellForItem(ScrollGridCell itemCell)
    {
        ModelPartInfoBean      partInfo = listPartInfoData[itemCell.index];
        UIItemForWarehouseList itemCpt  = itemCell.GetComponent <UIItemForWarehouseList>();

        itemCpt.SetData(partInfo, userModelData);
    }
Esempio n. 2
0
    public void SetData(UserModelDataBean userModelData, ModelInfoBean modelInfo)
    {
        if (modelInfo == null)
        {
            return;
        }
        if (userModelData == null)
        {
            return;
        }
        dissolveAmountId = Shader.PropertyToID(m_DissolveAmount);
        mapMaterialForModel.Clear();
        Texture textureDisolveGuide = Resources.Load("Texture/noise_1") as Texture;

        if (!CheckUtil.ListIsNull(modelInfo.listPartData))
        {
            for (int i = 0; i < modelInfo.listPartData.Count; i++)
            {
                ModelPartInfoBean partInfo     = modelInfo.listPartData[i];
                Renderer          itemRenderer = CptUtil.GetCptInChildrenByName <Renderer>(gameObject, partInfo.part_name);
                //获取所有的Material
                List <Material> listMaterial = new List <Material>();
                itemRenderer.GetMaterials(listMaterial);
                //获取用户进度
                UserModelPartDataBean userModelPartData = userModelData.GetUserPartDataById(partInfo.id);
                float pro = 0;
                if (userModelPartData != null)
                {
                    pro = userModelPartData.GetProgress(partInfo.max_level);
                }
                //重新设置所有的shader
                foreach (Material itemMaterial in listMaterial)
                {
                    Texture itemTexture = itemMaterial.GetTexture("_MainTex");
                    if (itemTexture)
                    {
                        itemMaterial.shader = Shader.Find("ASESampleShaders/Community/DissolveBurnWithFire");
                        itemMaterial.SetTexture("_Albedo", itemTexture);
                        itemMaterial.SetTexture("_Normal", itemTexture);
                        itemMaterial.SetTexture("_BurnRamp", itemTexture);
                        itemMaterial.SetFloat("_MaskClipValue", 0.5f);
                    }
                    else
                    {
                        Color color = itemMaterial.GetColor("_Color");
                        itemMaterial.shader = Shader.Find("ASESampleShaders/Community/DissolveBurn_01");
                        itemMaterial.SetFloat("_Cutoff", 0.5f);
                        itemMaterial.SetColor("_MainColor", color);
                    }
                    itemMaterial.SetTexture("_DisolveGuide", textureDisolveGuide);
                    itemMaterial.SetFloat(dissolveAmountId, 1 - pro);
                }
                if (!mapMaterialForModel.ContainsKey(partInfo.part_name))
                {
                    mapMaterialForModel.Add(partInfo.part_name, listMaterial);
                }
            }
        }
    }
Esempio n. 3
0
 /// <summary>
 /// 检测是否有该部件
 /// </summary>
 /// <param name="partName"></param>
 /// <returns></returns>
 public ModelPartInfoBean CheckHasPart(string partName)
 {
     if (CheckUtil.ListIsNull(listPartData))
     {
         return(null);
     }
     for (int i = 0; i < listPartData.Count; i++)
     {
         ModelPartInfoBean itemPartInfo = listPartData[i];
         if (itemPartInfo.part_name.Equals(partName))
         {
             return(itemPartInfo);
         }
     }
     return(null);
 }
Esempio n. 4
0
 public void SetData(ModelPartInfoBean modelPartInfo, UserModelDataBean userModelData)
 {
     this.modelPartInfo = modelPartInfo;
     this.userModelData = userModelData;
     SetName(modelPartInfo.name);
 }