uvScrollアニメーションを持っている場合のMaterial注意点。
// マップの全ての共有マテリアルの参照を取得する
if (bg_materials == null)
bg_materials = new List<Material>();
Renderer[] rens = go.GetComponentsInChildren<Renderer>();
foreach(Renderer ren in rens) {
if (ren == null
|| ren.sharedMaterial == null
|| ren.particleSystem != null) {
continue;
}
if (ren.animation != null) {
// レンダラがuvScrollアニメーションを持っている場合はMaterialが
// 複製されるので、sharedMaterialではなく、Materialを追加する
AnimationClip clip = ren.animation.clip;
if (clip != null && clip.name.Contains("uvScroll")) {
bg_materials.Add(ren.material);
}
continue;
}
if (bg_materials.Exists((Material mat)=>{ return mat == ren.sharedMaterial; }) == false)
{
bg_materials.Add(ren.sharedMaterial);
}
}