【コードのみ】GuScript
プログラミング初心者がunityでカードゲームを作ってみたい!【その6】〜u GUIで勝敗判定表示 - 社畜主婦の挑戦のスクリプトの中身です。
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- using UnityEngine.UI; // UIを使う際は記載する
- public class GuScript : MonoBehaviour
- {
- public Sprite cardBack;
- // アウトレット接続(インスペクタ上で設定)するcardBackという名前のスプライトの宣言
- public Sprite[] faces;
- // アウトレット接続するfacesという名前のスプライトの配列の宣言
- public GameObject Card;
- // アウトレット接続するCardという名前のゲームオブジェクトの宣言
- public bool show;
- // アウトレット設定するshowという名前のブール値の宣言(初期値はfalse)
- public AnimationCurve scaleCurve;
- // アウトレット接続するscaleCurveという名前のアニメーションカーブの宣言
- public float duration = 0.5f;
- // アウトレット接続するdurationという名前の数値の宣言(初期値は0.5)
- public Text Judgment;
- // アウトレット接続するJudgmentという名前のテキストの宣言
- public GameObject Reset;
- // アウトレット接続するResetという名前のボタンの宣言
- public GameObject Tyoki;
- // アウトレット接続するTyokiという名前のゲームオブジェクトの宣言
- public GameObject Pa;
- // アウトレット接続するPaという名前のゲームオブジェクトの宣言
- SpriteRenderer spriteRenderer;
- // spriteRendererという名前のスプライトの宣言
- void Awake()
- {
- spriteRenderer = Card.GetComponent<SpriteRenderer>();
- // spriteRendererにCardのスプライトを代入
- }
- // イベントトリガーに設定するために、publicの関数を作成
- IEnumerator ToggleFace()
- {
- // もしカードが裏面(初期値)だったら
- if (show == false)
- {
- Tyoki.SetActive(false);
- // チョキを非表示
- Pa.SetActive(false);
- // パーを非表示
- Sprite newSprite = faces[Random.Range(0, faces.Length)];
- // newSpriteという名前のスプライトを宣言してfacesのカードをランダムに代入する
- float time = 0f;
- // timeという名前の数値の宣言(初期値は0)
- while(time <= 1f) // timeが1以下の場合は以下を繰り返す
- {
- float scale = scaleCurve.Evaluate(time);
- // scaleという名前の数値を宣言してcaleCurveのEvaluate(数値)を代入する
- time = time + Time.deltaTime / duration;
- // timeに前フレームからの経過時間を0.5で割った数値を代入する
- Vector3 localScale = Card.transform.localScale;
- // localScaleという名前のVector3(位置情報)にCardオブジェクトの位置情報を代入する
- localScale.x = scale;
- // localScaleのx軸の値にscaleの値を代入する
- Card.transform.localScale = localScale;
- // Cardの位置情報にlocalScaleの値を代入する
- if (time >= 0.5f) // timeが0.5以上の場合は
- {
- spriteRenderer.sprite = newSprite;
- // CardのスプライトにnewSpriteを代入する
- }
- yield return new WaitForFixedUpdate();
- // ここまでの結果を返して一定時間処理を停止する
- }
- show = true;
- // 再度グーをタップした時にcardが変化しないように、showをtrueにしておく
- if(spriteRenderer.sprite == faces[0]) // もしCardのスプライトがfaces[0](グー)なら
- {
- Judgment.GetComponent<Text>().text = "あいこだよ!";
- // Judgmentのテキストに「あいこだよ!」と表示
- }
- else if(spriteRenderer.sprite == faces[1]) // もしCardのスプライトがfaces[1](チョキ)なら
- {
- Judgment.GetComponent<Text>().text = "あなたのかち!";
- // Judgmentのテキストに「あなたのかち!」と表示
- }
- else // それ以外(パー)なら
- {
- Judgment.GetComponent<Text>().text = "あなたのまけ!";
- // Judgmentのテキストに「あなたのまけ!」と表示
- }
- Reset.SetActive(true);
- }
- }
- public void Flip()
- {
- StartCoroutine(ToggleFace());
- // ToggleFace()のコルーチンを実行する
- }
- }
【スポンサーリンク】