青空の月

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

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 !!!!!!!!!!!!…

エディタ拡張でメニュー追加する時のコツ

エディタ拡張でメニューに追加する時、同じ機能を別の場所に追加したい際に有効そうな技。 例えば、空のゲームオブジェクトを作る機能を追加したい時に、「Assets>Create」、「GameObject>Create Other」にメニュー追加する場合は以下の様に書ける。 //Ass…

PlayerPrefsを操作するアセット「PlayerPrefsPlugin」

PlayerPrefsを編集するアセット、「PlayerPrefsPlugin」 https://www.assetstore.unity3d.com/#/search/PlayerPrefsPlugin インポートするとメニューに「Window>Player Prefs Plugin」が追加される。 「New」を選択すると新規登録 タイプの項目はこんな感じ…

NGUIのパフォーマンス改善 UIPanelのstatic

「ゲームは初心者にやさし」さんでも紹介されている内容。 http://gamesonytablet.blogspot.jp/2012/08/ngui-iphone.html Panelに変更が無い場合は「static」をONにしとく。 動かしたり変更がある時はOFFにして変更するとパフォーマンスがあがるよって内容。…

Unityでグローバルな定数を使用したい

Unityでこんな事をやりたい。 #if MY_DEBUG_MODE //デバッグ処理 #endif 開発してる時は有効でリリースでは含めたくない処理なんかは良くあることだと思う。 1ファイル内だけなら #define MY_DEBUG_MODE とファイルの先頭で宣言すればいいけど、そのファイ…

スクリプト簡単生成アセット CreateScriptDialog

テラシュールウェアさんでも紹介されている「CreateScriptDialog」 http://terasur.blog.fc2.com/blog-entry-156.html TemplateとFunctionが簡単に指定できるので、 スクリプトを新規作成する時は重宝しているアセット。 Function名をタイプミスしないで済む…

Unityプロジェクトを簡単起動 Mac編~Automator~

Unityプロジェクトを簡単操作で開きたい。 いちいちOpenProjectで選択なんかしたくねぇよという人向け。 Mac版~Automator~ ダブルクリック1回だけで指定プロジェクトを起動出来ます。 今回はAutomatorを使用します。 完成はこんな感じ。 コードのざっくり…

Unityプロジェクトを簡単起動 Mac編(簡易版)

Unityプロジェクトを簡単操作で開きたい。 いちいちOpenProjectで選択なんかしたくねぇよという人向け。 Mac版 ダブルクリック1回だけで指定プロジェクトを起動出来ます。 拡張子を「sh」で中身はこんな感じ。 #!/bin/sh fullpath=$(cd $(dirname $0) && pw…

Unityプロジェクトを簡単起動 Windows編

Unityプロジェクトを簡単操作で開きたい。 いちいちOpenProjectで選択なんかしたくねぇよという人向け。 ダブルクリック1回だけで指定プロジェクトを起動出来ます。 拡張子を「vbs」で中身はこんな感じ。 set wsShell=WScript.CreateObject("wscript.shell"…

Editor拡張で区切り線

Editor拡張でHTMLのHRタグみたく水平線・区切り線を使いたい時。 その様なGUIは用意されていないみたいなので以下の様にして代用した。 GUILayout.Box("", GUILayout.Width(this.position.width), GUILayout.Height(1)); こんな線が引ける。 要は、高さ1のB…

Tag名やScene名を自動で定数化する

タグ名やScene名を文字型で扱わなきゃいけないので、 名前に変更があるとスクリプトで困るので定数化したい。こちらのスクリプトが参考になった。https://gist.github.com/anchan828/3cf9014a8493ab023925https://gist.github.com/anchan828/4243887 注意点…

オブジェクトの階層を全て広げる

階層が深くなってしまった場合、 アイテムを全て開げるときにALTボタンを押したままにすると、 ネストされた階層も強制的に全て広げる。 http://gamesonytablet.blogspot.jp/2012/09/unity-wiki181.html

Debug.Log の豆知識

Debug.Logや関連メソッドを使用するとき、 スクリプトのインスタンスを渡すことで ログ出力をクリックしてそのオブジェクトをエディタ上で選択状態にできる Debug.Log("This",this); http://gamesonytablet.blogspot.jp/2012/09/unity-wiki181.html

colorの初期化

Color.clearは RGBA is (0, 0, 0, 0) つまり、黒の透明になる。 http://unity3d.com/support/documentation/ScriptReference/Color-clear.html

ケリ姫スイーツみたく背景を動かす

renderer.material.SetTextureOffseを使うと簡単に実装できる。http://docs.unity3d.com/Documentation/ScriptReference/Material.SetTextureOffset.html using UnityEngine; using System.Collections; public class example : MonoBehaviour { public floa…

はてなブログでsyntaxhighlighterを使う

サイドバーにHTMLを追加して以下を入力。 // 記事を書くときにHTML編集でpreタグでコードを記述。対象言語はclassで指定する <pre class="brush:js;"> //コードを記述</pre> 対象言語を増やしたい時は読み込むjsファイルを増やせばOK。 https://github.com/alexgorbatchev/SyntaxHighlight…