web-dev-qa-db-ja.com

Unityキャンバスのレンダリング順序を変更する方法

Unity 5.3を使用していて、それぞれが独自のキャンバスにある2つのオーバーレイされたクロスプラットフォームコントロールのレンダリング順序を変更しようとしています。

以前のバージョンでは、を使用してウィンドウに焦点を合わせることができました

GUI.FocusWindow(0);

ただし、これは新しいシステムでは機能しません。また、何もしなかったエディターウィンドウで順序を変更しようとしました。

コントロールを他の上に移動する方法を知っている人はいますか?

6
johnny 5

いくつかの調査を行った後、キャンバスのレンダリング順序を変更する適切な方法を見つけました。 Canvasには、実際にはレンダリング順序である並べ替え順序のプロパティがあります。

enter image description here

注意事項として、上に配置するコントロールは、下に配置するコントロールよりも順序を大きくする必要があることを覚えておいてください。

15
johnny 5

エディタウィンドウでの順序はここで機能するはずです。 1つのキャンバス要素内の要素の順序を変更してもよろしいですか?

Canvasゲームオブジェクトの要素の順序は、すべてがレンダリングされる順序であることに注意してください。つまり、キャンバスにある最後のものが最後に描画されるので、すべての上になります。

仕組みは次のとおりです。 editor window with canvas ordering example

これはUnity5.3.4で示されていますが、はるかに古いUnityでは異なる可能性があります(5.0または5.1 AFAIKのどこかで子を列挙する方法が変更されました)。

4