キリンめも(技術)

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

Unity入門その1(基本編)「ボタン実装/ランダム・乱数1/絶対指定・相対指定」

unityを何ヶ月かぶりに触って全然使い方を忘れていたので、改めて初心者に戻り修行したいと思います。

今回行うこと

・ボタン実装までの手順(UI image)
・ランダム生成、乱数
・絶対指定、相対指定の仕方

*ボタン実装までの手順(UI image)

意外と時間を使ったのでできるだけ細かく記載していこうと思います。

手順1

Hierarchy→Create → Image を選択
f:id:geta206:20170911093626j:plain

手順2

1. Create→Create Emptyを選択
するとGameObjectが出現
f:id:geta206:20170911093949j:plain
2. Inspectorを選択し、Add Componentをクリック
   New Script →C#を選択。
f:id:geta206:20170911094302j:plain
上記のように表示されると思います。


手順3

Assets→C#のファイルをクリックし、コードを記載する。
void Start()の{}の中に以下を記載します。

using UnityEngine.UI;

public class hogehoge : MonoBehaviour {

	// Use this for initialization

	void Start () {
	  // 対象を探す
          var botan = GameObject.Find ("hogebtn").GetComponent<Button> ();
	  botan.onClick.AddListener (delegate {
	   Debug.Log ("押してやったぞ");
	});
        }
	
	// Update is called once per frame
	void Update () {
	}
}
手順4

Canvas → Image をクリックし Inspector→Add Component →Scripts→C#のファイルを選択。
Imageの名前をC#で記載した名前に変更。Enterをクリック。

f:id:geta206:20170911095923j:plain

手順5

Add Component → UI → Button追加
f:id:geta206:20170911101346j:plain
実行!

ランダム生成/ 乱数

Start(){}の中に記載。

                 //整数型の変数を定義
			int a = 12;
			int b = 23;
			//足し算してみた
			Debug.Log (a + b);
			//aの値を書き換えてみた
			a = 6;
			Debug.Log (a);
			a = a / 2;
			Debug.Log (a);

			//論理計算
			if (a < b) {
				Debug.Log ("aよりbが大きい");
			}
			if (a == b) {
				Debug.Log ("aとbは同じ");
			} else if (a > b) {
				Debug.Log ("aはbよりも大きい");
			} else {
				Debug.Log ("それ以外");
			}

			//ランダム
			//aの値を書き換えてみた
			a = Random.Range (1, 7);
			//※整数1から6のどれかになる
			//論理計算 if とelseを組み合わせて
			if (a < 3) {
				Debug.Log ("右ストレート");
			} else if (a < 5) {
				Debug.Log ("中央突破");
			} else {
				Debug.Log ("左に発射");
			}

絶対指定・相対指定

       void Start () {
		// 対象を探す
		var botan = GameObject.Find ("hogebtn").GetComponent<Button>();
		    botan.onClick.AddListener (delegate {
		//ボタンの移動(絶対指定のみ)
			// 座標の変数を定義
			Vector2 pos = new Vector2 (320, 320);
			//対象を探し当てる
			GameObject aaa = GameObject.Find("Canvas");

			//移動
			aaa.transform.position = pos; 

		});
	}
	
	//クリック(画面タップ位置に移動)
			void Update (){ 
				if(Input.GetMouseButtonDown (0)) { 

		


			       //対象を探し当てる(相対・絶対指定)	
 			       var moveObj = GameObject.Find ("btn0"); 
				   //Debug.Log (moveObj.transform.position); 
				moveObj.transform.position = Input.mousePosition;

			//移動量x,y,zを指定して移動!(相対指定)
			//moveObj.transform.Translate(20,50,0);
				}
			}
解説・補足

Start{}は一回のみ実行される。
Update{}は何度でも実行される。

varという大きなくくりの中にGameObjectがある。

Findで対象を探してから命令を実行する。(探す→CRAD処理の形)

   var moveObj = GameObject.Find ("btn0");