【Unity 2D】2Dユニティちゃんのデモゲームを勉強する-イントロ &ゲーム編

  • |
【Unity 2D】2Dユニティちゃんのデモゲームを勉強する-イントロ &ゲーム編
   

Unity界隈では話題の「ユニティちゃん」に手を出してみました。


今回からは[2Dユニティちゃん]に付属しているデモゲームのスクリプトなどを勉強していきたいと思います。
まずは、「イントロ&ゲーム」編です。

【過去回】
【Unity 2D】2Dユニティちゃんのスクリプトを勉強する-その1 | albatrus.com
【Unity 2D】2Dユニティちゃんのスクリプトを勉強する-その2 | albatrus.com
【Unity 2D】2Dユニティちゃんのスクリプトを勉強する-その3 | albatrus.com
【Unity 2D】2Dユニティちゃんのデモゲームを勉強する-壊れるブロック編 | albatrus.com
【Unity 2D】2Dユニティちゃんのデモゲームを勉強する-タイトル編 | albatrus.com

画面のスクロール

イントロ部分では、カメラが音楽が鳴り終わるまで移動します。
この部分は[Main Camera]のスクリプトで制御しています。

void Update()
{
   float newPosition = Mathf.SmoothStep(pos.x, target.position.x, Time.timeSinceLevelLoad / audio.clip.length);

   transform.position = new Vector3(newPosition, pos.y, pos.z);
}



Mathf.SmoothStep()

このコードでわかならかったのが[Mathf.SmoothStep()]です。
これは「2点間の移動をスムーズに行う」関数です。

Mathf.SmoothStep(pos.x, target.position.x, Time.timeSinceLevelLoad / audio.clip.length);

//第一引数:スタート地点
//第二引数:ゴール地点
//第三引数:移動する時間

//Time.timeSinceLevelLoad : Sceneがロードされてからの経過時間
//audio.clip.length : 音楽の長さ

一定の速度ではなく終盤にかけて遅くなって移動します。
私自身数学がぜんぜんダメなので、どういった概念なのかイマイチピンときませんが、説明にあるように「スムーズ」に移動できます。

Mathf.SmoothStep – Unity Manual

画面の移動

ここでは当初、Scene内のオブジェクトを引き継いで次のSceneへ移動しているかと思っていたのですが、特に何かしているわけではなく同じGameObjectを配置しているだけでした。
おそらくどちらかを先に作って、セーブ先を変えているだけでしょう。

ゲーム編 – 追尾カメラ

「ユニティちゃん」が移動する時に、カメラも追尾して動いているように表現しています。
元からあるスクリプトでは、後戻りができないので、少し改造をしてみました。
//targetはユニティちゃんのtransform.position
//stopPositionは、画面の右端のtransform.position


if(target.position.x < 0){



}else if(stopPosition.position.x < target.position.x){


}else{

   Vector3 pos = _my_Camera.transform.position;
   if(Mathf.Abs(pos.x-target.position.x)>=0.000001f){
				
        _my_Camera.transform.position = new Vector3(target.position.x,pos.y,pos.z);
				
				
	}

}


このようにすれば、右端・左端に到達したばあい背景(カメラ)が移動しません。

カメラはVector3

2Dゲームですが、カメラの移動には[Vector3]を使っていました。

SendMessage()

ゴールに到着をした際に、音を鳴らします。
その際に「ユニティちゃん」のスクリプトを呼び出しています。
この場合に利用をしているのが[SendMessage()]です。
//Clear()メソッドを呼び出す
player.SendMessage("Clear", SendMessageOptions.DontRequireReceiver);


最後に

これで「ユニティちゃん」2Dに使われている全てのスクリプトや[Inspector]に目を通すことができました。
今までに使ったことがない色々な方法があり勉強になりました。
この「ユニティちゃん」を使って何かゲームができないかアイデアを考え中です。

Unityではじめる2Dゲーム作り徹底ガイド スマートフォンでも遊べる本格ゲーム開発に挑戦Unityではじめる2Dゲーム作り徹底ガイド スマートフォンでも遊べる本格ゲーム開発に挑戦
大野 功二

SBクリエイティブ 2014-10-29
売り上げランキング : 16054

Amazonで詳しく見る

Related Posts Plugin for WordPress, Blogger...