Mashiro Page Viewer

Sprite 配列を 1 枚ずつ Image に表示し、フェード付きでページ送りする UdonSharp コンポーネント(MashiroPageViewer)。ページ位置はローカル管理と全プレイヤー同期を切り替えられる。対象 Transform の拡大・縮小と水平化も行う。

構成

ファイル 内容
MashiroPageViewer.cs 本体スクリプト(MashiroPageViewer)
MashiroPageViewer.asset MashiroPageViewer の UdonSharp ProgramAsset
MashiroPageViewer.prefab Canvas 配下に表示 Image・Prev / Next ボタン・ページ番号用 TextMeshProUGUI・MashiroPageViewer を配置したプレハブ
MashiroImageGalleryWithUIHandle.prefab MashiroPageViewer.prefab をネストし、ルートに BoxCollider・Rigidbody・VRC_Pickup を持つプレハブ
台本Local_横.prefab 台本用のローカル閲覧構成(横)(配布対象外)
台本Local_縦.prefab 台本用のローカル閲覧構成(縦)(配布対象外)
BREAK_FAST/ サンプルページ画像 9 枚(配布対象外)

依存

仕様

ページ送り

同期

拡大・縮小

水平化

Inspector

MashiroPageViewer

フィールド 型 既定値 必須 内容
displayImage Image なし – ページを表示する Image
additionalDisplayImages Image[] 空 – 同じページを同時に表示する追加の Image
pageText TextMeshProUGUI なし – ページ番号の表示先。未設定なら表示しない
images Sprite[] 空 ○ ページ画像。1 要素以上
fadeDuration float 1 – フェードアウト・フェードインそれぞれの秒数
useGlobalSync bool false – true でページ位置を全プレイヤー同期する
reverseDirection bool false – true で OnNextButtonPressed / OnPrevButtonPressed の向きを反転する
scaleTarget Transform なし – 拡大・縮小の対象
scaleStep float 0.1 – 1 回の拡大・縮小で増減する倍率
minScaleMultiplier float 0.5 – 倍率の下限
maxScaleMultiplier float 2 – 倍率の上限
horizontalResetTarget Transform なし – 水平化の対象。未設定ならこの GameObject 自身

API リファレンス

MashiroPageViewer

UI へ手配線するもの

シグネチャ 用途 呼び出し種別
void OnNextButtonPressed() reverseDirection が false なら +1、true なら −1 ページ送る Button.OnClick から配線
void OnPrevButtonPressed() reverseDirection が false なら −1、true なら +1 ページ送る Button.OnClick から配線
void OnPageAdvanceButtonPressed() reverseDirection に関係なく +1 ページ送る Button.OnClick から配線
void OnZoomInButtonPressed() 倍率を scaleStep 上げる Button.OnClick から配線
void OnZoomOutButtonPressed() 倍率を scaleStep 下げる Button.OnClick から配線
void OnHorizontalResetButtonPressed() 対象 Transform を水平化する Button.OnClick から配線

内部連携用(配線不要)

シグネチャ 用途 呼び出し種別
override void OnDeserialization() 同期されたページ位置を反映する VRChat コールバック(内部専用)

ライセンス

MIT License(リポジトリルートの LICENSE.md)。


本ドキュメントは AI を用いて作成しています。不明点・記載の誤りなどありましたら、下記までお問い合わせください。