【1日1本アプリ開発】サルを揃えろ!【11本目】

お初です、ozaniです。

開発11日目です。

【1日1本アプリ開発】サルを揃えろ!【11本目】

今日は簡単なパズルゲームを作成しました!

・今日のちょっとソース。


	
var currentPosIndex = picePosDict.
    Where(x => x.Value.name.Equals(flickPiece.name)).
    FirstOrDefault().Key;

パズルのピースの位置とそのオブジェクトを格納したHashtableをゲーム開始時に作成し、各ピースの位置を管理しました。

上記は、フリックしたピースの位置情報をLINQを使用して取得しているソースコードです。
C#はLINQがあるから大好きだったりします!

LINQを使用しない場合、ソースコードは下記のようなソースコードになるかと思います。

	
var currentPosIndex = 0f;
foreach (var index in picePosDict.Keys)
{
    if(picePosDict[index].name.Equals(flickPiece.name))
    {
        currentPosIndex = index;
        break;
    }
}

上記のコードを上から読んでいくと
「Hashtableの中身を順番にループで見ていき、フリックしたピースと名前が一致するオブジェクトがあれば、そのINDEXを保持してループから抜ける」
となります。

「Hashtableからフリックしたピースの位置をとってくる」ていう意味では、
1つ目のソースコードも、2つ目のソースコードも同義なのですが、
やりたいことをストレートに表現しているのは前者だと思いませんか?

積極的にC#やるなら、積極的にLINQ使っていきましょう!

【使用ゲームエンジン】
Unity 2018.3.5f1

【プロジェクト管理】
git(Bitbucket使用)

これからも、よろしくお願いします。

コメントする

CAPTCHA