※ 2016年の自分の記事を移転しました。
課題について
ジョーカースクリプトはマウスのみにしか対応していない?ようでした。
そのため、キーボード操作がメインのゲームにはユーザビリティ的に欠点です。
(サポート掲示板には質問は投稿されていますが、返信なし。。。)
ということなので、改修して実装してしまいましょう。
改修内容
やったことは単純で、SeneInit.csのUpdateにキーボードが押下されたか判断させただけです。
(ソースをななめ読みしたので、これが正しいのかはわかりません。間違ってたら指摘してください。)
ロジックは以下のような感じです。
- スペースキーとエンターキーで次へ進める。
- コントロールキーでスキップ開始。
- それぞれにスキップ停止処理を加える。
SeneInit.cs
void Update () {
if (Input.GetMouseButtonUp (0)) {
StartCoroutine("ClickButton");
}
// シナリオをすすめる
if (Input.GetKey(KeyCode.Space) || Input.GetKey(KeyCode.Return) || Input.GetKey(KeyCode.KeypadEnter))
{
//skip中にクリックされた場合、Skipを止める
if (StatusManager.FlagSkiiping)
{
StatusManager.FlagSkiiping = false;
}
gameManager.clickNextOrder();
}
// スキップ開始
if (Input.GetKey(KeyCode.LeftControl) || Input.GetKey(KeyCode.RightControl))
{
//skip中にクリックされた場合、Skipを止める
if (StatusManager.FlagSkiiping)
{
StatusManager.FlagSkiiping = false;
}
else
{
StartCoroutine("startSkip");
}
}
}
調査方法のメモ
- スキップがマウス操作のみということは、マウスイベントを取得している箇所を探すと見つかるのでは。
- 「GetMouseButtonUp」で探す。
- 見つかりました。