【Shader Forge】接触検知
Unity のShaderGraph のチュートリアルをしました。
プログラムだとHLSLやGLSLに乗っ取って記述すると思うんですが、ノードベースだと見た目はほぼ同じなのでソフトが変わっても応用できるのが良いです。
フレネルと、オブジェクトとの接触検出を使ったシールド表現を作りました。
と思ったら、ShaderGraph ではUnityの深度計算をインスペクターからできたけど、Forge ではカメラのコンポーネントにプログラムを突っこまないと働かないらしい・・・
以下、参考にした動画と動画内で紹介していたプログラムです。
Создание эффекта энергетического щита #2 | Unity 3D
https://www.youtube.com/watch?v=hGibQpX4kYU&list=LL&index=2&t=79s
using System.Collections; using System.Collections.Generic; using UnityEngine; public class CameraDepth : MonoBehaviour { public DepthTextureMode Mode; private Camera cam; void OnEnable() { cam = GetComponent<Camera>(); cam.depthTextureMode = Mode; } }
※注 class の後ろ「CameraDepth」をファイル名と同じにする。