青空の月

PHP, Unity, C#, アプリ開発関連について。

2013-01-01から1年間の記事一覧

UnityEditor再生時にエディターの色を変える

自分も以前、Unity勉強会で教えてもらった、エディターの色を変える方法。 変えるとこんな感じに全体の色が変わる。 設定は簡単で、Preferences>ColorsのGeneral「Playmode tint」で変更できる。 やり過ぎると文字まで潰されるので、ちょうどいい感じの色を…

端末情報を取得する

Unityで端末の情報を取得するために「SystemInfo」クラスが用意されている。実行するとどんな値が返ってくるのか試してみた。 MBPとWindowsはUnityEditorで実行した結果。 iOS端末でiPhone5やiPod Touch、iPhoneの世代は「iPhone.generation」で取得できる。…

端末固有の値を取得する

iOSは前々からUDIDは使わないようにとアナウンスしてきて、使用しているアプリはリジェクトするって発表されています。(AppBankさん) Unityではどうかというと、Unityで端末固有の値を取得するのに 「SystemInfo.deviceUniqueIdentifier」が用意されている…

Playボタン押した後のInitializeOnLoadは無視したい

Playボタンを押すと再ビルド・コンパイルされInitializeOnLoadが実行される。スクリプト更新時にInitializeOnLoadが実行されるのは良いがPlayボタン押した後は実行させない方法を考えてみた。 EditorApplication.playmodeStateChangedでイケるかと思いきやう…

来週のUnite JapanはUst放送もするらしい

昨日放送されたニコ生のUnityパラダイスでの情報。 来週4/15, 4/16のUniteは無料でUst放送されるらしい。 Ustで流してくれるのは、グリーンとオレンジの一部でブラックは流さないとのこと。買えなかった人、行けない人はこれをチェック! Ust放送については…

Unityプロジェクトのロードが終わった後にスクリプトを実行したい。

前回はUnity起動時、スクリプト更新時直後に実行する場合。 今回は、起動直後ではなく、少し遅らせてプロジェクトが読み込み終わった後に実行させたい場合の方法。 using UnityEngine; using UnityEditor; [InitializeOnLoad] public class InitOnLoad { sta…

Unity起動時のみにスクリプトを実行させる

EditorApplication.timeSinceStartupを使用して、Unity起動時のみスクリプトを実行する方法。Editor拡張機能を実装する時に役に立つ。 using UnityEngine; using UnityEditor; [InitializeOnLoad] public class InitOnLoad { static InitOnLoad() { if (Edit…

UnityEditorの起動時間を取得する(EditorApplication.timeSinceStartup)

UnityEditorの起動時間を取得する変数。「EditorApplication.timeSinceStartup」 プレイ中、ゲーム内で使える「Time.realtimeSinceStartup」と似たような機能。 どんな時に使えるかというと、InitializeOnLoadなどを使って自動で何かしらの処理をさせたい時…

スクリプトの実行順を制御する

前回、イベント関数の実行順を紹介したけど、スクリプト毎の「Awake()」を制御したい、決まったスクリプトの順でAwakeを呼んで欲しい時がある。 そんな時はUnityEditorに標準機能の「Script Execution Order」を使って設定できる。右下の「+」ボタンからス…

イベント関数の実行順

Unityでスクリプトを書いていて、MonoBehaviourがもっているイベント関数の実行順を意識することがあると思う。 「Awake()」「Start()」「Update()」はよく使うし、意識してる人も多いと思う。 公式サイトにそれ以外の関数が実行順に整理されているのでコレ…

EditorApplication.NewSceneを使ったらエラーが出た。

EditorWindowのボタンから新しいシーンを下の様に「EditorApplication.NewScene」を使って作成しようとしたらエラーが出た。 void OnGUI() { if (GUILayout.Button("NewScene", GUI.skin.button)) { EditorApplication.NewScene(); } } 思い当たるトコが無か…

AssetServerを使わずにSVNやGitを使う時の管理対象ファイル。

AssetServerを使わずにSubversionやGitを使って、バージョン管理する必要があるファイルとフォルダ。 metaファイル AssetsフォルダとProjectSettingsフォルダ これらを管理しておけば、とりあえずOK。 デフォルトだとmetaファイルは作成されないので「Edit->…

Unity 4マスターブック

「Unity マスターブック」のUnity4対応版が出てた。初心者後半から中級者向けの内容。 収録されてるサンプルゲームは中級者向けだけど、Unityのスクリプトの説明とか基礎的な事も載っているので最初から持っていても役に立ちそう。 言語はC#。フルカラーなの…

アセットバンドルのプラットフォーム間の互換性について

アセットバンドル FAQ http://docs-jp.unity3d.com/Documentation/Manual/abfaq.html#crossplatform このページにアセットバンドルのクロスプラットフォームについて載っていた。 ビルドターゲット→読み込む環境↓ スタンドアローン Webplayer iOS Android エ…

Unity3.5から4へのアップグレード時 変更&注意点 その2

前にUnity3.5から4へのアップグレード時 変更&注意点を書いたけど、ミートアップや勉強会で話されていた方がいたのを思い出したので、そちらも目を通しておくと参考になるかも。 メガ Unity ユーザーミートアップ 2012。ミートアップの内容をSlideshowでま…

Editorログについて

Debug.Logやコンソールに吐かれるUnity Editorのログを出力する場所。Unity自体が何かの影響で起動できない時は直接ログを見る必要があるのでよく使う。 コンソール上に表示されないモノにはBuildした時のアプリの内訳、テクスチャに容量何%使って何MBとか…

エディター情報の解析「Editor Analytics」

公式サイトのマニュアル見ていて気になるタイトルがあって開いてみたら期待していたものとは違っていた。Unityが情報を収集して送信しますよって機能。 開発者のための情報かとおもいきや、Unity社の為の機能か。 巡り巡って開発者の為に役立てられるんだろ…

GameObjectにコメントを残す拡張

GameObjectにコメントを残すサンプル。みんな何かしらコメント残せるようにしてるとは思うけど。 ObjectComment.cs using UnityEngine; public class ObjectComment : MonoBehaviour { #if UNITY_EDITOR public string comment = ""; #else #endif } ObjectC…

ファイル文字コードによる日本語問題の解決方法

Unityで日本語使って文字化けした経験がある人におすすめのアセット。 こちらの方が公開している「AssetPostprocessUTF8Encode」 http://debuglog.tumblr.com/post/26550984743/utf-8 UTF8(BOM付)かチェックして自動的に変換してくれる。 今までは動かして文…

Unity3.5から4へのアップグレード時 変更&注意点

公式サイトに日本語訳で3.5→4アップグレードする際の注意点がまとまっていた。 今更感はあるけど、最近のアセットストアのアセットも4.0以降必須が増えてきたし、アップグレードする人も増えてくるのかな。 と言ってもアップグレードする時の一番問題になり…

Unityでの海賊版チェック

パズドラの中国版海賊アプリというか模倣アプリとか見てると意味なんかあるのかと疑問符がつくけど簡単にチェックできるのでとりあえず入れておいて良いのではないか。 この2つでチェックが出来るようだ。 Application.genuine Application.genuineCheckAva…

ダイアログを表示する

単純なOK・キャンセルボタンが付いているダイアログを表示する。 if (GUILayout.Button("dialogを表示", GUI.skin.button)) { bool result = EditorUtility.DisplayDialog( "たいとる", "本文", "OK", "キャンセル" ); if(result) Debug.Log("OKが押されまし…

「is assigned but its value is never used」の表示を消す

変数を宣言して使用しなかった時にコンソール上にwarningとして表示される「is assigned but its value is never used」系のログを非表示にする方法。 ソースの先頭に #pragma warning disable 0414 と加えるだけで表示されなくなる。最後の数字はコンソール…

MissingScriptを探す

Unity GemsでMissingScriptを修正する プログラムが公開されていてその翻訳。 missing経験したことがある人にとっては夢の様なプログラム。 Missing Scriptsエラーの解消(前編) http://gamesonytablet.blogspot.jp/2013/03/missing-scripts.html Missing S…

HierarchyビューとProjectビューを拡張!「UnityEditorEnhancements」

こちらで公開されているアセット「UnityEditorEnhancements」を使って見た。 https://bitbucket.org/Tenebrous/unityeditorenhancements/src/8716cd3cdf0a コレを入れるとこうなる。 ・Projectビューに拡張子が表示される。Proスキンだと「FBX」は見えにくい…

Exceptionログを取得する

Exceptionログを取得する参考になったサイト http://d.hatena.ne.jp/nakamura001/20130209/1360415984 Application.RegisterLogCallbackを使用して if (type == LogType.Exception) で判別してExceptionのみを処理できる。 Exception以外の「Debug.Log()」な…

Debug.Logの制御

UnityEngine.Debugを上書きしちゃうイメージ。 http://qiita.com/items/39183e62ed2a1f52f690 購入したアセット内のログも制御できちゃうので導入しといて損は無さそう。 リリース用とデバッグ用で簡単に切り替えられるのは大きいメリット。スクリプトで制御…

チーム共通設定に.assetファイルを扱う

ゲームのプレイデータとかは「PlayerPrefs」、エディタ系のデータは「EditorPrefs」に保存すればいいんだけど、「EditorPrefs」ってプロジェクトフォルダ外に保存されるのでチーム間で共通させたい設定パラメータとかには向かない。 そんな時は「asset」ファ…

右クリックで表示されるコンテキストメニューを作る

昨日はコンポネント名の行を右クリックでのコンテキストメニュー追加してみたけど、 今度は自分で作ったEditorWindow内のコンテキストメニューを自作してみる。 こんな感じで追加される。 「GenericMenu」を使うと拡張できる。 ソースはこんな感じ。 using U…

InspectorのContextメニューを追加する

Inspectorのコンポーネント毎のコンテキストメニューを追加する方法。 コンポーネント名の行?を右クリックした時に表示されるコンテキストメニューを拡張する。 Cameraに追加する場合はこう書くと、 [MenuItem("CONTEXT/Camera/This is Camera !!!!!!!!!!!!…