Player
story、サイズ、onReady や onPreloadComplete といったライフサイクルコールバック、active フラグを含む Player コンポーネントの props
Player コンポーネントはストーリーを再生するために使います。
注意:ゲームインスタンスを提供するために、
Playerコンポーネントは GameProviders コンポーネントで包む必要があります。
抽象クラスを使ってストーリーを作成している場合は、Core のドキュメントを確認してください。
例
以下は Player コンポーネントの基本的な使用例です。
"use client";
import { GameProviders, Player } from "narraleaf-react";
import { story } from "./my-story";
export default function Page() {
return (
<GameProviders>
<Player story={story} onReady={({ liveGame }) => {
liveGame.newGame();
}}
width="100vw"
height="100vh"
/>
</GameProviders>
);
}Props
story
任意
再生したいストーリーオブジェクト。
width
任意
プレイヤーの幅。
height
任意
プレイヤーの高さ。
className
任意
プレイヤーのクラス名。
onReady
任意
プレイヤーの準備ができたときに呼び出されるコールバック関数です。ScriptCtx オブジェクトを返します。
newGame() はここで呼び出すものです。これはプリロードの完了や、最初の描画が済んだことを保証するわけではありません。下記の onPreloadComplete と onFirstSceneReady を参照してください。
onPreloadComplete
任意
最初のプリロードが実際に完了したときに一度だけ呼び出されます。
0.17.0 からは、これはゲームに入る前に発火するようになりました。メニューがまだ画面に表示されていて、シーンがマウントされていない段階でも、ストーリーの読み込みが済み次第エントリーシーンのウォームアップが行われます。これを「ゲームの内容が画面に出ている」という意味で読んでいた場合は、代わりに onFirstSceneReady を使ってください。Preloading を参照してください。
{game, gameState, liveGame, storable, scene} を受け取ります。ここでの scene は、マウント済みのシーンではなくプリロード中のシーンである場合があります。ゲームのライフサイクルにつき最大 1 回呼び出されます。
<Player story={story} onPreloadComplete={() => setLoadingBarDone(true)} />onFirstSceneReady
任意
プリロードが完了し、最初のシーンがマウントされ、ブラウザがそれを描画するフレームを 1 回経たあとに呼び出されます。ゲームが視覚的にプレイヤーの目に映る状態になったことを示す、最も直接的な合図です。
onPreloadComplete と同じコンテキストオブジェクトを受け取り、ゲームのライフサイクルにつき最大 1 回呼び出されます。
<Player story={story} onFirstSceneReady={() => setLoadingOverlay(false)} />onPreloadedReady
任意、非推奨
代わりに onPreloadComplete を使ってください。
onEnd
任意
プレイヤーが終了したときに呼び出されます。
このコールバックはストーリーが終了したときに呼び出されます。
onError
任意
ゲームがエラーに遭遇したときに呼び出されます。
このコールバックはライフサイクルにつき一度しか呼び出されず、error と errorInfo の 2 つの引数を受け取ります。
children
任意
プレイヤーの子要素。
プレイヤーに子要素を渡すことができます。
例えば、PageRouter API を使って独自のクイックメニューを作ることができます。
active
任意、既定値:
true
プレイヤーを表示するかどうか。
active が false であっても、ページは描画されます。
const [active, setActive] = useState(false);
return <Player active={active}/>