Unity4.6.1p4　uGUIButton の反応順番


uGUI の反応順番でボタンが重なっているときの反応順番を任意にする方法を教えてください

現在の Hierarchy は

[code]

    main
    .Oblect1
    ..Canvas
    ...RedButton
    ....RedButtonText
    ..EventSystem
    ..Camera
    .Oblect2
    ..Canvas
    ...BlueButton
    ....BlueButtonText
    ..EventSystem
    ..Camera
    
[/code]

この時に現在は赤のボタン( `Object1` )が反応します

Canvas の `Order Layer` は

[code]

    Oblect1 0
    Oblect2 1
    
[/code]

です




すみません。こちらUnity4.6.1f1の場合でした。  
Unity4.6.1p4でも検証を行ったので別回答として書きます。

uGUI のタッチ判定の優先度は Canvas 毎にわかれており、

  * カメラの `Depth` 値
  * `sortOrderPriority`（Canvas の `OrderInLayer`）の値 ※値が多きほうが優先
  * `renderOrderPriority`（Canvas 毎に変わる）の値
  * カメラからの距離

といった優先度になっています。  
カメラの `Depth` 値が同じなら `sortOrderPriority` の値で決定といった具合です。

ここで問題なのが `sortOrderPriority` の値が勝手に変わってしまう場合があるということです。

以下のように、 Canvas の `RenderMode` の設定により `sortOrderPriority` の値が変化します。

## RenderMode の設定

### RenderMode: WorldSpace

必ず `sortOrderPriority` と `renderOrderPriority` が `int.MaxValue` の値になります。

### RenderMode: ScreenSpace-Camera

`RenderCamera` が設定されている場合、 `sortOrderPriority` と `renderOrderPriority`
が`int.MaxValue` の値になります。設定されていなかった場合は `OrderInLayer` の値になります。

### RenderMode: ScreenSpace-Overlay

`SortOrder` の値になります。

以上を踏まえて、 `Object1` の Canvas の設定と `Object2` の Canves の設定を見比べてみてください。




すみません。こちらUnity4.6.1f1の場合でした。  
Unity4.6.1p4でも検証を行ったので別回答として書きます。

uGUI のタッチ判定の優先度は Canvas 毎にわかれており、

  * カメラの `Depth` 値
  * `sortOrderPriority`（Canvas の `OrderInLayer`）の値 ※値が多きほうが優先
  * `renderOrderPriority`（Canvas 毎に変わる）の値
  * カメラからの距離

といった優先度になっています。  
カメラの `Depth` 値が同じなら `sortOrderPriority` の値で決定といった具合です。

ここで問題なのが `sortOrderPriority` の値が勝手に変わってしまう場合があるということです。

以下のように、 Canvas の `RenderMode` の設定により `sortOrderPriority` の値が変化します。

## RenderMode の設定

### RenderMode: WorldSpace

必ず `sortOrderPriority` と `renderOrderPriority` が `int.MaxValue` の値になります。

### RenderMode: ScreenSpace-Camera

`RenderCamera` が設定されている場合、 `sortOrderPriority` と `renderOrderPriority`
が`int.MaxValue` の値になります。設定されていなかった場合は `OrderInLayer` の値になります。

### RenderMode: ScreenSpace-Overlay

`SortOrder` の値になります。

以上を踏まえて、 `Object1` の Canvas の設定と `Object2` の Canves の設定を見比べてみてください。

