質問: この度、Unityで射的ゲームを作ることになり、ターゲットの色を現在勉強中のシェーダーを使って変更しようとしています。 ターゲット生成時にターゲットの得点を内包し、その得点でターゲットの色を変更したいのですが、シェーダーからスクリプトにアクセスして得点の情報を獲得することは可能でしょうか? もしかしたらシェーダーからアクセスするよりスクリプトで変更したほうがいいのでしょうか? ご存知の方は是非教えてください。
回答: シェーダーからスクリプトにアクセスする方法は分かりませんが、色を変更したい場合は`Material.color`で変更することができます。 これは、シェーダーの`_Color`を変更することと同じです。 また、`_Color`以外のシェーダーのプロパティーを変更したい場合は、`Material.SetColor()`や`Material.SetFloat()`などが使える(詳細はこちら)ので、これらを使ってスクリプトからシェーダーの値を変更するのが一般的だと思います。