FreelyApps

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


    ブログを
    https://freelyapps.net/
    に移転する予定です。
    リンク切れがある記事はこちらに移動した可能性もあります。

      このエントリーをはてなブックマークに追加 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");
    というようにしてどのアセンブリにいるかを指定すれば型が取れます。

      このエントリーをはてなブックマークに追加 Clip to Evernote
    『トランプ・ミリオネア』を作るのにかかった時間は約103時間でした。とても時間がかかったのは大富豪のルールが複雑だからでした。
    縛り、革命、8切りなどのルールを入れることもそうですし、これらを考えるAIを作ることも大変でした。

    このページのトップヘ