テラシュールブログ

旧テラシュールウェアブログUnity記事。主にUnityのTipsやAR・VR、ニコニコ動画についてのメモを残します。

エディタ拡張・エディタ機能

【Unity】シーンの一括展開を行うSceneSet

Unity 5.5からシーンの一括展開を行う「エディタ機能の」SceneSetが追加されました。 SceneSet SceneSetの設定 SceneSetの作成 感想 関連 SceneSet SceneSetは、シーンの展開を一括で行うエディタの機能です。 例えば複数のシーンを幾つかの組み合わせで開く…

【Unity】Unity 5.5からオブジェクト選択がアウトライン方式になった

Unity 5.5からオブジェクトの選択方式が「アウトライン」になりました。以前は選択中の情報はワイヤー表現でしたが、アウトラインになったことで複雑なシーンでも選択しやすくなったんじゃないかなと思います。 アウトラインの色を変える アウトラインからワ…

【Unity】Rigidbody2Dがスリープになったかどうか確認する

物理演算はスリープしてCPUを節約する 物理演算は複雑な当たり判定と物理的な動作のシミュレーション(再現)を行います。ただゲームのCPUにも限度という物があるため、物理演算はたいてい接触しない・動かないオブジェクトはスリープ状態へ移行する機能を持…

【Unity】Excel Importer Maker、xlsxに対応

今まで出来なかったxlsxのインポートですが、出来るようになりました。 特に設定するような事は無く、xlsと同じような感じでxls importer makerを開いて貰えばインポーターを作れます。 (ブランチ切って改良してくれた方に感謝) それと、WindowsでExcel開…

【Unity】uGUIのコードを編集して動作を改変する

今回はUnityの標準UIシステムであるuGUIの改造方法についてです。 uGUIのコンポーネントを改造する バックアップ uGUIのプロジェクトを取得 プロジェクトの設定 更新されたか確認する デバッグする 注意事項 関連 uGUIのコンポーネントを改造する uGUIの各コ…

【Unity】複数のAssetBundleから参照されるアセットを見つけ出す

AssetBundleにて「AssetBundle一つにつきPrefabを一つ格納」といった感じで設計している場合、一見Prefabのアセットのみが格納されているように見えますが、実際は「Prefabが参照しているすべてのアセット」が含まれます。 といった内容が以前書いた【Unity…

【Unity】コンパイル時についでにテストも行う設定

ソースコードを書いた際、コンパイラが判断出来ないコードや文法的な間違いがあった場合、コンパイラがエラーとして指摘してくれます。コンパイラエラー以外でも、インスタンスを設定されていないオブジェクトを使用するとか、そういった単純なエラーはコン…

【Unity】CPUプロファイラでパフォーマンスを改善する 前編

ゲームを作っているうちに、何か重い的な事もあるかもしれません。そんな時、プロファイラを使用して重い部分を発見・改善する必要があります。 Unityの標準プロファイラはXcodeのInstrumentsよりも精度で劣りますが、サクっと確認する上では結構使い勝手の…

【Unity】プロジェクト内のScriptableObjectを見つける方法

エディタ拡張でエディタ機能を拡張している際、データを保存したくなる事が多々あります。そこでScriptableObjectが大活躍する(ハズ)なのですが、プロジェクト内の「特定のフォルダに格納」といった扱いは微妙にイケていない気がします。 凄く手っ取り早い…

【Unity】C# Project Generationで標準namespaceを設定したり、アセットを参照してるシーン・プレハブをIDEから検索かけたり。

何時ごろからか、Unityのエディタ設定に追加されていた「C# Project Generation」の機能について紹介します。 この機能は簡単に言えば、MonodevelopやVisual Studioに関連する機能で、生成するスクリプトにNamespaceを付与したり、IDEから識別することが出来…

【Unity】マルチシーン編集する際に知っておきたい、複数のシーンに跨ったライトマップを操作した時の挙動について

今回はマルチシーン編集(Multi Scene Editing - MSE)による複数シーン編集とライトマップについてです。 Unity 5.3より複数のシーンを同時に編集可能になりました。これにより広大なシーンを複数のシーンに分割し段階的に構築する事や、屋根や壁といった編…

【Unity】AnimationClipのMissingなパスを見つけて解決しやすくするエディタ拡張

昨日の応用で、アニメーションするオブジェクトでmissingになっているパスを発見し置換するエディタ拡張を作ってみました。 missingなAnimationClip missingなアニメーションを見つける missingなパスを置換する 導入とソースコード 使い方 感想 関連 missin…

【Unity】AnimationClipからTransformを操作するのアニメーションカーブを一括で消すエディタ拡張

アニメーションクリップからTransformのアニメーションを一括で消すエディタ拡張についてです。Animationを使用する目的のある程度はTransformの更新だと思うので必要かどうかは微妙な所ですが、一応。 TransformをAnimationClipから消すエディタ拡張 Transf…

【Unity】5.3に追加されたマルチ・シーン・エディティングで出来る事

今回はマルチシーンエディティングについてです。 マルチシーンエディティング ステージやギミック毎にシーンを分割して同時編集 ステージを複数のシーンに分割して編集・平行構築 シーン毎にUIを作成して加算読込とか管理 本番シーンに機能を移植 マルチシ…

【Unity】マテリアルのInspector表示を拡張するエディタ拡張

Materialの、正確にはShaderのInspectorを拡張するエディタ拡張についてです。下のように、マテリアルの設定について情報を追加したり、入力内容を整理したりすることが可能になります。 MaterialのInspectorを変更するテスト pic.twitter.com/sppjoZ3tjx — …

【Unity】UnityEditorからテキストファイルを作る

Unityでゲームを作ってるとき、ふとしたメモをプロジェクト内に残したい時(ReadMeを作りたい時)等があったりします。そんな時に取れる方法としては、秀丸を立ち上げて保存してUnityプロジェクト内にドラッグ&ドロップする訳ですが、別アプローチとしてUni…

【Unity】Unityでマルチディスプレイする方法

Unity 5.3でマルチディスプレイに対応したので、マルチディスプレイする方法について紹介します。 マルチディスプレイのための準備 マルチディスプレイを設定する カメラを複数台設定する マルチディスプレイを有効化する マルチディスプレイにおけるマウス…

【Unity】Inspectorに数式を書く

数式の入力 変数は無い 数式を使える入力項目 文字列の結合は 数式の入力 Unityの何時だったか、Inspectorで式を書くと答が入力出来るようになりました。数値を入力する項目であれば、式を記述すれば回答が入力されます。 当然、括弧の演算も使用することが…

【Unity】Unity4で書いたコードをUnity5向けに変換する「Script Updater」

Unity 4とUnity 5はAPIが幾つか異なる Script UpdaterによるUnity 5対応 アセットのインポート以外でもお目にかかるケース Script Updateに頼らない No Thanksした後でScriptUpdaterを起動したい Assembly UpdaterでDLLをUnity5向けに変換 Script Updaterの…

【Unity】オブジェクトからオブジェクトへコンポーネントを移動する

UnityのInspectorからComponentがD&Dで別のGameObjectにコピーできるようになってる、すげー便利! #unitytips — 癸シキ (@saishiki) 2015, 10月 27 という機能があったそうで、実際試した処… おぉ、これは気づかなかった。コンポーネントを別のオブジェクト…

【Unity】タグやレイヤー表示を階層構造にする

先日の#UnityTipsで「タグやレイヤーの表示を階層構造にする」といった面白いTipsが紹介されていました。 It's #unitytips Tuesday: Create submenus in the tags & layers dropdown by using a slash in the name! @unity3d pic.twitter.com/wBYT3bxYOC — B…

【Unity】シーンの「追加読込」と、追加読込したシーンの「破棄」

Unity 5.2よりLoadLevelAdtiveでロードしたシーンのアンロード(破棄)が可能になりました。 今までは「LoadLevelAditiveやResourcesからオブジェクトを取得」し、「SceneManagerに親オブジェクトを登録」「不 要になったら親オブジェクトごと消す」のような…

【Unity】コンポーネントの順番を並び替える「Reorder My Components」

「Reorder My Components」はオブジェクトにアタッチされているコンポーネントの順番を簡単に書き換えられるエディタ拡張です。 Reorder My Components このエディタ拡張は正確には「選択中のオブジェクトにアタッチされているコンポーネントの順番を、ドラ…

【Unity】エディタ拡張で作成したカスタムウィンドウがエラーで操作出来なくなった時の対処法

例えばエラー等を起こしてカスタムウィンドウが動かせなくなる事があります。こうなると、右上の「x」ボタンとか効きません。 対策 右上のLayoutよりDefaultとか選択すれば直ります。少なくともウィンドウは消えます。

【Unity】ゲーム起動直後に1度だけ処理を行う

ゲーム起動時に1度だけ処理を行います。 サンプル 今回は解像度を半分にする処理に使用します。これはStartやAwakeでやった場合、そのコンポーネントを持つオブジェクトが呼ばれるたびに解像度が半分になる…といった挙動になるためです。なので1回しか起動し…

【Unity】ScriptableSingletonでエディタウィンドウ間の情報共有

目次 目次 エディタは値を忘れる ScriptableSingletonを使う 感想 エディタは値を忘れる Unityエディタは実は物忘れが激しいです。 何が言いたいかと言えば、エディタウィンドウ等で使用されているstaticな変数を「ゲームの再生時やコンパイル時に忘れる」と…

【Unity】シーン再生中にオブジェクトを調整し、シーン再生終了時も調整内容を保持する

今日のセミナーでチラっと話した「Unityでシーン再生中にオブジェクトを調整し、シーン終了時も調整内容を保持する方法」について書きます。 Unityでシーン再生中にオブジェクトを調整し、シーン再生終了時も調整内容を保持する pic.twitter.com/MAlYSR1jib …

【Unity】オブジェクトの大きさを一括で変更する

オブジェクトのサイズを一括で変更します。 これは「ゲームのサイズを適正なサイズに設定する」事に特に効果があります。 Unityのボックスの1は1mとして扱われています。このため、物理演算を2dチックなゲームに組み込むと動きが「ふわっと」や「モッサリ」…

【Unity】Unityの内部APIを確認する方法、呼び出す方法

Unityを触っている上で、この機能はどのように実装されているのかや、公開されていないAPIを呼び出したい事があります。 その辺りの話です。 Unityの中のAPIを確認する アセンブリブラウザでUnityエディタの中のコードを確認します。 MonodevelopでSolution…

【Unity】UIだけ表示するScene Viewを作った

UIだけ表示するシーンビューを試しに作ってみました。右上の画面がUIのみを表示するシーンビュー、左上がUIを表示しないシーンビューです。 UnityでUIのみシーンビューとUI以外シーンビューとゲームビュー pic.twitter.com/wByCx29Po3 — 椿 (@tsubaki_t1) 20…