kazumalab tech log

流行りとリラックマと嵐が大好きです。技術的ログ。

今季初のゲームをリリースいたしました。

Kazuma.です。


まだSNS等には公開していないのですが、ゲームのリリースを行いました。
Unity製です、はい。

Fly Away!!

ゲームのタイトルです。あまりネーミングセンスがないんですよね笑
なのでとりあえずどっか飛んでけーって感じでつけました。

どんなゲームか?

結構単純な2Dゲームですが、今回はやりこみ要素を追加し、アイテム機能をつけました。
あとはもろもろ初めてやったこともありましたが。実際ゲームをやるひとにとってはシステムは関係ないので!

一番はYoutubeに動画をアップしてあるのでそれを見てもらうのがいいですが。

ちょっと音量に注意です!

www.youtube.com

もともと野球系のゲームは作りたかったので今回こんな感じになりました。

技術的な話

今回はUnity2Dを使ったわけですが、ゲームシーンは1個で、主にCanvasを表示、非表示でやりくりしています。
コレぐらいだとシーン分けするのも結構面倒なので。。。

データのセーブにはPlayerPrefsを利用しています。
ほぼほぼSetIntぐらいかな。

PlayerPrefsではboolは保存できないのでIntの0 or 1で表現することにしました。
DBを使おうかなと思ったのですがあまり時間も掛けたくなかったので、手軽なセーブ方法を利用しました。

アイテム管理

今回初挑戦したアイテム管理ですが、コレまたPlayerPrefs。笑
アイテム情報はClassを作って、それをListのGenericで指定して、ゲームが起動されるときにAddしている形になります。

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

[System.Serializable]
public class Item {

	// -------------------- 要素

	public string ItemName;
	public int ItemID;
	public Sprite ItemIcon;
	public float ItemPower;
	public AudioClip ItemSound;
	public int ItemPrice;

	// --------------------

	public Item(string name, int id, Sprite icon, float power, AudioClip sound, int price){
		this.ItemName = name;
		this.ItemID = id;
		this.ItemIcon = icon;
		this.ItemPower= bound;
		this.ItemSound= audio;
		this.ItemPrice = price;
	}

}

結構乱雑に書かれていますがItemのクラスはこんな感じです。

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

public Class ItemManager : MonoDevelop {

	public List<Item> item = new List<Item> ();
     
------ 省略------

        public void Start() {
		item.Add (new Item ("sword", 0, swordIcon, 1f, swordSound, 100));
        }
}

このような感じでStart関数でAddしています。Awake関数で呼び出してもいいですね。
ホントはデータベースにアイテム情報を入れるのがいいかと思いますが。

制作時間

今回は1週間ぐらいです。
ですがまだまだ更新が必要で、バットの種類を増やすこと、、、絵を書かないとという部分です。
今回一つだけ、音声の部分でほぼフリーの素材を使ったのですが、メインの音だけどうしてもなく、ようやく見つかったサイトが
特に規約を設けていなかったので使わせて頂きました。
念のためメールで確認したかったのですがフォームの送信でphpcgiが無効化されていたので許可取れず・・・。


ぜひ遊んで見て下さい。おおよそ卒業制作です笑

play.google.com