void Init()
{
// check if already initialized
if (materialInsts != null)
return;
if (spriteDefinitions == null) spriteDefinitions = new tk2dSpriteDefinition[0];
if (materials == null) materials = new Material[0];
materialInsts = new Material[materials.Length];
if (needMaterialInstance)
{
for (int i = 0; i < materials.Length; ++i)
{
materialInsts[i] = Instantiate(materials[i]) as Material;
#if UNITY_EDITOR
materialInsts[i].hideFlags = HideFlags.DontSave;
#endif
}
for (int i = 0; i < spriteDefinitions.Length; ++i)
{
tk2dSpriteDefinition def = spriteDefinitions[i];
def.materialInst = materialInsts[def.materialId];
}
}
else
{
for (int i = 0; i < spriteDefinitions.Length; ++i)
{
tk2dSpriteDefinition def = spriteDefinitions[i];
def.materialInst = def.material;
}
}
}