public RMaterial Clone()
{
int num = 1;
for(int i=0; i<RMaterialFactory.Instance._MaterialList.Count; i++)
if (RMaterialFactory.Instance._MaterialList.ContainsKey(this.name+num))
{
num++;
}
RMaterial mat = new RMaterial();
RShader sh = new RShader();
sh.effect = shader.effect.Clone();
mat.name = this.name+num;
mat.shader = sh;
mat.ambColor = ambColor;
mat.diffColor = diffColor;
mat.ID = RMaterialFactory._instance._MaterialList.Count + 1;
mat.specColor = specColor;
mat.specPower = specPower;
RMaterialFactory._instance._MaterialList.Add(mat.name, mat);
return mat;
}