mirror of
https://github.com/vrm-c/UniVRM.git
synced 2026-09-09 12:29:23 -05:00
Added ST_S, ST_T importer
This commit is contained in:
@@ -258,7 +258,15 @@ namespace VRM
|
||||
foreach (var y in x.MaterialValues)
|
||||
{
|
||||
// restore values
|
||||
m_materialMap[y.MaterialName].SetColor(y.ValueName, y.BaseValue);
|
||||
Material material;
|
||||
if(m_materialMap.TryGetValue(y.MaterialName, out material))
|
||||
{
|
||||
material.SetColor(y.ValueName, y.BaseValue);
|
||||
}
|
||||
else
|
||||
{
|
||||
Debug.LogWarningFormat("{0} not found", y.MaterialName);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -183,14 +183,39 @@ namespace VRM
|
||||
case 3: value.w = x.targetValue[3]; break;
|
||||
}
|
||||
}
|
||||
return new MaterialValueBinding
|
||||
|
||||
var material = context.GetMaterials().FirstOrDefault(y => y.name == x.materialName);
|
||||
var propertyName = x.propertyName;
|
||||
if (x.propertyName.EndsWith("_ST_S")
|
||||
|| x.propertyName.EndsWith("_ST_T"))
|
||||
{
|
||||
MaterialName = x.materialName,
|
||||
ValueName = x.propertyName,
|
||||
TargetValue = value,
|
||||
BaseValue = context.GetMaterials().First(y => y.name == x.materialName).GetColor(x.propertyName),
|
||||
};
|
||||
propertyName = x.propertyName.Substring(0, x.propertyName.Length - 2);
|
||||
}
|
||||
|
||||
var binding = default(MaterialValueBinding?);
|
||||
|
||||
if (material != null)
|
||||
{
|
||||
try
|
||||
{
|
||||
binding = new MaterialValueBinding
|
||||
{
|
||||
MaterialName = x.materialName,
|
||||
ValueName = x.propertyName,
|
||||
TargetValue = value,
|
||||
BaseValue = material.GetColor(propertyName),
|
||||
};
|
||||
}
|
||||
catch(Exception)
|
||||
{
|
||||
// do nothing
|
||||
}
|
||||
}
|
||||
|
||||
return binding;
|
||||
})
|
||||
.Where(x => x.HasValue)
|
||||
.Select(x => x.Value)
|
||||
.ToArray();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user