Unityで2Dアクションゲームを自作し、PS4コントローラーで操作することを目的としたプログラムを作成してします。
その際にWEBGL形式でUnityRoomにアップロードし、
他者から操作感に関する意見をもらおうとテストプレイを依頼したときに下記の問題が発生しました。
・ボタンを押しっぱなしの状態になってしまい、操作ができない。
PS4用コントローラーによる操作の下記の方法で実行しています。
・Project SettingによるPS4の各ボタンへの名前の付与(Fire1,Jumpなど)
・スクリプトによるボタン入力の取得(Input.GetAxis("Vertical")、Input.GetButtonDown("Fire2") )
プログラムの基本構成としては下記のように、ボタンを押すことで入力の確認と連射防止フラグを生成し、
ボタンを押した状態から戻すことで連射防止フラグを戻します。
private float GetySpeed()のような自作の関数と、private void Update()内に記述しております。
***************************
if (Input.GetButtonDown("Death"))//ボタンを押したことの確認
{
if (!isPityun)//押しっぱなしによる暴発を防止
{
anim.Play("mariko_death");//アニメーションの再生
}
isPityun = true;//連射防止フラグ生成
}
if (Input.GetButtonUp("Death"))//ボタンを押した状態から戻したことを確認
{
isPityun = false;//連射防止フラグを戻す
}
***************************
上記のプログラムでUnity上でのデバッグ、自身でUnityRoomにアップしたものをプレイした場合は問題ありませんが、
他者が別環境でプレイした場合は押しっぱなしでアニメーションが連続して再生されるとの報告を受けました。
自身の環境では再現がされないためデバッグすらできない状態に陥っています。
上記バグの解決手段・アプローチ手段をご指導ご鞭撻いただきたいです。
回答1件
あなたの回答
tips
プレビュー