public void SetValue(ProceduralMaterial pm) { if (pm != null) { paramList = new List <CityMaterialParam>(); var des = pm.GetProceduralPropertyDescriptions(); for (int i = 0; i < des.Length; ++i) { var param = new CityMaterialParam(); param.name = des[i].name; param.type = des[i].type.ToString(); param.value = GetValueStringByName(pm, des[i], des[i].name); //InfoTips.LogInfo(string.Format("{0} {1} {2}", param.name, param.type, param.value)); paramList.Add(param); } } }
private void SetValueByType(ProceduralMaterial pm, CityMaterialParam param) { if (param.type == "Boolean") { pm.SetProceduralBoolean(param.name, (param.value.ToLower() == "true") ? true : false); } else if (param.type == "Float") { pm.SetProceduralFloat(param.name, float.Parse(param.value)); } else if (param.type == "Vector4" || param.type == "Vector3" || param.type == "Vector2") { pm.SetProceduralVector(param.name, StringUtil.StringToVector4(param.value)); } else if (param.type == "Color4" || param.type == "Color3") { pm.SetProceduralColor(param.name, StringUtil.StringToColor4(param.value)); } }