(:3[kanのメモ帳]

個人ゲーム開発者kan.kikuchiのメモ的技術ブログ。月木更新でUnity関連がメイン。

C#のコンパイル時間の短縮【Unity】

この記事でのバージョン
Unity 2017.2.0f3


はじめに

Unityではコードを変更して保存すると、自動でコンパイルが実行され、

右下にコンパイル中のマークが表示されます。(Editor Console ProならCOMPILINGと表示)


f:id:kan_kikuchi:20171112115709j:plain


ゲームの規模が大きくなったり、色々なコードをアセットストアから持ってきたりすると、

このコンパイル時間も馬鹿にならなくなってきます。


なので今回はこのコンパイル時間を簡単に短くする方法のご紹介です!


Standard Assets

続きを読む

無限ループを止めるアセット「Panic Button」【Unity】【アセット】

この記事でのバージョン
Unity 2017.2.0f3


はじめに

Unityでは無限ループに陥ってしまった時にそれを止める術がありません。

頻繁に起こる事ではないとは言え、やっぱり無限ループが起きても停止出来るようにしたいですよね?

今回はそんな悩みを解消するアセット、Panic Buttonのご紹介です!





Panic Button

続きを読む

文字列がTextにピッタリ収まるサイズを取得する方法と注意点【Unity】【uGUI】

この記事でのバージョン
Unity 2017.2.0f3


はじめに

今回はタイトル通り、uGUIのTextで文字列がぴったり収まるサイズを取得する方法のご紹介です!


f:id:kan_kikuchi:20171106070439g:plain


preferredWidth, preferredHeight

続きを読む

適してないと言われたけど、試しにAssetBundleをNCBMのファイルストアで使ってみた【Unity】【AssetBundle】【NCMB】

この記事でのバージョン
Unity 2017.2.0f3
NCMB 3.1.0


はじめに

Asset Bundleをサーバーに置いてダウンロードする、というのを試してみようとしてた時に

NCBM(ニフティクラウド mobile backend)のファイルストア機能というものを思い出しました。



これを使えば簡単に実現できそうだと思ったのですが、

残念ながらファイルストア機能はAsset Bundleの配信には適していないようです。

ファイルストア機能はCDNではないため、Unity Asset Bundleを用いたファイルの配信には適しません。

ファイルストア (Unity) : 基本的な使い方 | ニフティクラウド mobile backend


適していないということは出来なくはない、という事なので物は試しにとやってみました。


なお、NCMBの登録や導入は以下の記事を参照のこと。





アップロード

続きを読む

エディタ拡張の処理終了時に音を鳴らして知らせる【Unity】【エディタ拡張】


この記事でのバージョン
Unity 2017.2.0f3


はじめに

エディタ拡張で重い処理を作った際に、処理が終わった事を知らせて欲しい時ってありますよね?

今回はそんな時に、処理の終了を音を鳴らして知らせる方法のご紹介です!


ちなみに、処理の進捗状況を知りたい場合は

EditorUtility.DisplayProgressBarを使うと良いでしょう。

f:id:kan_kikuchi:20161020133330g:plain



EditorApplication.Beep

続きを読む

Resources外にあるMultipleなSpriteを取得する【Unity】

この記事でのバージョン
Unity 2017.2.0f3


はじめに

UnityではSprite ModeをMultipleにすると1枚の画像に複数のSpriteを設定する事が出来ます。


f:id:kan_kikuchi:20171021121312j:plain
f:id:kan_kikuchi:20171021121323j:plain


この複数のSpriteを全て取得する場合は、以下のようにResources.LoadAllを使います。

//Resources直下にあるUIのSpriteを全て取得
Sprite[] uiSprites = Resources.LoadAll<Sprite>("UI");

f:id:kan_kikuchi:20171021121603j:plain


しかし、この方法はResources内に配置してある時にしか使えません。

なので、今回はResources外にあるMultipleなSpriteを取得する方法のご紹介です!


なお、記事中では以下のアセットを使っております。





AssetDatabase.LoadAllAssetsAtPath

続きを読む

1Asset = 1AssetBundleにした場合と、まとめた場合でのロード時間比較【Unity】【AssetBundle】


この記事でのバージョン
Unity 2017.2.0f3


はじめに

AssetBundleを使う上での検討事項として、

どれぐらいの規模でAssetをまとめればいいのかというものがあります。


用途や状況によって分け方は変わってくるとは思いますが、

今回はローカルからのロード時間に着目し、比較を行ってみました。


なお、記事中では以下のアセットを使っております。





比較

続きを読む

ビルド時にプラットフォームに合わせてAssetBundleを移動する【Unity】【AssetBundle】【エディタ拡張】


この記事でのバージョン

Unity 2017.2.0f3


はじめに

AssetBundleをローカルで使いたい場合は

StreamingAssetsというディレクトリに配置すると使い易いです。

StreamingAssets と呼ばれるフォルダーに配置したファイルはビルド先のプラットフォームの、特定のフォルダーにそのまま何も変換されない状態で保持されます。


ただし、StreamingAssetsに配置したファイルは全てビルドに含まれてしまいます。

AssetBundleはプラットフォームごとに作成しなければならないので、

全AssetBundleをStreamingAssetsに配置してしまうと、

プラットフォームの分だけ容量が増える事になってしまいます。


なので今回は、ビルド時にプラットフォームに合わせてAssetBundleを移動する方法のご紹介です!

当たり前ですが、エディタ上と実機でAssetBundleの位置が変わるため注意が必要です。


まぁ、エディタ上ではResources外からもファイルは読み込めるので、

エディタ上ではAssetBundleを使わないようにした方が楽です。



なお、以前に同じような話で

Resourcesにあるファイルをビルド時にのみ移動する方法というのも紹介してました。





AssetBundleMover

続きを読む