LoginSignup
9
9

More than 5 years have passed since last update.

[Tips]Unityで、標準スプライトマテリアルを使う際の注意点

Posted at

初投稿です、よろしくお願いいたしす。

ここでは、Unityで標準で付いているマテリアル(標準マテリアル)を適応するときに見落としがちな点を書いてみます。

よく、以下のコードを見かけるのですが、Unityエディタ上で実行すると、

        private SpriteRenderer srenderer;

        :

        srenderer.material = Resources.GetBuiltinResource<Material>("Sprites-Default.mat");

何故かマテリアルが見つからないというエラーが出ます(下図参照)
img_001_001.png

実は、Unityエディタ上と、実行環境生成後では、標準マテリアルを参照する方法が違う。そのため、実際には#ifを使ってエディタ上で実行してるかどうかで切り分ける必要があります。

hoge.cs
        private SpriteRenderer srenderer;

        :

#if UNITY_EDITOR
            srenderer.material = UnityEditor.AssetDatabase.GetBuiltinExtraResource<Material>("Sprites-Default.mat");
#else
            srenderer.material = Resources.GetBuiltinResource<Material>("Sprites-Default.mat");
#endif

これで、エディタ上でも実機でも標準マテリアルを当てはめられます(Unity5.4.0p1上のエディタで動作確認)のでご活用ください。

なお、この対処はUnityのフォーラムを参考にいいたしました。
http://forum.unity3d.com/threads/released-super-tilemap-editor.387330/page-5

9
9
0

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
9
9