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

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

新規登録して質問してみよう
ただいま回答率
85.48%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity3D

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

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

Q&A

解決済

1回答

1927閲覧

n秒毎に処理をしたいが一度実行すると動かなくなる

_Beginner

総合スコア103

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity3D

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

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

0グッド

0クリップ

投稿2018/12/23 02:18

編集2018/12/23 02:32

c#

1GameObject Bullet, bullet; 2float count; 3 4void Update() 5{ 6 count += Time.deltaTime; 7 if (count >= 0.5f) 8 { 9 bullet = Instantiate(Bullet, this.transform.position, Quaternion.identity) as GameObject; 10 bullet.GetComponent<Rigidbody>().AddForce(this.transform.forward * 1500); 11 Destroy(bullet, 1f); 12 count = 0; 13 } 14}

このスクリプトは主人公となるプレイヤーのオブジェクトについています。

0.5秒毎に球を発射したいのですが、一度実行するとcountの数が増えなくなります。

if()内の処理は一度だけちゃんと実行されます。

何がいけないのでしょうか...?

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sakura_hana

2018/12/23 02:33

このスクリプトがオフになる(enabled=falseになる)状況は無いですか? count += Time.deltaTime;の前後に「Debug.Log(count);」と入れて進み具合の確認もしてみてください。
_Beginner

2018/12/23 03:10

Debug.Log(count); の結果は、0.5まで1フレームずつ増加しています。 0.5を超えるとコンソールには何も出なくなります。 count = 0;が呼ばれないんです。
_Beginner

2018/12/23 03:12

しかし、 count = 0; の後ろにDebug.Log(count);を書くと コンソールで0がでます。
sakura_hana

2018/12/23 03:18

0.5を超えると何も出なくなるというのがおかしいです。count += Time.deltaTime;は常時呼ばれ続けている筈なので、count = 0;に到達していないなら0.5以上の数値が表示される筈です。(というかcountがなんであれ、Debug.Logは出続けるはず) そしてcount = 0;の後ろのDebug.Logが出るということは、そこには到達しています。 他のエラーは出ていないでしょうか?
_Beginner

2018/12/23 03:20

エラーは何も出ていません。
sakura_hana

2018/12/23 03:27

「bullet = 〜」「bullet.GetComponent〜」「Destroy(bullet, 1f);」の各行をコメントアウトして(つまりcount増減だけするコードにして)Debug.Logの変化を見るとどうなりますか?
_Beginner

2018/12/23 04:07

再起動させたらうまくいきました。 理由はよくわからないですけど良かったです。 sakura_hanaさんありがとうございました。
sakura_hana

2018/12/23 04:24

了解です、解決して何よりです。解決方法を自己回答して質問のクローズお願いします。
_Beginner

2018/12/23 05:02

わかりましたmm
guest

回答1

0

自己解決

Unityの再起動でなおりました。

投稿2018/12/23 05:02

_Beginner

総合スコア103

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問