ヒエラルキーに表示されるGameObjectの並び順を取得したり操作したりする方法の紹介です。 同じ階層のGameObjectは順番も保存されるようになっており、次回シーンを開き直したときも順番が変わることはありません。 GameObjectの同階層における順序はTransform.GetSiblingIndex()で...
Unity( 3 )
Category
UnityのInputManagerの設定情報をスクリプトから参照する方法のご紹介です。 キー割り当ての変更等、既存のInput機能を拡張したい場合などでお役に立てるかと思います。 ■実装方針 InputManagerの設定情報はメニューの「Edit」→「Project Settings」→「Input」から閲覧・編集...
ゲームでキーコンフィグを実装する方法の紹介です。 これが実現できれば、ユーザの設定により自由なキー割り当てを設定できるようになります。 今回は簡易的に実装してみます。 KeyConfig.cs using UnityEngine; using System.Collections; using System.Colle...
サーバと通信したり外部Assetを使ったりするときに、たびたびJSON形式のデータを扱うことがありました。 Unityで簡単にJSONを扱えるパーサとしてminiJSONがあります。 スクリプトファイル一つ追加するだけで使用できるようになります。 ■導入 miniJSONは下記GitHubにて公開されています。 htt...
オンラインゲームなどでサーバ側と通信する際、日時管理が必要になったりします。 クライアントで設定されている日時(DateTime.Now)は各端末によって少しずれていたり不正目的で意図的に変更されたりする可能性があるため、信頼すべきではありません。 サーバと同期した日時を各クライアント端末で扱えるようにしたほうが望まし...
ネットワーク通信を行うゲームにて、ネットワーク接続状態を調べる方法の紹介です。 iPhoneやAndroid端末など電波状況によって圏外になったり、ユーザから機内モードに設定されたりする可能性があります。 ここでネットワークの接続状態をチェックしておけば状態に応じた処理が可能です。 接続状態はApplication.i...
Unityで作成したゲームをWebGLとしてApacheのWebサーバで公開する手順のメモ書きです。 従来はUnityで作成したゲームをWebブラウザ上でプレイする場合、Unity Web Playerプラグインをユーザにインストールしてもらう必要がありました。 しかし、Unity5よりWebGL形式でのビルドが可能に...
インスペクタのコンポーネントの以下歯車アイコンをクリックすると、コンテキストメニューが表示されます。 ここに以下のように独自の項目を追加し、項目をクリックすると自前のメソッドを実行させるようにすることができます。 手順は至って簡単です。 項目に表示したいメソッドの前に以下のようなContextMenu属性を記述します。...
ゲーム制作でキーコンフィグをユーザ側から設定する機能を実装しようと思うようになりました。 たとえばメニューの決定ボタンや弾を発射するボタンの割り当てをゲーム内の設定画面から変更できるようにする機能です。 Unityの機能でこれらを実現できないかどうかを調べてみました。 結論から言うとそのような機能は無いです。 ただし、...
前回の記事でUnityのスクリプトテンプレートを書き換える方法を紹介しました。 しかし、上記にはいくつかの問題点が存在します。 ・インストールされたUnity全体に影響が及ぶ ・共同開発では各々のPCで設定する必要あり ・1台のPCで異なるテンプレートを併用することが出来ない テンプレートの変更はインストールされ...