質問: ### 前提・実現したいこと Unityで、2Dゲームに使うため「中心点と半径を指定し、中心から波のように同心円状に色が広がっていく」ようなオブジェクトを作成しようとしています。 まさに以下のURLの最後の例「リングを動かす」のような感じです。 参考 ### 発生している問題・エラーメッセージ この例ではワールド座標を基準に色を指定していますが、代わりにそのオブジェクトの中心を基準として描画するにはどうすれば良いでしょうか。 あるいは、上記の処理を実現できるのでしたらシェーダー以外の方法でも構いません。
回答: ご提示のサイトの例では、中心点を`float dist = distance( fixed3(0,0,0), IN.worldPos);`という風に(0,0,0)に決め打ちしている様子ですが、この`fixed3(0,0,0)`の代わりに、シェーダーに変数を追加して座標を外部から与えられるようにし、それを使うよう置き換えれば、任意の座標を中心に同心円を描けるかと思います(すみませんが今はUnityが手元になく、動作実験はしておりません)。 シェーダーに座標を受け渡す例としては、例えばこちらのサイトの記事などはいかがでしょう。