拡張結果
ソースコード
作ったわけ
2DのSpriteに影を落とすShaderを書いてもUnityのインスペクターのモードをNormal
からDebug
に変更してCastShadows
を変更しないとSpriteは影を落としてくれません。
Debugモードに切り替えて…
CastShadows
を変更する。
そしてどうせNormalに戻します。
何回も設定するのめんどくさいのでSpriteRendererから設定できるようにした方が楽だと思いました。
参考
コードの8割はここにあります。
using (new EditorGUILayout.HorizontalScope())
{
EditorGUILayout.LabelField("Sprite Cast Shadow");
shadowCastingMode = (ShadowCastingMode)EditorGUILayout.EnumPopup(spriteRenderer?.shadowCastingMode);
spriteRenderer.shadowCastingMode = shadowCastingMode;
}
見た目をいい感じにするためにusing (new EditorGUILayout.HorizontalScope())
で要素を横にそろえてLabelField
で文字、EnumPopup
でEnumを作って終わりです。