33
15

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Riderがサポートするシェーダー周りの機能メモ

Last updated at Posted at 2020-07-11

#Riderの導入
Rider202.5958.478以降をインストールした後に、PackageManagerのJetBrains Rider Editor(2019系だとRider Editor)のパッケージを2.0.5にアップデートする。
プロジェクト内にC#スクリプトがないとシェーダーの補完とかも効かないようなのでC#スクリプトを作成しておく。
image.png
ここまでの作業で導入終了。シェーダーのサポートが効くはず。

ダメなときは、Preferences>External ToolsのRegenerate Project filesボタンを押すと良かったりするのかもしれない。New Shader Support - How To?
image.png

#機能紹介
サッと触ってみて見つけた機能を列挙。VSCodeのUnityシェーダー用のプラグインをこれまで使っていたのでそれとの比較も併せて書きます。

##入力補完
HLSLの組み込み関数もUnityの関数もユーザー定義の関数やら変数やらも全部出てきてくれます。前述のVSCodeのプラグインより網羅している感じ。ShaderLab部分の記述についてはサポートされていないみたい。(Blend構文とかPropertiesの型とか)
ShaderLab部分の補完に関してはVSCodeのプラグインの方が良い。
image.png

##Rename
Shift+F6でリネームできる。VSCodeではCtrl+Hで文字列置換でやっていたけど、Riderはちゃんと識別子に対応してリネームしてくれる。cgincファイルで定義されている関数をリネームすると関数を呼び出してるファイル側でもリネームされる。

##Find Usage
Ctrl+Alt+F7でUsageを見つけてくれてそこに飛べる。
image.png

#Go to Declaration
Ctrl+Bで宣言に飛べる。

##include周り
#include "."と入力すると候補を出してくれる。誤字しないし、フォルダを潜ってcgincを探すのも楽。
image.png

cgincの位置を変えたり、includeしてない状態で関数を呼び出そうとするとエラーで適切なインクルードを指摘してくれて、おすと#include文を自動挿入してくれる。
image.png

##キーワード
#ifdef系は対応する#endifが分かりやすく表示される。入力時に既存のキーワードが表示されるので誤字、重複が防げる。
image.png

##コード整形
Riderは通常はCtrl+Alt+Enterで自動フォーマットしてくれるみたいだけど、シェーダーで打つと改行されちゃうので、

  1. Ctrl+Aで全選択
  2. Alt+Enterでメニュー表示
  3. EnterでFormat Selection実行
    でやれば自動整形してくれる。
    image.png

ShaderLab部分も整形してくれて助かるんだけど、#pragmaとか#includeとか#始まりの行はインデントされてない状態になってしまう。設定でどうにかできそうな気もするけどCode Styleの設定にcg/HLSLがないんですよね...
image.png
VSCodeのプラグインだとここもインデントされる。けどVSCodeの方は特定の書き方するとインデントがずれるバグがあるのでどっこいどっこい。

##ShaderLab補完への対応
RiderのLive Templateなる機能を使って予めShaderLabの定型文を用意しておけばCtrl+Jで簡単に入力できる。っていうのがぱっと見つけられたShaderLab補完への対応策。
image.png
addと入力すればBlend One Oneを定型文として入力できるテンプレートを設定しておいたもの。
ただ、ShaderLab部分ではaddと入力しても自動でテンプレートが出てこないので、Ctrl+Jを押してテンプレート一覧を表示して選んだり、addと入力した後にCtrl+Jを押してテンプレート候補を表示させて選んだりする手間はある。

##備考
既存の複雑目なシェーダー(cginc)を開いてみたら、入力補完は表示されるけどシンタックスハイライトが効いてない表示になっていたけど、再度確認しようとして開いてたら直ってたから、導入前にRiderを開いてたりしてなんかおかしいときは一度RiderかUnityかを閉じたりするといいのかもしれない。

33
15
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
33
15

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?