Playモード時の設定値を保存したい→すぐできます

 Unityでゲーム開発をしていると必ず一度は遭遇するのが……「Playモードで値を調整してしまい、Editorに戻ってリセットする事件」というもの。 あーやるやる、と思った方も多いのではないでしょうか。そこで、今日からできる簡単な対処方法をご紹介します。 Playモードの設定を保持するKuroMikanの環境今すぐできる方法アセットを使う方法KuroMikanの環境mac OS 1…

続きを読む

プラットフォーム切り替えを速くしたい!→爆速に出来ます

 Unityでスマホゲームを開発しているとよく直面するのが「iOS<>android切り替えにかかる時間が長過ぎる」という問題。スマホに限らずPC版開発でもWindowsからWebGLに切り替えたりなどする方もいると思うのですが、このプラットフォーム切り替え時の処理が寝落ちするほど長い! この処理って何をやってるの?って話なんですが、全てのAssetを切り替え先のプラットフォー…

続きを読む

ゲームのファイルサイズをダイエットする方法

 Unityでゲームをビルドすると実行に必要なファイルが生成されますが、そのファイルサイズを見て「え? 私のファイル……デカすぎ?」と思ったことはありませんか? KuroMikanはあります。 ファイルサイズが大きいと何が困るの?って話ですが、まずPCやスマホの保存容量を消費します。次にスマホアプリの場合、ダウンロード数に影響します。App Storeでは150MBを超えるゲームをダウンロ…

続きを読む

【Unity】スクリプトからButtonに引数付きAddListenerする方法!(罠あり)

 Unityでボタンにイベントを付ける方法はいくつかありますが、KuroMikanはC#スクリプトからButtonにAddListenerする方法をよく使います。 ゲームの規模が小さい時は、ボタン毎にスクリプトを作ってアタッチしていました。最初はコードすっきり最高〜とか思っていたのですが、開発規模が大きくなるにつれてボタン用のスクリプト(しかも数行しかない)が大量に増殖してしまった結果、ス…

続きを読む

【Unity】Invokeの使い方をちゃんと知る!コルーチンよりも気軽に使えるってよ

 Unityでゲームを開発していると必ずと言っていいほど「◯秒後に処理をする」必要がでてきます。それを実現するための関数が「Invoke」と「Coroutine」です。  両者には色々な違いがありますがざっくりまとめると「Invokeは気軽に使えて、Coroutineは複雑な処理に向いている」という話です。Coroutineは処理の流れの中で数秒後の処理を記述できますが、Invokeはそれがで…

続きを読む

【Unity】Destoryが実行されるタイミングは?

 オブジェクトやコンポーネントを削除するときに「Destroy」を使いますが、実際にDestroyされるタイミングはご存知でしょうか? ある日、数値などをいじり倒したコンポーネントを初期状態に戻す実装を考えていました。そこでKuroMikanは「よっしゃ、コンポーネントを一旦破棄して、すぐに同じコンポーネントを付けたろw」と思って下記コードを書きました。var hoge = gameObj…

続きを読む

【Unity】シングルトンを使って1つしか存在しないことを保証すると良いことがあるらしい

 Unityでゲーム開発していると、「シーン上に1つしか存在しない(させない)スクリプト」が出てきます。まぁ普通にFindとかGetComponentしてアクセスすればいいのですが、もっと気軽にアクセスしたくないですか?  そんな時は「シングルトン」という手法はいかがでしょうか。 「シングルトン」はUnityの固有機能でもなんでもなく、オブジェクト指向のプログラミングにおけるデザインパタ…

続きを読む

【Unity】Inspectorを2つ表示する方法

 今回はUnityのちょっとしたTIPSになります。Unityエディターでちょっとだけパラメータが違う複数のオブジェクトを調整するときがあると思います。オブジェクトAをクリックして数値を確認して、オブジェクトBをクリックして調整して……なんてやっていたら確実に日が暮れます。 そんな時はInspectorを2つ表示しましょう。 Inspectorの右にある「…」をクリック。もし…

続きを読む