public void OnCellForItem(ScrollGridCell itemCell) { ModelPartInfoBean partInfo = listPartInfoData[itemCell.index]; UIItemForWarehouseList itemCpt = itemCell.GetComponent <UIItemForWarehouseList>(); itemCpt.SetData(partInfo, userModelData); }
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); } } } }
/// <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); }
public void SetData(ModelPartInfoBean modelPartInfo, UserModelDataBean userModelData) { this.modelPartInfo = modelPartInfo; this.userModelData = userModelData; SetName(modelPartInfo.name); }