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

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

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

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

Q&A

解決済

1回答

748閲覧

カウントダウンを何回も使えるようにしたい

Mamida

総合スコア17

Unity

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

0グッド

0クリップ

投稿2020/01/12 09:48

編集2020/01/18 06:44

現在制作しているゲームでカウントダウンを使用しているのですが、技を選択した後にカウントダウンが始まる様にしていて
合計四回技を選択する場面があります。
一回目は普通にカウントダウンが始まるのですが、二回目以降がカウントダウンが始まらないので複数回カウントダウンを
使えるようにしたいです。
public class CountDownScript : MonoBehaviour
{

   '[SerializeField] GameObject CountObj;'
'public Text Text;'

   'public float totalTime;'
'int seconds;'

   'public float timer = 5.0f;'
'bool enter = false;//Enterキーが押されたときのフラグ'

   '[SerializeField] GameObject Player;'
'PlayerMoob py;'

   'int count;'
'public void setCount(int a) { count = a; }'

void Start() {    'enter = false;'    'Player = GameObject.Find("Player");'    'py = Player.GetComponent<PlayerMoob>();'    'count = 1;'    'CountObj = GameObject.Find("CountObj");' } // Update is called once per frame void Update() { 'START();' 'if (enter == true)' '{    'totalTime -= Time.deltaTime;'    'seconds = (int)totalTime;'    'Text.text = seconds.ToString();'    'CountObj.SetActive(true);'    '//マイナス値にならないように'    'totalTime = Mathf.Max(totalTime, 1);'    'if (totalTime == 1)' '{    'Text.text = "GO!!";'    'py.setMoob(1);'    'Invoke("FALSE",0.7f);' }' }' 'enter = false;' } void START() { ' if (count == 0) '{   'enter = true;' }' }' void FALSE() '{   'CountObj.SetActive(false);'    'totalTime = 4;'    'START();' }'

}'

上記はカウントダウンに用いるスクリプトです。
CountObjには適用しています。
上記の変数の値は0でカウントダウンが始まり、1でカウントダウンの表示をoffにしています。
1から0に変更などはできています。

public class FlipScript : MonoBehaviour
{
'[SerializeField] GameObject Scoreboard;'
'ScoreManager smr;'

'[SerializeField] GameObject CountObj;' 'CountDownScript cds;' '[SerializeField] GameObject Flip;' '[SerializeField] GameObject FenderGulub;' '[SerializeField] GameObject KyanKyan;'

'[SerializeField] GameObject NomalStopLine;'
'FrontStopLineScript fsls;'

// Start is called before the first frame update void Start() { } // Update is called once per frame void Update() { } void FlipButton() {    'smr = Scoreboard.GetComponent<ScoreManager>();'    'smr.setWaza(2);'    'cds = CountObj.GetComponent<CountDownScript>();'    'cds.setCount(0);'    'flip();'    'Flip.SetActive(false);'    'FenderGulub.SetActive(false);'    'KyanKyan.SetActive(false);' } void flip() {    'fsls = NomalStopLine.GetComponent<FrontStopLineScript>();'    'fsls.setCom(2);' }

}

上記のスクリプトはボタンをEnterキーを押して選択する技のスクリプトです。
setCount(0)がカウントダウンに使う変数の値です。

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

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

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

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

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

sakura_hana

2020/01/14 01:41

・スクリプトは前後を「```」で挟んでください(参照→https://teratail.com/help/question-tips#questionTips3-7) ・「Debug.Log(〜);」を使って、どのメソッドが動作しているか、どの変数がどんな値を取っているか確認してください。 ・「うまいこと進まない」とはどういうことか、正確に記載してください。(エラーが発生する、エラーは無いが数値が進まない等) ・CountDownScriptはどのオブジェクトに付いていますか? もしCountObjに付いているなら、自分でアクティブをオフにしているので以後動作しません。(ちなみに正常に動作するならFlipScriptの動作に関わらず、勝手に何回もカウントダウンされるコードになっている気がします)
sakura_hana

2020/01/17 01:06

修正出来ていません。 ・スクリプトは前後を「```」で挟んでください(参照→https://teratail.com/help/question-tips#questionTips3-7) ・「Debug.Log(〜);」を使って、どのメソッドが動作しているか、どの変数がどんな値を取っているか確認してください。
MMashiro

2020/01/24 05:14

まだ回答を求めているのであれば sakura_hanaさんの補足内容を元に質問内容の修正を行ってください
guest

回答1

0

ベストアンサー

一つ一つのスクリプトにはさむのではなく、scriptの前後を挟みましょう。
言わんとしていることは分かります。
コルーチンを使用したらどうですか?

投稿2020/01/26 08:30

Ryusei.w

総合スコア43

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問