読者です 読者をやめる 読者になる 読者になる

けいごのなんとか

Unityユーザーとしてのブログ。ギリギリ路線走ってます。

Unity

エディター拡張入門のWeb版を無償公開しました

エディター拡張入門を2015年の夏コミで販売開始してから7ヶ月が過ぎました。 anchan828.github.io 最近の売上について語ると、今までで700部ほど売れました。今は1日に1部は売れています。 売上スピードが鈍化してきている今、必要としている人たちにはある…

UnityEditor上でEditorWindowごとにスクショ (Mac)

こんなふうにEditorWindowまるごとスクショを撮る 表示されているEditorWindow全部スクショ ScreenCapture.Capture<EditorWindow> (); 表示されているHogeWindowスクショ ScreenCapture.Capture<HogeWindow> (); なんかEditorWindow.positionがずれてる値持ってる時があるんだけどなん</hogewindow></editorwindow>…

あれ?Application.LoadLevelAdditiveAsyncで複数シーンの非同時ロードが可能になってる?

検証で試したコード Unity4.5ではasyncOperation2.progressは0を返し続けるけど、Unity5だと0.9を返す。 using UnityEngine; using System.Collections; public class NewBehaviourScript : MonoBehaviour { AsyncOperation asyncOperation1; AsyncOperation…

特定のステートのみ実行されるコルーチン

こんな感じになるのかなー

スクリプトからスプラッシュ画像を設定

SerializedObject経由で設定することが可能です。 プロパティ名 iPhoneSplashScreen iPhoneHighResSplashScreen iPhoneTallHighResSplashScreen iPhone47inSplashScreen iPhone55inPortraitSplashScreen iPhone55inLandscapeSplashScreen iPadPortraitSplash…

Module Managerを使って自作ライブラリを読み込んでみた

[注意1] これはドキュメントに無く、推奨されていない使い方です。 [注意2] DLLを扱う方法しか調べてません。 Module Managerって? Add-On系のパッケージ(Android、iOS、WebGL...)を今後モジュールとして管理しましょうということで実装された機能 だけど…

Unity5からは"Assets/Plugins"フォルダは不要

今までは「PluginsフォルダがAssetsフォルダ直下にないといけない」仕様でした。これにより作成するプラグインのアセットが1つのフォルダ内に収まりきらずに少し残念な気持ちになったものです。 "Assets/Plugins/iOS/SocialConnector.mm" と "Assets/SocialC…

メインスレッド以外(外部からのアクセスも含む)でコンパイル中かどうかを判断する

{UnityプロジェクトROOT}/Library/ScriptAssembliesを見る。 CompilationCompleted.txtがなければコンパイル中。あればコンパイル完了済み。

AssetDatabase.StartAssetEditing

この情報はUnity Documentation Tabsでも閲覧することが出来ます Unity Documentation Tabsで閲覧する場合のURLはこちら(EN)またはこちら(JP)です まとめて編集&再インポートに使用する インポート中にダイアログを表示させるのには「EditorUtility.Dis…

コンポーネントの順番を変更する「Component Move Up」「Component Move Down」をコードで管理する

何度も「Move Up」とか押しまくるの疲れたので作ってみた Github - https://github.com/anchan828/ComponentOrderAttribute コンポーネントの「Move Up」「Move Down」をコードで自動管理 ComponentOrderAttribute ComponentOrderAttribute(uint order) 指定…

テンプレートファイルにカスタムキーワード追加

Unity.app/Contents/Resources/ScriptTemplatesにあるテンプレートファイルに自由にReplaceできるキーワードを追加する デフォルトでサポートされているのは key 説明 #NAME# 拡張子なしのファイル名に変換 #SCRIPTNAME# 半角スペース無しで拡張子無しのファ…

AssetPostprocessor

この情報はUnity Documentation Tabsでも閲覧することが出来ます Unity Documentation Tabsで閲覧する場合のURLはこちら(EN)またはこちら(JP)です スクリプトファイルを生成した時に呼び出されるOnGeneratedCSProjectFiles ドキュメント化されてないけど…

TextureImporterSettings.spriteExtrude

この情報はUnity Documentation Tabsでも閲覧することが出来ます Unity Documentation Tabsで閲覧する場合のURLはこちら(EN)またはこちら(JP)です spriteExtrudeが1の時 spriteExtrudeが16の時

Optimizing the Size of the Built iOS Player

この情報はUnity Documentation Tabsでも閲覧することが出来ます Unity Documentation Tabsで閲覧する場合のURLはこちら(EN)またはこちら(JP)です リバースエンジニアリングへの対策はしようね? Unityのデフォルト設定でそのまま Stripping Level を「S…

Caching.ready

この情報はUnity Documentation Tabsでも閲覧することが出来ます Unity Documentation Tabsで閲覧する場合のURLはこちら(EN)またはこちら(JP)です Caching.readyとLoadFromCacheOrDownload 「LoadFromCacheOrDownloadを使っているのにキャシュされない!…

AnimationClip.SetCurve

この情報はUnity Documentation Tabsでも閲覧することが出来ます Unity Documentation Tabsで閲覧する場合のURLはこちら(EN)またはこちら(JP)です propertyNameを知るには SpriteRendererのColorを操作したい時は下記のコードです。 Colorではなくm_Colo…

MonoBehaviour.OnValidate()

この情報はUnity Documentation Tabsでも閲覧することが出来ます Unity Documentation Tabsで閲覧する場合のURLはこちら(EN)またはこちら(JP)です エディタースクリプト(CustomEditorやPropertyDrawer)いらずでインスペクター上で値を変更した時のコー…

GUI.FocusControl

この情報はUnity Documentation Tabsでも閲覧することが出来ます Unity Documentation Tabsで閲覧する場合のURLはこちら(EN)またはこちら(JP)です TextFieald -> Button のとき、ボタンを押してもTextFieldにフォーカスが当たったままになる GUI.FocusCo…

Sprite.packed

この情報はUnity Documentation Tabsでも閲覧することが出来ます Unity Documentation Tabsで閲覧する場合のURLはこちら(EN)またはこちら(JP)です SpriteがSpritePackerによってAtlas化されている場合はtrueを返します。 SpritePackerの使い方

GameObject.CompareTag

この情報はUnity Documentation Tabsでも閲覧することが出来ます Unity Documentation Tabsで閲覧する場合のURLはこちら(EN)またはこちら(JP)です タグはよく「OnTriggerEnter」など衝突イベントの時に使用されます。 タグでGameObjectを判断する時、Gam…

Polygon Collider 2D

この情報はUnity Documentation Tabsでも閲覧することが出来ます Unity Documentation Tabsで閲覧する場合のURLはこちら(EN)またはこちら(JP)です Colliderの頂点を編集する コンポーネントをアタッチしただけではこのように雑なコライダーになってしま…

EditorGUIUtility.ShowObjectPicker

この情報はUnity Documentation Tabsでも閲覧することが出来ます Unity Documentation Tabsで閲覧する場合のURLはこちら(EN)またはこちら(JP)です 使い方良くわからんかったのでメモ 選択されたオブジェクトを取得するには EditorGUIUtility.GetObjectPi…

Welcome to the Unity Scripting Reference!

この情報はUnity Documentation Tabsでも閲覧することが出来ます Unity Documentation Tabsで閲覧する場合のURLはこちら(EN)またはこちら(JP)です けいごのTIPSへようこそ! ここでは私の備忘録的な情報を記載していきます。 ためになることだったり、ど…

ReorderableListの作成

AnimatorのStateなどにある、配列の位置を自由に移動させることが出来るものを「ReorderableList」というそうです。 これが使えたら便利なんだけどなーということで頑張ってみました。 まだ不十分なので近いうちに作り終えるつもり。

Unity4.2の新機能 - GameViewサイズを自由に設定

GameViewに任意のアスペクト・解像度追加 カスタムで追加されたものは「ProjectSettings/GameViewSize.asset」に保存されている それだけでは無く、複数のGameWindowを生成した時、それぞれ独立したアスペクト・解像度を指定できるようになった(これまでは…

Unity4.2.0が公開された! ~ 420個の更新点があるリリースノートを見る勇気のない人向け ~

Unity4.2.0が公開されました。リリースノートを見てもらえればわかりますが、とにかく数が多いです。420個近くあります。 なので、とりあえず「目玉」と思ったものをリストアップします (∩´∀`)∩ワーイ Windows Store Apps(以下「WSA、x86 と ARM の両方に対応…

UnityEditorのAssetBundleを取得する

アイコンとかマテリアルとかいーっぱい EditorGUIUtility.GetEditorAssetBundleで取得できる 実はEditorGUIUtility.LoadはこのAssetBundleからロードしていたりする 使う時はこんな感じ Texture2D icon = EditorGUIUtility.Load ("Icons/Generated/PrefabNor…

Animatorウィンドウを自作する ~背景の描画~

Animatorウィンドウの背景とか、StateMachineかっこいいですよね。 この背景とStateMachineを使ってEditor拡張したいですよね。 これ、実は自分で作れます。APIも用意されています。 UnityEditor.Graphs UnityEditor.Graphsがそうです 背景の表示 見て欲しい…

検索機能でサポートしているシンタックス

オブジェクト名/ アセット名 で検索 ラベルで検索 参照元で検索 インスタンスID、またはアセットのパスで検索可能。アセットのパスの場合必ず""をつけるようにする。(スクリプトの場合""がなくても問題ないが混乱を避けるため) 「Find References In Scene…

インスペクターからCustomEditorを編集するために「Edit CustomEditor Script」を追加する

標準で「Edit Script」があるので「Edit CustomEditor Script」を追加してみました。 課題はEditorScriptがない場合はコンテキストメニューに項目を出さないこと。

UnityEngine.ObjectのCustomEditorを作成する

前提知識 Unityがサポートしていない拡張子のアセットは全てUnityEngine.Objectとして扱われます UnityEngine.ObjectのCustomEditorを作成したい すべてUnityEngine.Objectとして扱われるので少し工夫が必要ですが、以下の点を抑えておけば大丈夫です Custom…

Mac版UnityでVM上のVisualStudio2010を使う

いつの間にかMac版でもVisualStudio用のslnが生成されていました。 なんか少し設定が変だったので(使い方が違う?)ちょこっと改造して使えるようにしてみた。 準備 /Applications 配下に「Microsoft Visual Studio Version Selector.app」を作成しておく -…

UnityEditorのグローバルEventを取得する

EditorApplication. globalEventHandlerを使えばEventを取得できる。

プロジェクトビューにアセットのファイルサイズを表示する

UniteJapanで話した内容の補足です。 Editor スクリプティング 入門 from Keigo Ando

ヒエラルキービューにコンポーネントのアイコンを表示する

UniteJapanで話した内容の補足です。 Editor スクリプティング 入門 from Keigo Ando

GithubにあるUnity用のMonodevelop(Mac)をビルドするまでの備忘録

正確には4.0.1に対応したMonodevelopをビルドするための備忘録 現在はこのブランチからMonodevelop4.0.1(Xamarin)に対応したのが入手できる https://github.com/Unity-Technologies/monodevelop/tree/bleeding-edge まだ正式対応じゃないけど早めに使いた…

SceneModeUtilityについて

これはドキュメント化されていないもの GetObjects public static GameObject[] GetObjects (Object[] gameObjects, bool includeChildren) 引数名 説明 gameObjects 検査するGameObject includeChildren 子要素を含むかどうか gameObjectsから関連するGameO…

Unity用のコードテンプレート書いた - UnityEditor編

Unity用のコードテンプレート書いた - UnityEngine編 Editorのやつも追加 https://github.com/anchan828/monodevelop-code-template-unity-csharp

AssetModificationProcessor - アセットの移動/削除を抑制する

UniteJapanの「Editorスクリプティング入門」の補足でもあります。 AssetModificationProcessorとはアセットをUnity内で作成/ 保存 / 移動 / 削除 を行う前に呼び出されるものです。 OnWillCreateAsset Unity内で生成されるアセット( meta ファイルや マテ…

Unity4.1の新機能 - UnityEngine.Display

これはiOSのAirPlayで動く どんなことが出来るの? このクラスは全てのディスプレイ情報を取得出来ます。 つまりマルチディスプレイにしていたらその分のディスプレイ情報が取得できる。 一般的な使い方は複数のカメラを使ってディスプレイごとに違うカメラ…

Unity4.1の新機能 - メモリプロファイラー (MemoryProfiler)

Profilerに待望のMemoryProfilerが追加されました。 Sampleを取る MemoryのSampleをDetailedにして下さい そしてTake Sampleを押すと... 無事取れました 詳細なメモリ使用量もこの通り 今のところ手動でSampleを取得する方法しかありません。

Unity4.1の新機能 - Logフィルター

お馴染みのConsoleWindowが少し新しくなりました。 右上にLogフィルターが追加されています。 「Open Editor Log」と「Open Player Log」はコンテキストメニューに移動。 この機能はNinjaCampⅥで出たアイデア http://unity3d.com/ninjacamp/projects/10040 …

SceneViewクラスについて

そろそろ誰かSceneViewクラスについて情報書いていいと思うの— けーごさん (@kyusyukeigo) 2013年3月12日 @tsubaki_t1 ふおおお— けーごさん (@kyusyukeigo) 2013年3月12日 SceneViewとは 皆さんの知っているシーンビューを表示するためのクラスです ドキュ…

Unity用のコードテンプレート書いた

毎回手打ちでそろそろ面倒くさくなってきたのでコードテンプレート作成しました。 「On」と打つと色々と候補が出ます。今回はOnRenderImageを選択 Tabを押すと はい、テンプレートが入力されます ソースはGithubにありますので参考にしてください https://gi…

UnityでEventHandler使ってみた

恥ずかしながらC#でEvent使ったことがなかったので試しに書いてみた Player 歩く / 走る ジャンプ

EditorGUI.ObjectField - UnityEngine.Texture

EditorGUI.ObjectFieldのGUIがTexture系では少し違います。 MaterialのInspectorでよく見るアレ こんな感じで幅を決めてあげるとしっくり来る EditorGUILayout.ObjectField (null, typeof(Texture2D), false, GUILayout.Width (64), GUILayout.Height (64));

UnityのためにXamarin Studioのセットアップ

参考ブログ - Xamarin 2.0 はじまりました - ものがたり 参考ブログを見る限りMonodevelopの後続4.0と考えても良さそう Xamarinが2.0になったことで、使いやすくなったとTwitterで目にしたのでインストールしてみました UnityのFeedbackにもXamarin対応しな…

UnityEditorInternal.Xcode4Controllerを使ってみる

UnityEditor.Xcode4Controller を使ってみます。( Unity4.1からはUnityEditorInternal.Xcode4Controller ) このクラスを使うには事前にXcodeを立ち上げないといけないようです SDK VersionをSimulatorにして使用するとUnityが固まります... Xcodeを立ち上げ…

UnityEditorInternal.InternalEditorUtilityを使う

ドキュメント化されていないUnityEditorInternal配下のInternalEditorUtilityの一部の機能を少し紹介します。 基本的に便利メソッド集的なポジションに居るのがInternalEditorUtilityクラス InternalEditorUtility.tags TagsManagerで設定しているタグ名を取…

補完のために...UnityC#.sublime-completions作った

補完ができるようにsublime-completionsを使ってPublicMemberだけ補完するようにしました。 本来の使い方じゃないけど、楽に作れるのでまぁいいんじゃないかな... All (UnityEngineとUnityEditorのPublicMemberを含める) UnityEngineのみ UnityEditorのみ 保…