示例#1
0
    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);
            }
        }
    }
示例#2
0
 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));
     }
 }