キリンめも(技術)

記事を書いています #rails #swift #JS #UE4 #unity

Unity入門その2「じゃんけんゲーム レベル1-2」

画像をGUIに出すのが鬼畜だったのでメモ。
全レベル1から3まであります
[次回レベル3を記載予定]

じゃんけんゲーム(レベル1)

お題内容
ボタンを押したら、ランダムで1~3のどれかになるプログラムを作って
次に、1ならぐーの画像、2ならちょきの画像、3ならパーの画像を表示
 (制限時間20分)

f:id:geta206:20170922161857j:plain
完成イメージ

手順1

1.上記のUIを作る  (Image)
2.機能設定 (Add Component)

1. UI作成

Hierarchy→Create → Image を選択
詳しくはこちらの記事へどうぞ↓
Unity入門その1(基本編)「ボタン実装/ランダム・乱数1/絶対指定・相対指定」 - キリンめも(技術)
見た目はこれで完成です。

2. Add Component

・Button (on click 追加ボタンを押す + )

手順2 (画像取り込み)

Project → Assets (アイコンがファイル)の上を右クリック
inport New Assetsをクリック → 画像選択
f:id:geta206:20170923013817p:plain



手順3

コードを書く

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class janken : MonoBehaviour {

	//0.使用するものの準備
	Image gamebtn_; //UIでつけた名前を記載する

	public Sprite Img0;
	public Sprite Img1; 
	public Sprite Img2; 

	void Start () {
		// 1.対象を探す
		var botan = GameObject.Find("btn").GetComponent<Button>();//0と同じ名称
		gamebtn_ = GameObject.Find ("img").GetComponent<Image> ();//UIのイメージの名前と同じ

		botan.onClick.AddListener (delegate {
			Debug.Log("押");
			//2.整数0から2をランダム
			int a = Random.Range(0,3); 
			Debug.Log(a);

			if(a == 0){
				gamebtn_.sprite = Img0;
			}else if(a == 1){
				gamebtn_.sprite = Img1;
			}else{
				gamebtn_.sprite = Img2;
			}

		});
	}

	void Update (){
	}
}

手順4

1. コードファイルに画像を指定する

Img 0...2に画像を入れる
Project → Assets → C#ファイルをクリック Img1のSelect をクリック
f:id:geta206:20170923213518p:plain

2. アタッチの方法

オブジェクトにコンポーネントをアタッチ(くっつけること)するという。

作ったC#ファイルをドラッグし、UIオブジェクトの上で離す。
以下のように追加されていれば大丈夫です。

f:id:geta206:20170923221316p:plain

3. もう一つオブジェクトを追加

同様にbtnにも手順1からUI設定を行う。

おまけ (レベル2)

お題内容
以下の画像をクリックするとランダムでじゃんけんの画像が表示される。


f:id:geta206:20170923012119p:plain

コードはこちら

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class janken : MonoBehaviour {

	//0.使用するものの準備
	Image gamebtn_; //UIでつけた名前を記載する

	public Sprite Img0;
	public Sprite Img1;
	public Sprite Img2;

	void Start () {
		// 1.対象を探す
		var botan = GameObject.Find("img").GetComponent<Button>();//0と同じ名称
		gamebtn_ = GameObject.Find ("img").GetComponent<Image> ();//UIのイメージの名前と同じ

		botan.onClick.AddListener (delegate {
			Debug.Log("押");
			//2.整数0から2をランダム
			int a = Random.Range(0,3); 
			Debug.Log(a);

			if(a == 0){
				gamebtn_.sprite = Img0;
			}else if(a == 1){
				gamebtn_.sprite = Img1;
			}else{
				gamebtn_.sprite = Img2;
			}

		});
	}

	void Update (){
	}
}
あとがき

社員さんのアドバイスもあり、完成することができました。感謝です✨
次回のゲーム作成は「もぐら叩きゲーム」を作る予定。