FreelyApps

個人によるアプリ開発の日記です。アプリの収入だけで生活できるようになるのが目標です。UnityでAndroid向けのゲームアプリを作成しています。


    アプリ『トランプ・ジン・ラミー』を公開しました。
    Android/iOS https://goo.gl/PYKFYG

      このエントリーをはてなブックマークに追加 Clip to Evernote
    3/25に『トランプ・ジン・ラミー』をリリースしました。
     title

    「ジン・ラミー」というトランプゲームがあってそれが遊べるアプリです。
    ジン・ラミーを知っているという人は少ないと思うので軽く説明すると、世界三大トランプゲームの一つでアメリカで発祥したゲームです。日本ではあまり有名ではないですが、世界的には有名なゲームです。
    2人で対戦するゲームで手札の点数を相手よりも低くすることを競います。カードの数字がそのまま点数(絵札は10点)であり、メルドと呼ぶ組に入っている場合は0点になります。メルドを作っていくことでゲームが進行していきます。メルドは同じ数字3枚以上か同じスートで連番の3枚以上の組です。
    10点以下になったら勝負をかけれます。点数の差が得点となるので、なるべく早くに勝負をかけると良いです。
    相手の点が自分よりも低いと負けになりボーナス点も払わなくてはなりません。そんなわけで勝負をかけるタイミングが重要です。
    点数を下げて、ここだという時に勝負をかけるゲームです。

    言葉で説明すると長くなるので、見てもらうか遊んでもらったほうがわかると思います。一回の勝負の動画を載せておきます。
    0_0325
    合計得点が100点(アプリでは初心者向けに50点もあります)超えると勝ちになるので、逆転が多くなります。

    説明のための動画とか作ったほうがわかりやすそうですね。これだけでわかったらすごい。

      このエントリーをはてなブックマークに追加 Clip to Evernote
    次のようなログが出続けるバグがUnity 5.5.1.f1 Personalで発生しました。
    many-log

    調べてみると原因は5.5.0f3の時からあるバグのようでした。
    issue


    私の環境だと、以下の条件を満たすと発生するようです。
    1. シーンビューが2Dモードになっている
    2. Transform ToolsがRectTransform用になっている
    3. CanvasにRectTransformのwidthかheightが0のゲームオブジェクトがあり、それに子がある
    4. 上記の子のゲームオブジェクトを選択している
    非常にまれな条件で発生するように見えますが、UIを作っていると発生する可能性があります。

    問題としてはログが大量に出ることによりFPSが極端に低下しゲームが動かなくなってしまいます。
    暫定的対処として、とりあえずTransform Tools(Editorの左上にある手とか移動とか回転のツールのこと)をRectTransform用のものにしなければ良いと思います。もしくは選択しているものを変えると良いです。

      このエントリーをはてなブックマークに追加 Clip to Evernote
    『トランプ・ババ抜き』を作るのにかかった時間は約23時間でした。
    大体予想通りの時間がかかったというところです。ババ抜きはルールも単純であり、AIも基本的に考えることがないゲームです。現実のゲームでは表情やリアクションがあったりしますが、純粋なゲームルールのみだと完全な運によるゲームになります。

    このアプリは1週間で作ろうと思って作り始めました。23時間の作業を1週間で行うと1日当たり3時間30分ほどです。平日にやるにはちょっと多い分量でした。時間が取れれば1週間で作ることも可能だったと思いますが、実際には始めてから2週間でのリリースとなりました。

      このエントリーをはてなブックマークに追加 Clip to Evernote
    1/17に『トランプ・ババ抜き』をリリースしました。
    title

    ババ抜きについては説明する必要もないと思います。何人かで集まれば一度は遊んだことがあるでしょう。
    非常に単純なゲームですが、ルールが簡単で大人数で大人も子供も遊べるという特徴があります。対人でやると表情などからババを持っているか推測して楽しめます。

    アプリでやる場合は暇つぶしが目的になると思います。

      このエントリーをはてなブックマークに追加 Clip to Evernote
    5.5になり、UnityEngine.Typesが使えなくなりました

    `UnityEngine.Types.GetType(string, string)' is obsolete: `This was an internal method which is no longer used'
    というエラーログが出ます。 

    エディター拡張(スクリプトからそれがアタッチされたゲームオブジェクトを作成する拡張)でこれをつかっていたものがあったので対応する必要がありました。 

    対応方法は別のメソッドを使うだけです。Unityで有名なこちらのブログ
    【Unity】クラス名からTypeを取得する(テラシュールブログより)
    の記事がわかりやすいと思います。

    私の場合は、
    UnityEngine.Types.GetType(className,"Assembly-CSharp");
    と書いていたところを 
    System.Reflection.Assembly.Load("Assembly-CSharp").GetType(className);
    と直して問題なく動きました。 


    少し調べてみたところ上記の方法でなくても行う方法がありました。
    System.Type.GetTypeというメソッドでもTypeを取得できるようでした。型の名前を引数にとり、型を返すメソッドです。実行中のアセンブリ(dllと考えていい)かMscorlib.dllに含まれる型であれば名前空間で修飾した型名で型が取れるようです。
    Unityで作ったスクリプトはAssembly-CSharp.dllにあり、エディタースクリプト実行時には当然実行中のアセンブリではないです。System.Type.GetTypeはアセンブリ名を修飾した名前で呼べば型を取得できるようになっているので、
    System.Type.GetType(className+ ",Assembly-CSharp");
    というようにしてどのアセンブリにいるかを指定すれば型が取れます。

    このページのトップヘ