【Unity】オブジェクトの崩れない半透明(透明)のやり方

unity
スポンサーリンク
ラグ対策インターネット回線

動的な半透明については前にも書いたのですが、描画が壊れる、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ライフを~あでゅ~。

PR
スポンサーリンク
安くて高性能おすすめゲーミングモニター
unity
ぽんたをフォローする
HB

コメント

タイトルとURLをコピーしました