Unityを使った3Dゲームの作り方(かめくめ)ゲーム開発エンジンUnityを使った3Dゲームの制作に参考になる情報を公開しています。コピー2022.03.17今回はUnityのC#スクリプトからJavaScriptの関数を呼び出してみます。それが必要になるかというと、ブラウザーのJavaScriptエンジンやAPIを使って何らかの操作をしたい時があるからです。Application.persistentDataPathに保存したファイルが永続化されない場合に、JavaScriptを使ってIndexDBへの書き込み処理(非同期処理なのでいつ終わるかわからない為)をフラッシュして書き込む時等です。スポンサーリンクJavaScriptのライブラリファイルを作成するまずはJavaScriptの関数のライブラリファイルを作成します。パソコンのデスクトップ等にテキストファイルを作成し、拡張子をjslibにします。今回はTest.jslibファイルを作成し、以下のような処理を書きます。failed!');});},});MyTestFunctionという名前の関数とSyncFileという名前の関数を作成しています。MyTestFunction関数はTestという文字列をアラートで表示します。SyncFile関数はApplication.persistentDataPathに保存したファイルが永続化されない時等のファイルの読み書きをした後に呼び出して書き込み操作をフラッシュする為の処理です。この処理に関してはこの記事の最後に記載の参考サイトを参照してください。Unityのエディターに実行したいJavaScript関数を書いたライブラリファイルを置く場所を作成します。AssetsフォルダにPluginsフォルダを作成します。ここに先ほどデスクトップに作成したTest.jslibライブラリファイルをドラッグ&ドロップして置きます。Test.jslibファイルを選択し、インスペクタでWebGLにチェックが入っていることを確認します。今回の場合はWebGLから実行するプラグインなのでWebGLのみにチェックを入れます。Editorにチェックを入れてもUnityエディター上で確認出来ないので、確認する時はWebGL形式で出力し実行します。JavaScriptを呼び出すUnityのC#スクリプトを作成するJavaScriptのライブラリファイルが出来たので次はUnityのC#スクリプトからライブラリの関数を実行してみます。新しくUseJavaScriptLibスクリプトを作成しヒエラルキーのMainCamera等に取り付けます。Start(){MyTestFunction();SyncFile();}}DLLImportで内部プラグイン(__Internal)を指定します。その下に実行したいJavaScriptのライブラリの関数を指定します。後はその関数を実行したい場所で呼び出します(今回はStartメソッドで呼び出しています)。今回は引数を使っていませんが、JavaScriptの関数で引数を使っていれば引数を渡すことも出来ます。ブラウザが開くと以下のようにアラートが表示されます。F12キーを押して開発ツールを開くと、ブラウザのコンソールでFS.syncfsでエラーが発生したのを確認出来ます。pluginのチェックを確認し、Applyボタンを押した後にUnityを再起動すると実行出来る場合もあります。Unityを再起動するのは、一度スクリプトからプラグインがロードされるとアンロードされないみたいだからです。終わりにWebGL形式でPlayerPrefsでデータを保存する機能を使う時に今回の機能が使えそうです。自作のタイピングゲームのデータ保存機能作る時に使えるかな・・・・FinalTypingUnityを使って作成したローマ字入力のタイピングゲームです。コピーかめくめちゃんをフォローする7Unityを使った3Dゲームの作り方(かめくめ)Unityを使った3Dゲームの作り方(かめくめ)関連記事プログラムUnityのアクションゲームで敵が一斉に攻撃をしてこないようにするUnityのアクションゲームで敵が主人公に近づいたとき、個々のスクリプトだけで判断すると一斉に攻撃を始めてしまいます。そこで敵の管理スクリプトを作成し1体だけが攻撃を出来るようにしていきます。プログラムUnityのRPGでワールドマップから戦闘シーンへの遷移を作成するUnityのRPGゲームでワールドマップから戦闘シーンへの遷移を作成し、シーンを移動した時のデータはScriptableObjectで作成しデータを共有できるようにします。プログラムUnityでキャラクターや武器のステータスを保持する機能Unityでキャラクターそれぞれが自分のステータスを管理するようにします。敵のHPが0以下になったら倒れるようにします。プログラムUnityで移動するカーソルを止めるイベントの作成とイベント部分にカメラをフォーカスする機能Unityのアクションゲーム等で登場する移動するカーソルを止めるイベントの作成とイベント部分にカメラをフォーカスする機能を作成していきます。プログラムUnityのAnimatorのレイヤーのSyncを使ってアニメーションを全て変更するUnityのゲームでキャラクターが元気な状態なのか、疲れている状態なのかでAnimatorの切り替えをしたい事があります。そんな時はAnimatorでSyncのレイヤーを作成し、スクリプトから疲れている状態のレイヤーのウエイトを操作し、Animatorの状態と遷移はそのままにアニメーションを変更する事が出来ます。プログラムUnityでよく使う便利な標準関数について管理人のかめくめちゃんがUnityのゲームを作成する時によく使う関数を紹介しますUnityでオプション設定の切り替えボタンを作成するUnityで作ったメッセージ表示機能に選択肢機能を取り付けるホームプログラムスポンサーリンクサイト内検索が出来ますプロフィール管理人のかめくめちゃんです。(-_-)メールはこちらにお願いします(記事に関する質問は送らないでください、返信は期待しないでください(._.))。kamekumechan@gmail.comいずれはSIRENやバイオハザードみたいなアクションゲームを作りたいと思っています。ゲームシナリオが書けないので面白いゲームはなかなか作れません・・・・。(^_^;)名前の由来はカメが好きだからです。プロフィールになってないな・・・・(-.-)Unityをこれから始める人へこれからUnityを使ってみようという方はUnityを使った3Dゲームの作り方(かめくめ)の歩き方Unityを使った3Dゲームの作り方(かめくめ)で、はじめてUnityの学習をする時の当ブログの記事を読む順番を書きました。機能を積み上げていく形になるので便利かも?gametukurikata.com2019.06.21の記事に記載の順番で見て頂くとUnityの基本的な使い方がわかり、簡単なアクションゲームや、TPSゲームの作成までが出来ます。自作タイピングゲームタイピングゲームを作りました。WebGL形式なのでPCのブラウザで遊べます。以下からプレイ出来ます。FinalTypingUnityを使って作成したローマ字入力のタイピングゲームです。gametukurikata.com2022.01.02お知らせ2023/01/24個人的にUnity2022.2.3f1をインストールしました。2022/10/14UnityのIKを使って足の位置と角度を地面に合わせる機能Unityのゲームでキャラクターの両足が別の高さの地面の上にある時にそれぞれの足をそれぞれの地面につけるようにする機能を作成しますgametukurikata.com2016.04.11機能を少し修正しました。2020/09/19コメント欄は閉鎖しました。今までコメントを投稿してくださった方はありがとうございました。(^^)/2018/08/07わたくしに出来る事は既に記事にしてあるので、ブログ右上の検索窓を活用してください。(._.)またブログの最初の方の機能を積み上げていく記事に関しての疑問点は当ブログ記事のスクリプトの説明と寄せられた質問への回答Unityを使った3Dゲームの作り方(かめくめ)の機能積み上げ形式の記事のスクリプトの説明と寄せられた記事の機能についての質問への回答を掲載しています。gametukurikata.com2019.08.01Unityを使い始めたばかりの人がつまづきやすい点を解消するUnityを使い始めたばかりの人が結構な確率で陥る不具合や疑問点を解消していきます。基本的にはブログに寄せられた質問への回答という感じです。gametukurikata.com2018.12.04も参照してみてください。小・中学生によるデジタルコンテンツ開発の全国大会ですuycc.unity3d.jp2022年大会の先行エントリーが開始されているようです。当ブログはハイスピードプランです。WordPressの編集画面の動作が早くなった。当ブログはハイスピードプランです。WordPressの編集画面の動作が早くなった。記事の内容に質問がある方へUnityを使った3Dゲームの作り方(かめくめ)の歩き方UnityのJavaScriptとC#を読み替えてどちらでも対応出来るようにするホーム検索トップサイドバータイトルとURLをコピーしました。