futuru2021/08/09 09:34 編集詳しくありがとうございます。ちゃんとレイヤー分け出来ました。 ただ今でも疑問点が1つあるのですが ※CullingMaskはCamUi2を除き表示 1. 空オブジェクト (Layer: Default) └Canvas (Layer: UI) - ├UI1 (Layer: CamUi1) ※ 表示される - └UI2 (Layer CamUi2) ※ 表示される 2. 空オブジェクト ├CanvasAndUi1 (Layer: Cam1Ui) ※ 表示される └CanvasAndUi2 (Layer: Cam2Ui) ※ 表示されない 何故かCanvasとUIを一つのオブジェクトに纏め上げた2は正しくレイヤー分けされますが 1の方はLayer: Cam2Uiを非表示にさせているのにUi2が表示されます。 また、2はLayer: UIを非表示にするとUI1,2が非表示になり Layer: Defaultを非表示にしてもUI1,2は表示され続けます。 これはつまりUIは自分と親子関係にあるCanvasのレイヤーによってUIの表示,非表示が変わるのでしょうか? 以下のように試してみましたが全て自身と親子関係かつ最も近いCanvasのGameObjectのレイヤーを元に表示/非表示が決まりました。 ※4台のカメラを設置しそれぞれCam1~4Uiの内1つだけ非表示にさせCam5Uiは全てのカメラで非表示にした。 Canvas (Layer: Cam5Ui) └CanvasAndUi (Layer: Cam1Ui, CullingMask対象: Cam1Ui) - ├Canvas (Layer: Cam2Ui) - │ ├Ui1 (Layer: Cam1Ui, CullingMask対象: Cam2Ui) - │ ├Ui2 (Layer: Cam2Ui, CullingMask対象: Cam2Ui) - │ ├Ui3 (Layer: Cam3Ui, CullingMask対象: Cam2Ui) - │ └Ui4 (Layer: Cam4Ui, CullingMask対象: Cam2Ui) - ├空Obj (Layer: Cam3Ui) - │ ├CanvasAndUi1 (Layer: Cam1Ui, CullingMask対象: Cam1Ui) - │ ├CanvasAndUi2 (Layer: Cam2Ui, CullingMask対象: Cam2Ui) - │ ├CanvasAndUi3 (Layer: Cam3Ui, CullingMask対象: Cam3Ui) - │ └CanvasAndUi4 (Layer: Cam4Ui, CullingMask対象: Cam4Ui) - └空Obj (Layer: Cam4Ui) - - ├Ui1 (Layer: Cam1Ui, CullingMask対象: Cam1Ui) - - ├Ui2 (Layer: Cam2Ui, CullingMask対象: Cam1Ui) - - ├Ui3 (Layer: Cam3Ui, CullingMask対象: Cam1Ui) - - └Ui4 (Layer: Cam4Ui, CullingMask対象: Cam1Ui)
monmoko2021/08/09 11:53質問の意味がいまいちくみ取れないのですが、CanvasをLayerで扱おうとしているということでしょうか? 3D空間上にあるHPゲージはマルチ画面ということで他のカメラからも見えてしまうということからLayerでの対応を提案しましたが、Canvasの表記は画面ごとに別々に描画すればよく、そうすれば他の画面には影響は与えないため、Layerを使う必要はないかと思うのですが。
futuru2021/08/09 03:45 編集ありがとうございます。試しに適当なUIとカメラでテストしたところ出来ました。 ですが一つ問題が... オブジェクトの親子関係を以下のようにしたいのですが... Enemy1 (Layer: Default) 空オブジェクト ├ EnemyModel (Layer: Default) 敵モデル └ EnemyNonHudHpUi (Layer: CamUi1) Enemy2 (Layer: Default) 空オブジェクト ├ EnemyModel (Layer: Default) 敵モデル └ EnemyNonHudHpUi (Layer: CamUi2) ... この形式ですとカメラのCullingMaskでレイヤー指定しても親オブジェクトのレイヤーがDefaultに統一されているのでそこで表示/非表示の判定がされてしまいます。 (上記の関係性でEnemyNonHudHpUiのレイヤーをCamUi1、カメラのCullingMaskのDefaultを非表示,CamUi1を表示にしたのですがUiは表示されませんでした。) 正しい関係としては Enemy1 (Layer: Default) 空オブジェクト └ EnemyModel (Layer: Default) 敵モデル EnemyNonHudHpUi1 (Layer: CamUi1) └ Ui (Layer: CamUi1) Enemy2 (Layer: Default) 空オブジェクト └ EnemyModel (Layer: Default) 敵モデル EnemyNonHudHpUi2 (Layer: CamUi2) └ Ui (Layer: CamUi2) ... のように共通の親を作らないように設置する必要があるのかと思いますが、この方法ですとInspectorが散らかりますし敵の頭上に配置させたい為毎回スクリプトで制御させたり...と少し面倒なやり方になってしまいます。 こちらの問題を解決する術などあれば教えて頂きたいです。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/08/09 09:34 編集
2021/08/09 11:53