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]の音楽ファイルを指定するだけです。
ループ
Scene[Start]には、ユニティちゃんが移動すると「ループ」するエリアがあります。
この実装は以下のコードで行っています。 [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]
[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で覚える企画からレベルデザインまで あすな こうじ SBクリエイティブ 売り上げランキング : 26909 Amazonで詳しく見る |