using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.SceneManagement;
public class JankenManager : MonoBehaviour {
public GameManager gameManager;
public GameObject[] enemyObjects;
private int enemyHand;
private float hansyaTime;
private float recodeTime;
private float recode;
private static float ave=0.0;
public int countNumber;
public Text winloseText;
public Text resultText;
// Use this for initialization
void Start () {
PlayStart ();
}
// Update is called once per frame
void Update () {
}
void PlayStart(){
winloseText.text = "";
hansyaTime = 0.0f;
countNumber = 0;
hansyaTime += Time.deltaTime;
enemyHand = Random.Range (0, enemyObjects.Length);
foreach (GameObject obj in enemyObjects) {
obj.SetActive (false);
}
Invoke ("PlayObjects", 0.5f);
}
public static void PushButton(int playHand){
CountUp ();
if ((playHand == 0 && enemyHand == 2) ||
(playHand == 1 && enemyHand == 0) ||
(playHand == 2 && enemyHand == 1)) {
winloseText.text = "成功";
gameManager.ScoreUp ();
} else {
winloseText.text = "失敗";
gameManager.ScoreErr ();
}
Invoke ("PlayStart", 1.0f);
recodeTime = hansyaTime;
recode += recodeTime;
ave = recode / countNumber;
resultText.text = "結果"+ave.ToString ();
}
void PlayObjects(){
enemyObjects [enemyHand].SetActive (true);
}
void CountUp(){
countNumber++;
}
}
using UnityEngine.SceneManagement;
public class GameManager : MonoBehaviour {
private float maxTime=60.0f;
int seconds;
public Text timerText;
public static int errorNumber;
public static int nowNumber;
public Text counterText;
private bool isNowGame;
void GameStart(){
nowNumber = 0;
errorNumber = 0;
isNowGame = true;
}
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
isNowGame = true;
maxTime -= Time.deltaTime;
seconds = (int)maxTime;
timerText.text = "制限時間 " + seconds.ToString ();
if (maxTime <= 0) {
isNowGame = false;
GameEnd ();
}
counterText.text = nowNumber.ToString () + "回成功";
}
public static int getNowNumber(){
return nowNumber;
}
public static int getErrNumber(){
return errorNumber;
}
void GameEnd(){
SceneManager.LoadScene ("ResultScene");
}
public void ScoreUp(){
nowNumber++;
counterText.text = nowNumber.ToString ();
}
public void ScoreErr(){
errorNumber++;
}
}
Unityを使用してゲームを作っているのですが、画像が表示されてボタンを押すまでの時間の平均時間を出したいと思っています。ゲームの内容としましては、制限時間(仮に60秒)の中で画像が表示されたらボタンを押すという作業を繰り返し、その画像が表示されてボタンを押すまでの時間の平均時間を出したいと思っています。
JankenManagerのコードの方に新しくタイマーを設けようとしたのですがエラーが出てしまいました。
PlayStart()が呼び出されるときに再度0秒の状態で始めたいのでhansyaTime=0にしています。
ですがPushButton()の最後の4行のところでエラーが出てしまいます。
アドバイスの程よろしくお願いします。
-
気になる質問をクリップする
クリップした質問は、後からいつでもマイページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
クリップを取り消します
-
良い質問の評価を上げる
以下のような質問は評価を上げましょう
- 質問内容が明確
- 自分も答えを知りたい
- 質問者以外のユーザにも役立つ
評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。
質問の評価を上げたことを取り消します
-
評価を下げられる数の上限に達しました
評価を下げることができません
- 1日5回まで評価を下げられます
- 1日に1ユーザに対して2回まで評価を下げられます
質問の評価を下げる
teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。
- プログラミングに関係のない質問
- やってほしいことだけを記載した丸投げの質問
- 問題・課題が含まれていない質問
- 意図的に内容が抹消された質問
- 過去に投稿した質問と同じ内容の質問
- 広告と受け取られるような投稿
評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。
質問の評価を下げたことを取り消します
この機能は開放されていません
評価を下げる条件を満たしてません
質問の評価を下げる機能の利用条件
この機能を利用するためには、以下の事項を行う必要があります。
- 質問回答など一定の行動
-
メールアドレスの認証
メールアドレスの認証
-
質問評価に関するヘルプページの閲覧
質問評価に関するヘルプページの閲覧
checkベストアンサー
+1
・画像を表示するときに現在時間を保存
・ボタンが押されたときに時間を取得し、差分を出し、保存
という処理になろうかと思いますが、なにがわからないんでしょうか
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
15分調べてもわからないことは、teratailで質問しよう!
- ただいまの回答率 88.36%
- 質問をまとめることで、思考を整理して素早く解決
- テンプレート機能で、簡単に質問をまとめられる
質問への追記・修正、ベストアンサー選択の依頼
2018/12/05 13:38
複数のユーザーから「やってほしいことだけを記載した丸投げの質問」という意見がありました
「質問を編集する」ボタンから編集を行い、調査したこと・試したことを記入していただくと、回答が得られやすくなります。
torisan
2018/12/12 16:59
C#は良く解らないのですが、関数の呼び出し方は Invoke で合っているのでしょうか。
ryotaro
2018/12/17 22:26
Invokeは画像を表示するメソッドをそのまま呼び出すと切り替わりがわかりずらかったのでInvokeを使ってちょっとずらしてメソッドを呼び出すようにしてます。