メインコンテンツまでスキップ

<pc-screen>

<pc-screen>タグは、2Dユーザーインターフェースのルートとなるスクリーンコンポーネントを追加します。その下にある<pc-element>のエンティティはスクリーンの単位でレイアウトされ、カメラのビューの上か、シーン内のパネルとして描画されます。

属性を持たない<pc-screen>はワールド空間のスクリーンです。エンティティのローカル単位で640 × 320のパネルなので、エンティティのデフォルトのスケールでは幅が640メートルになり、その上の32 × 32の要素は32メートル四方になります。HUDやメニューには、下の例のようにscreen-spaceを設定してください。ワールド内のパネルにするには、エンティティのスケールを小さくします。サイズとスケールを参照してください。

使用法

属性​

属性タイプデフォルト説明
enabledBoolean"true"コンポーネントの有効状態
priorityNumber"0"スクリーン同士の描画順。0から127までで、優先度の高いスクリーンは低いスクリーンの上に描画され、そのエレメントが先に入力を受け取ります
reference-resolutionVector2"640 320"UIをレイアウトする基準の解像度(「幅 高さ」の値)。scale-mode="blend"では、この解像度に対するキャンバスのサイズでコンテンツがスケーリングされます
resolutionVector2"640 320"ワールド空間のスクリーンのサイズ。エンティティのローカル単位での「幅 高さ」の値です。スクリーン空間のスクリーンは解像度をキャンバスから取るため、この属性は効果がありません
scale-blendNumber"0.5"scale-mode="blend"のとき、スケールの計算でキャンバスの幅と高さをどう重み付けするか。0(幅のみ)から1(高さのみ)までで、0.5では均等に扱います。scale-modeが"none"のときは無視されます
scale-modeEnum"none"スクリーンがコンテンツをスケーリングする方法: "none" | "blend"。"none"はスケーリングせず、スクリーン空間のスクリーンでは1単位がキャンバスの描画バッファの1ピクセルになります。"blend"はreference-resolutionに対するキャンバスのサイズで、scale-blendで重み付けしてスケーリングし、ある解像度でレイアウトしたUIを別の解像度でも使えるようにします。screen-spaceが必要です
screen-spaceBoolean"false"スクリーンをカメラのビューの上に、キャンバスのサイズで描画するかどうか。そうでない場合はワールド空間のスクリーンになり、エンティティのトランスフォームでシーン内に配置され、resolutionでサイズが決まります
スケーリングはスクリーン空間のスクリーンにのみ適用されます

ワールド空間のスクリーンはスケーリングに対応しておらず、エンジンはその場合scale-modeを"none"に戻します。効果を得るには、scale-mode="blend"とあわせてscreen-spaceを設定してください。

例​

テキスト要素をホストするスクリーンスペースのスクリーンです。scale-mode="blend" により、キャンバスのリサイズに合わせてUIがスケールします — フルスクリーンボタンで確認したり、text を編集したりしてみましょう:

ライブサンプル
<pc-app>
<pc-asset src="https://developer.playcanvas.com/assets/fonts/arial.json" type="font" id="arial"></pc-asset>
<pc-scene>
<pc-entity name="camera">
<pc-camera clear-color="#1d1f2b"></pc-camera>
</pc-entity>
<pc-entity name="ui">
<!-- キャンバスに合わせてスケールする2Dスクリーン -->
<pc-screen screen-space="true" scale-mode="blend" reference-resolution="640 320"></pc-screen>
<!-- 親スクリーンにレンダリングされるテキスト -->
<pc-entity name="title">
<pc-element type="text" anchor="0.5 0.5 0.5 0.5" pivot="0.5 0.5"
font-asset="arial" font-size="48" color="#ff8a3c"
text="Hello, World!"></pc-element>
</pc-entity>
</pc-entity>
</pc-scene>
</pc-app>

JavaScriptインターフェース​

ScreenComponentElement APIを使用して、<pc-screen>要素をプログラムで作成および操作できます。

componentプロパティは、この要素が追加するエンジンのScreenComponentです。要素の準備が完了するまではnullで、属性が公開していないものはすべてここから利用できます。

関連項目​

  • <pc-element> — スクリーンがレンダリングする要素
  • <pc-layout-group> — 要素の自動配置
  • <pc-scroll-view> — スクリーン上でコンテンツをスクロールする
  • <pc-button> — インタラクティブな要素
  • スクリーン — ユーザーインターフェースのセクションにある、スクリーン空間とワールド空間、解像度とスケーリングの解説
  • ワールド空間UI — シーン内に配置するスクリーンと、そのメートル単位のサイズの決め方

サンプル: 2D Screen、UI Layout、Scroll View