投稿者 tel | 2015年7月13日

Unity 4.6でシェーダのmulti_compileに__を使わない

Unity 4.6.6でシェーダのmulti_compileにアンダーバー2つ(__)が定義された以下のコードを書くとモバイル向けにビルドした場合、変換されたGLSLでエラーになる。

#pragma multi_compile __ FOO_ON

http://docs.unity3d.com/ja/current/Manual/SL-MultipleProgramVariants.html

NOTE: GLSL optimization failed
0:2(13): preprocessor error: Macro names containing “__” are reserved.

GLSLにコンパイルされたコードに上記のようなエラーメッセージが出ている。
おそらくGLSLの

__VERSION__

などでアンダーバー2つが使われているため__が使えない。

Unity 5だと大丈夫そうだった。(マニュアルの通り__は消える?)


コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

カテゴリー

%d人のブロガーが「いいね」をつけました。