青空の月

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

unity

Unityで使用しているフォルダ一覧

Unityで使っているフォルダ、UnityのAPIで取得できるパスをまとめてみた。たまにフォルダを開きたくなる時があるのでこういうEditor拡張があると便利だと思う。AssemblyPathなんて使わないと思うけど。 思いついたフォルダはリスト化してみたけど、多分こん…

テキスト形式シーンファイルのフォーマット

Unity Proでは、テキスト形式で保存ができる。Editor SettingsのAsset SerializationでForce Textを選択するとテキスト形式で保存される。 テキスト形式で保存した時のSceneファイルはYAML形式になっている。公式サイトに詳しく載っている。 http://docs-jp.…

再生中にスクリプト編集しちゃった時に自動で停止させる

Unity Editor上でプレイ中にスクリプトを修正してUnityにフォーカスしてビルドが始まっちゃう→エラーになるって事をよくやってしまう。 自分はスクリプトを編集したら、再生ボタンを押して最初からやるので、どうせエラーになるならプレイ中にスクリプトをい…

LogcatViewer申請にかかった時間とリジェクト理由

今回、申請から販売開始までにかかった時間はこんな感じだった。 4/27(土)19:20 初申請 5/4(土)5:50 返信あり。キー画像に使用していたAndroid RobotがNG。 5/4(土)13:20 キー画像からAndroid Robot消して再申請。 5/8(水)7:30 審査OKのメールがきた。販売開…

LogcatViewer販売開始

AssetStoreで販売開始しました。 今回はAndroid向けのアセット。 実機でログを確認する時にEclipseを起動したり、コマンドラインでSDKの機能を使うと思いますが、それをUnityで確認するアセットです。 名前はそのまんま「LogcatViewer」です。無くてもいいけ…

Unityロゴの使用ガイドライン

identity.zip Unityのロゴを使用したい場合、公式でどうなってるかググったけど、サイト上には見つけられなかったけど、フォーラムの質問でUnityのクリエイティブプログラマーが回答していたので、コレを読んで許可範囲内で使えば良いみたい。 ロゴ自体を変…

AssetStore販売についてリンクまとめ。

01.Asset Storeで販売する前に知っておくこと 公式のガイドラインについて。 02.Asset Storeアカウント作成 「Asset Store Tools」をインポートして、AssetStoreアカウントの作成。 03.販売者アカウント(Publisher Account)の設定 販売者情報の設定。 04.Ass…

AssetStore審査結果(落ちた)

審査結果はメールで届くみたい。 今回はこんな文面のメールが届いた。 Hi there, Thanks very much for your submission to the Asset Store. Sorry, we cannot accept this without documentation. Kind regards, The Asset Store Team NGの理由はドキュメ…

Asset販売用の管理画面について

販売用の管理画面について 販売用の管理画面のURLはこれ。AssetをSubmitする前に見れるようになっていたがSubmitするまでは特にやることも見るものもない。 https://publisher.assetstore.unity3d.com/ アセット登録画面のPreviewを押したタイミング、Submit…

Asset情報記入から申請まで

画像も作成したので、アセット情報を入力して申請する。 Description まず日本語で書いてそれをグーグル翻訳で英語にする。これが一番時間かかった。 英語にするだけでなく、英語にしたのを和訳して意味が分かるか確認すると良い気がする。 記述方法はアセッ…

AssetStoreで販売するために必要な画像

アセットストアで顔となる画像について。 ガイドラインにあるようにAssetStoreでアセットを紹介するために必須な画像は3種類ある。 big - 860 x 389 small - 200 x 258 icon - 128 x 128 この画像を作成するためのテンプレートがすでに用意されているのでそ…

Asset登録画面 入力項目について

前回のPublisher Accountを設定すると左上のPackageボタンが押せるようになるので[Create new]を選択する ここに登録するアセットの情報を入力する。

販売者アカウント(Publisher Account)の設定

前回はAssetStoreのアカウントを作成した。 次は、販売するためのアカウント設定を行う。ちょっと紛らわしいけど、各Assetの説明ページの販売者名をクリックしたページに表示される情報になる。 この販売者アカウントの設定を行わないとアセットの登録ができ…

Asset Storeアカウント作成

AssetStoreで販売する為にやること。 まず、Unityが公開している「Asset Store Tools」をImportする。 https://www.assetstore.unity3d.com/#/content/115 アセットを申請したり 、必要な機能は「Asset Store Tools」に詰まっている。 インポートすると、メ…

Asset Storeで販売する前に知っておくこと

UniteJapanで聞いた話だと日本人でアセットストアで販売している日本人はまだ10人くらいらしい。販売する方法とかググってもまだ出てこないのが原因の気もするのでとりあえず試しにAssetを登録してみたので、備忘録的に申請方法を載せてみる。 個人的には…

EzSMTPMailer 販売開始しました

アセットストアで販売開始しました。 Yahoo!メールとかGmailのSMTPを使ってUnityからメールする機能を簡単に実装できるよってモノです。 エンジニアなら自作できるような機能だけど、時短できればいいのかな。 コレを登録した一番の目的はアセットストアに登…

Build Report Tool

役に立ちそうなアセットを見つけたので備忘録的に紹介 Build Report Tool おそらく、Buildした時にログに出るビルド情報を解析してレポート形式にしてくれるAssetだと思う。 50MBに抑えたい、何のリソースが容量を喰っているか気になる時にグラフィカルに…

enumの値をランダムで取得する

enumの値をランダムで取得する方法。 C#のLinqを使ってランダム取得する。結構、汎用的に使えそうなのでUtilityクラスにでも入れとくといいかも。 using UnityEngine; using System.Collections; using System.Collections.Generic; using System; using Sys…

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

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

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

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

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