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

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

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

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

BGM

BGMを流す場合、[Audio Source]コンポーネントをGameObjectに追加をします。 [Audio Clip]の音楽ファイルを指定するだけです。

2014-910-5-fds.png

ループ

Scene[Start]には、ユニティちゃんが移動すると「ループ」するエリアがあります。

2014-10-5-ddasa

この実装は以下のコードで行っています。 [OnTriggerEnter2D]を利用して、反対側のエリアにGameObjectを移動させています。 [c] void OnTriggerEnter2D(Collider2D other){ if (other.tag != "Player") return;

    var pos = to.transform.position;

    other.transform.position = new Vector2(pos.x + offsetX, other.transform.position.y);

} [/c]

GameSceneの移動

タイトルで必要な機能は、「ゲーム画面」へ移動させることです。 [StartController]スクリプトを見てみましょう。

キーボードのボタンを押す

今回は[x]のボタンを押した時に、画面が移動するようにします。 その際のボタンの割り当ては以下のコードで行っています。 [c] //KeyCode.※※※で指定 if(Input.GetKeyDown(KeyCode.X)){

StartCoroutine(LoadNextLevel());

} [/c]

[SceneName]と[SerializeField]

今回のスクリプトでよくわからない所が、今回の[SceneName][SerializeField]でした。 [c]

[SceneName] public string nextLevel;

[SerializeField] public KeyCode pressButton = KeyCode.X;

[/c]

2014-10-5-fgfds

[SerializeField]

privateの変数でも[Inspector]で値の選択ができるようになります。 【参考】 Unity - Unity Manual

[SceneName]

[SceneNameAttribute.cs]でエディタを拡張すると利用できるのみたいです。 プロジェクトで設定されているSceneを選ぶことができます。 詳しくは、下記サイトから。 【参考】 知って得するUnity エディタ拡張編

全てのGameObjectからコンポーネントを取り出す

BGMの音量を小さくしている実装で利用されています。 [AudioSource]というコンポーネントを探して、音量を小さくしています。 [c] foreach(AudioSource audios in FindObjectsOfType()){

audios.volume = 0.2f;

}

[/c]

最後に

今回は短い内容でしたがここまでです。 次回はメインのゲームの中から勉強をしたいと思います。

ゲーム作りのはじめかた Unityで覚える企画からレベルデザインまでゲーム作りのはじめかた Unityで覚える企画からレベルデザインまで
あすな こうじ

SBクリエイティブ
売り上げランキング : 26909

Amazonで詳しく見る