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

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

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

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

Q&A

3回答

1900閲覧

Unityでの行動分岐

T_shine

総合スコア6

Unity

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

0グッド

0クリップ

投稿2017/02/27 00:48

編集2017/02/27 02:19

###前提・実現したいこと
現在、Unityにおいて卓球ゲームを制作しています

###発生している問題・エラーメッセージ

サーブを2回ずつで交代するはずなのですが、1回ずつで行われます。
FlagManager.Instance.flags[]はフラグで点数が加算されたというフラグです。
どなたか2回ずつ行える方法を教えてください
###該当のソースコード

using UnityEngine;
using System.Collections;

public class ServeScript : MonoBehaviour {

private GameObject pinkyuObject; private pl_PinkyuScript pinkyu; public enum serveState { SERVE1, SERVE2, SERVE3, SERVE4, } public serveState s_mode; // Use this for initialization void Start () { pinkyuObject = GameObject.Find("Pinkyu"); pinkyu = pinkyuObject.GetComponent<pl_PinkyuScript>(); s_mode = serveState.SERVE1; FlagManager.Instance.flags[3] = false; } // Update is called once per frame void Update() { switch (s_mode) { case serveState.SERVE1: pinkyu.Serve(0); if (FlagManager.Instance.flags[3] == true) { s_mode = serveState.SERVE2; } break; case serveState.SERVE2: pinkyu.Serve(1); if (FlagManager.Instance.flags[3] == true) { s_mode = serveState.SERVE3; } break; case serveState.SERVE3: pinkyu.Serve(0); if (FlagManager.Instance.flags[3] == true) { s_mode = serveState.SERVE4; } break; case serveState.SERVE4: pinkyu.Serve(1); if (FlagManager.Instance.flags[3] == true) { s_mode = serveState.SERVE1; } break; } }

}

###補足情報(言語/FW/ツール等のバージョンなど)
Unity 5.5.0f3でC#

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

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

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

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

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

anatawa12

2017/02/27 00:52

ソースコードが足りません。少なくともその実行に関するクラスや関数全体を示してください
edo_m18

2017/02/27 03:41

質問自体の内容ではないのですが、ソースコードを「```」で囲むと(```code```)、Syntax Highlightが有効になって見やすくなるので、回答するほうの負荷が減るのでぜひ試してみてください。
guest

回答3

0

c#

1// 省略 2 3case serveState.SERVE2: 4pinkyu.Serve(0); // pinkyu.Serve(1);から修正 5 6// 省略 7 8case serveState.SERVE3: 9pinkyu.Serve(1); // pinkyu.Serve(0);から修正 10 11// 省略

pinkyu.Serve()の引数がサーブ側を表すなら上記の通りだと予測できますが、示されたソースコードだけでは予測以上の回答はできないと思います。

投稿2017/02/27 05:30

mizuiro_makoto

総合スコア40

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

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

0

case serveState.SERVE1:
の次の行にブレークポイント張って、デバッグ実行してヒットしたらステップ実行して見ればいいでしょう。

投稿2017/02/27 02:38

turbgraphics200

総合スコア4267

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

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

0

この箇所だけではなんとも言えません。このswitch文の直前にログ出力などを仕込んでみてください。連続でこの処理が二度呼ばれていたりはしませんか?
FlagManager.Instance.flags[3] に false を入れ忘れているとか。

投稿2017/02/27 02:01

kanitaoru

総合スコア204

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問