2020年2月24日月曜日

(作成アクション) ローカルストレージ操作

*追記 2020 07/17
Android の64bit用ビルドを始め、WebGLプラットフォーム以外でIL2CPPビルドをする場合
このアクション(スクリプト)はプロジェクトから外してください。
JavaScriptファイルへのファンクション呼び出しがビルド時にエラーになるようです。
(JavaScriptファイル自体は大丈夫)

----------------------------------
PlayMaker用のカスタムアクションを作ってみました。
ブラウザ上のWebGlビルドされたプレイヤーから、ブラウザのローカルストレージへ、キーと値を
書き込む等の操作をするものです。

nomegames の方に掲載の、上図のアプリ用に作成した、C#スクリプトをPMアクションにしたものです。
nomegames内記事 https://nomegames.blogspot.com/2020/02/blog-post_22.html 

通常、WebGlアプリから、ブラウザの機能にアクセスするためには、作成したJavaScriptファイル
のファンクションを、C#スクリプトから呼び出す、といった事をしなければなりません。

しかし、このパッケージをインポートすると、PlayMakerの状態遷移の中で、キー、値をGUI上で
指定した上で、1アクション(見た目上)で目的を果たすことができます。

WebGl_LocalStorage_Sousa.zip

更新履歴

2020/03/10    v1.1 表示上の修正。機能に変更なし。
2020/2          公開

-------------------- 説明 ----------------------------------------------

 パッケージをインポート、(ProjectのAssetsにドロップで可)
すると[PlayMaker Custom Actions] 内に [@sakusei] フォルダができ、以下のアクションが
追加されます。また[Plugin] フォルダ内に webgl_javascriptのファイルが置かれます。

--------------------------------------------------------------------------

アクションブラウザには、カテゴリ 「@sakusei」 が作られ、中に5つのアクションが選択可能な
状態で並んでいると思います。(カテゴリは、スクリプト内の [ActionCategory] で変更できます)  
 
それぞれ
[webgl_localstorage_write]       指定キーに値を書き込む。
[webgl_localstorage_read]       指定キーから値を読み込む。
[webgl_localstorage_sakuzyo]     指定キー自体を削除する。
[webgl_localstorage_clear]       データ全体を削除する。
[webgl_localstorage_kazusyutoku]  存在するキーの数を調べる。

--------------------------------------------------------------------------

後は、ステートの中に置いて実行するだけです。
Motokey がキー。 Motoatai が値です。変数での指定もできます。

エディタ上で実行しても、コンソールに
EntryPointNotFoundException: StorageWrite 等の注意が出るだけです。
効果は実際に、WebGlビルドをしてブラウザで確かめます。
ローカル環境ではブラウザによっても、挙動は異なるようです。

ローカルストレージの特徴である、同一ドメイン内でデータを共有できるという事を
確かめるためにも、実際にサーバにアップロードしてのテストがよいのでしょう。

0 件のコメント:

コメントを投稿