public NMaterial Get()
{
List<NMaterial> items;
if (_manager.blendMode == BlendMode.Normal)
{
if (_items == null)
_items = new List<NMaterial>();
items = _items;
}
else
{
if (_blendItems == null)
_blendItems = new List<NMaterial>();
items = _blendItems;
}
int cnt = items.Count;
NMaterial result = null;
for (int i = 0; i < cnt; i++)
{
NMaterial mat = items[i];
if (mat.frameId == _manager.frameId)
{
if (!_notShared && mat.clipId == _manager.clipId && mat.blendMode == _manager.blendMode)
return mat;
}
else if (result == null)
result = mat;
}
if (result != null)
{
result.frameId = _manager.frameId;
result.clipId = _manager.clipId;
result.blendMode = _manager.blendMode;
}
else
{
result = _manager.CreateMaterial();
if (_variants != null)
{
foreach (string v in _variants)
result.material.EnableKeyword(v);
}
result.frameId = _manager.frameId;
result.clipId = _manager.clipId;
result.blendMode = _manager.blendMode;
items.Add(result);
}
return result;
}