動的な半透明については前にも書いたのですが、描画が壊れる、PCビルドしてみたら半透明にならなかった(Unityエディター上では半透明になっていた)などがあったので、同じ苦しみを味わう方が減るようにシェア。
↓下記記事で一発解決でした。ありがとう。
Unity スタンダードシェーダーで モデルを綺麗に半透明表示する
そして、スクリプトから変更するので
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Sample : MonoBehaviour
{
Renderer rend;
void Update()
{
foreach (Transform child in this.transform)
{
rend = child.GetComponent<Renderer>();
if (rend != null)
{
for (int i = 0; i < rend.materials.Length; i++)
{
Material material = rend.materials[i];
material.color = new Color(1, 1, 1, 0.5f);
}
}
}
}
}
これだけ。アセットは複数materialがアタッチされていることが多いので、全部変えれるようにしてます。もちろんchildオブジェクト部分のrenderer、materialを取得するので、階層に気を付けないといけませんが…。
アタッチしているmaterialのRendering Modeをビルド後に変更するのは難しい感じでした。(ビルド前からFadeやTransparentにしていれば簡単ですが…)
こんなんしたかったんです↓
それでは、良きUnityライフを~あでゅ~。
コメント