2017-12-07 16 views
0

私は非常に簡単なはずなので、私はおそらく何か非常に間違っていると思う何かをする本当の問題を抱えています! 私は、キャンバス内に座っているスペース背景画像の上にスプライトを置いて、カメラを固定して移動することができます。これがメインシーンです。Unity - スプライトをスプライトの子としてスプライトする(スプライトの上に)

私は、プレーヤーが駅に部屋を追加できるようにしたいと考えています。これは、基本的に、ステーションスプライトの上のスペースにスロットすることができる別のスプライトで構成されています。画像にスプライトを追加してスプライトビューのステーションの上に表示することはできますが、ゲームが実行されている間はゲームビューで見ることはできません。私は試してみました:

  • ゲームオブジェクトをインスタンス化してイメージを新しいルームイメージに設定することができます。
  • ベースステーションのスプライトにスプライトを追加し、それらが同じレイヤーにあることを確認してから、ソートレイヤーとレイヤーの順序を変更して、これを正しく実行したとは思いません。

ルームスプライトは駅の子供であり、ゲームで表示することはできません。誰かが私が逃したかもしれないものについての提案を提供することはできますか?

Rooms are empty but need a room sprite to be added by player

Sprite added and can be seen in game view Nothing seen during runtime

+0

ここには何も分かりません。別のスプライトの子としてスプライトを押してしまい、何も調整せずに上にレンダリングします。 「レイヤー内の順序」が同じ値(または正の無限大に向かって大きくなる)であれば、レイヤー上にレンダリングされます(異なるレイヤーの場合はレイヤーに基づいています)。それは言いました:スプライト*はキャンバス画像ではありません。*スプライトは常にスクリーンスペースとカメラ空間のキャンバスの後ろにレンダリングされます。 – Draco18s

+0

@Nick Proudあなたは本当にUIでこれを行うべきではありません。単に世界の世界でスプライトを使ってみましたか?はいの場合、なぜそれがあなたのために働かなかったのですか? – Fiffe

+0

私はカンバスのための私の部分の理解の不足かもしれません。私はキャンバスにスプライトを入れていました。カメラがその中に移動できるスペースとしてカメラ内に固定されていたからです。メインキャンバスには私のHUDも含まれています。基本的に私はカメラをステーションを見渡す特定の位置から開始する必要があります。プレイヤーは、HUD要素を所定の位置に固定したまま、カメラを世界を見渡すように動かすことができます。それでなぜキャンバスを使ったのですか?私が試してはならない代替方法はありますか? –

答えて

0

あなたはUIキャンバスにあなたの全体のゲームをレンダリングするべきではありません。彼らはUIのために設計されています。 Canvasオブジェクト内のレンダリングオーダーを管理するには、階層の順序を変更する必要があります(遅くても不要でも)。 Unity's Canvas docsから

:キャンバスで

UI要素は、それらが 階層に表示される同じ順序で描画されています。最初の子が最初に描画され、次に2番目の子が、 などと描画されます。 2つのUI要素が重複している場合は、後のUI要素が の先頭に表示されます。

他の要素の上に表示する要素を変更するには、単に 要素をドラッグして並べ替えます。 変換コンポーネント:SetAsFirstSibling,SetAsLastSiblingおよび SetSiblingIndexでこれらのメソッドを使用して、 もスクリプトから制御できます。

代わりに、私は、少なくともゲームが適切に活用する方法を理解のためのSorting Layers部分でかいま見を取る、あなたは全体のチュートリアルを通過するような気がしない場合は、Unity's Rogue-Like Tutorial介さお勧めと思いSpriteRenderer 。彼らははるかに管理しやすくなります。

関連する問題