質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.61%

  • Unity

    3803questions

    Unityは、ユニティテクノロジーが開発したゲームエンジンです。 主にモバイルやブラウザ向けのゲーム製作に利用されていましたが、3Dの重力付きゲームが簡単に作成できることから需要が増え、現在はマルチプラットフォームに対応しています。 言語はC言語/C++で書かれていますが、C#、JavaScript、Booで書かれたコードにも対応しています。

  • Unity3D

    1244questions

    Unity3Dは、ゲームや対話式の3Dアプリケーション、トレーニングシュミレーション、そして医学的・建築学的な技術を可視化する、商業用の開発プラットフォームです。

Unity ボタンの一時無効化

解決済

回答 2

投稿

  • 評価
  • クリップ 0
  • VIEW 342

choca

score 9

 前提

現在Unityで3Dのすごろく(風)ゲームを作成しています。
キャラの移動を上下左右のボタン押下で制御しています。
1回押すとキャラが1マス分指定方向に進んで、「あと○○マス」進めるというカウントが1減ります。

 実現したいこと

移動ボタンを1回押下したら、一定時間押せないようにしたいです。
(ボタンの一時的無効化)

 発生している問題

現状、ボタンを連打できてしまう状態です。

 補足情報(FW/ツールのバージョンなど)

【開発環境】 
Unity 2017.4.2f (3D)

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

+3

わかりやすい方法としては、「最後にボタンを押してから何秒(何フレーム)経ったか」というタイマーを用意することです。

private float lastMovingTime = 0;


のように変数を定義して、ボタン押下時に

lastMovingTime = Time.realtimeSinceStartup;


を実行し、ボタンを押した時刻を保存します。次にボタンが押された時に

if(Time.realtimeSinceStartup - lastMovingTime > 1.0f)
{
//ボタンが押された時の動作
}


のようにして、最後にボタンを押してからの時間がx秒以上なら移動処理を実行する、のようにできます。

ほかにも、Update()内でタイマー変数(float)にTime.deltaTimeを加算する方法や、Update()内でタイマー変数(int)を1加算する方法がありますが、ちょっと処理が追いにくくなります。
また、簡潔でオシャレな書き方をするならUniRxを使うのもアリです。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/06/21 20:43

    ありがとうございます。参考になります。

    キャンセル

checkベストアンサー

+1

ボタンのinteractableを変更すると押せなくできます。

    StartCoroutine("movePush");

    IEnumerator movePush()
{
    moveButton.GetComponent<Button>().interactable = false;
        yield return new WaitForSeconds(5.0f); // とりあえず5秒
        moveButton.GetComponent<Button>().interactable = true;
}

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/06/21 20:44

    ありがとうございます。
    とりあえずこの時間で制御する方法で試してみます。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.61%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

  • 解決済

    unity コンポーネントとは何か

    unity初心者です。 unityの勉強用にアセットストアの完成プロジェクトをインストール  しました。スクリプトを見てみるとscore.cs..gun.cs..と色々あるのですが

  • 解決済

    unityのGUIをスマホに対応させるには

    キーボードではOnguiを使えばいいみたいですが、スマホの場合どうすればいいのでしょうか (android) start画面("onStart")をタッチしたら次の実行につながるよ

  • 解決済

    World Spaceで扱うCanvasをカメラの視界の中央に寄せる方法。

    前提・実現したいこと 任意のサイズでWorld Spaceで扱うCanvasを、 エディタ上で、任意の位置や角度のカメラの視界の中央に寄せる方法のご教授をお願いいたします。

  • 解決済

    UnityのPlayersettingについての質問です

    Edit>Project settings>Playerでの質問 Unity初心者の者です。 非常にシンプルな問題なのかもしれませんが、1時間ほどPCとにらめっこしたものの、解

  • 解決済

    Unity5 C# PlayerPrefs.SetInt, PlayerPrefs.GetInt が...

    unity5にてキャラクター選択スクリプトを作っています。 選択画面にて任意のボタンを選択すると、プレイ画面に移行し、 該当のキャラクターがステージ上に表示される挙動を目指したいで

  • 解決済

    UIのボタンを引きのばしたら、中のテキストも引きのばされる

    お世話になります。 スマホ向けアプリを作るため、C#スクリプトで画面のサイズを取得し、そこからボタンの位置やサイズを計算し、ボタンを所定の場所に置いたのですが、ボタンのテキスト

  • 解決済

    UnityのPlayerPrefsの使い方

    UnityでのPlayerPrefsを使ってデータを保存できると思うのですが、 PlayerPrefs.SetString("name", inputFieldText);

  • 解決済

    Unityで表情とアクションを結びつけるには

     実現したいこと Unity超初心者です。拙い文章で恐縮ですが質問させていただきます。 UnityでUnityちゃんを利用し Unityちゃんの表情モーションと身体のアニメーシ

同じタグがついた質問を見る

  • Unity

    3803questions

    Unityは、ユニティテクノロジーが開発したゲームエンジンです。 主にモバイルやブラウザ向けのゲーム製作に利用されていましたが、3Dの重力付きゲームが簡単に作成できることから需要が増え、現在はマルチプラットフォームに対応しています。 言語はC言語/C++で書かれていますが、C#、JavaScript、Booで書かれたコードにも対応しています。

  • Unity3D

    1244questions

    Unity3Dは、ゲームや対話式の3Dアプリケーション、トレーニングシュミレーション、そして医学的・建築学的な技術を可視化する、商業用の開発プラットフォームです。