12
8

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 5 years have passed since last update.

GraphicSettings.TransparencySortMode.CustomAxis~Y座標が下のやつを手前に描画、上のやつを奥に描画する~

Last updated at Posted at 2017-12-18

Unityの2Dスプライトの描画順序の管理は、Unity5.6でGraphicSettings.TransparencySortMode.CustomAxisが追加されたことでさらに簡単になりました。

例えば「Y座標が下のやつを手前に描画、上のやつを奥に描画する」

sort.gif

(キャラクター画像は臼井の会 香月清人様のものです)

Unity 5.6以前は、Updateメソッド内でいちいちSpriteRenderごとにOrderInLayerを正しく設定する必要がありました。

Unity 5.6からはEdit > ProjectSettings > Graphics > Camera Settingsで

  • Transparency Sort ModeをCustomAxis
  • Transparency Sort Axisを(0.0F, 1.0F, 0.0F)

とするだけで、「Y座標が下のやつを手前に描画、上のやつを奥に描画する」を実現することができるようになりました。
わざわざコードを書く必要がなくなりました。

また、ProjectのGraphics Settingをいじるのが嫌な人は、次のようにCameraコンポーネントのプロパティを設定することで実現することができます。

using UnityEngine;

public class OrderedCamera : MonoBehaviour
{
    void Awake()
    {
        var camera = GetComponent<Camera>();
        camera.transparencySortMode = TransparencySortMode.CustomAxis;
        camera.transparencySortAxis = new Vector3(0.0F, 1.0F, 0.0F);
    }
}

この設定による描画順序の制御は、OrderInLayerよりも優先順位が低いのでその点だけ注意が必要です。

参考関連

12
8
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
12
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?