私は、光の範囲にあるかどうかに応じて、 'lit'テクスチャか 'unlit'テクスチャのいずれかから適切な色を塗りつぶす単純なfrag/vertシェーダを作成しようとしています。ShaderでLightの範囲値を取得するにはどうすればよいですか?
したがって、光の距離と光の範囲を比較する必要があります。 私はあらゆる種類のものをグーグルで探そうとしていましたが、光の範囲値にアクセスする方法を見つけることができないようです。そうする方法はありますか?そうでない場合は、代わりに使用できる派生データがありますか?
更新
私が最も有望なこれまでのところ、しかし、ビットのために遊んでみた後、私はまだ私が必要なものを得るように見えることができないように思わこの方法hereを、見つけることができました。 _LightMatrix0
が入力されていないという話があります。誰でも確認できますか?
アップデート2
私はUnity Shader Variablesドキュメントで変数unity_LightAtten
を発見しました。しかし、これはVertex Litシェーディングにのみ使用されます。これは、特にコンソールのサポートの欠如を考慮すると、理想的ではありません。 この変数を前方描画にパイプする方法がありますか?
ohh、約束しています...私は刺すようにして、ここに戻ってきてくれてありがとう!しかし、私はどのように違うライトを区別するのですか? – LeftRight92
ライトには異なる名前を使用してください。その後、スクリプト内の名前でゲームオブジェクトを見つけます。 [GameObject.Find](https://docs.unity3d.com/ScriptReference/GameObject.Find.html) – zwcloud
これは私が到達した最初の解決策ですが、Shaderの現在のパスでどのライトが使用されているか? – LeftRight92