中級

Script

Invoke

Invokeという便利な関数があります。これは好きなメソッドを何秒か遅れて呼ぶという機能です。ある時点で発生することは確定するが、少し遅らせて処理をしたいという時に使うと簡単に処理ができて便利です。 「ボタンを押したときにSEが流れて、それ...
Script

スクリプトのテンプレートの変更

Unityで新しいC#スクリプトを作成すると以下のような状態になっていると思います。 これをそのまま使っても、編集しても良いのですが、いつも使う名前空間などはテンプレートに入っていると楽で良いと思っていました。System.Collecti...
Android

UnityでAndroid6.0におけるパーミッションを対応する

Android6.0ではパーミッションをユーザーが任意に変えられる仕組みが導入されました。アプリによっては動かなくなるような致命的な影響を与える変更なので、一度は公式のドキュメントを見た方が良いです。 パーミッションには色々ありますが、一部...
Script

OnApplication~の挙動

OnApplication~という名前のイベント関数が3つ用意されています。MonoBehaviourを継承したクラスに特定の名前のメソッドを作ることで自動的に呼び出してくれます。 OnApplicationFocus OnApplicat...
Script

UIの位置を制御する

UIの位置を調整する場合はスクリーン座標を基準に考えるのが最も良いです。スクリーン座標とは表示するディスプレイ上でのピクセル単位の座標です。 Unityでは左下が(0,0)、右上が(幅,高さ)となるように座標を定めています。カメラのところに...
Script

待ちアニメのスキップ処理2

以前、同じ内容で記事を書いたのですが、より良い方法がUnity5.3では行えるようです。 Unity5.3で新しく使えるようになったカスタムコルーチンというものを使います。 公式の説明を見るとCustomYieldInstructionクラ...
UI

きれいなアウトラインをつける

Unity UIにはOutlineというコンポーネントがあります。 実は影をつけるエフェクトもそうなのですが、単にコピーを下に描いているだけのものです。コピーの数は上下左右で4つです。そのため描画する文字は5倍になります。 Outlineコ...
Graphics

6頂点で文字が作られる

Unity 5.2以前のUnity UIでは文字は4つの頂点で作られていました。今回5.2にアップデートしてみると文字を作るための頂点数が6つに増えていました。一文字表示するのに6つの頂点(2つの三角形)で描画することになります。 正確に言...
Script

動的なアセットの読み込み

Resources.Loadを使うと、動的にアセットを読み込むことができます。 動的にというのはシーン内に置かれていないかシーン内に置かれたゲームオブジェクトからの参照もないアセットを読み込むという意味です。 Unityはシーンに必要な全て...
Script

スクリプト上の処理時間を測る

C#でスクリプト上で重い処理を作ったとします。大きなリストの複雑なソートをするとか、大量の計算を行うといったことです。 そういったときスクリプトのある特定の部分に書いてあることが、どれくらいの時間で処理されるのかということを知りたいことがあ...