KirinUtilはインスタレーション、Kinectやwebカメラなどを使用した体験型ゲームアプリや、ARアプリを作成するときにコードを簡易化できる様々な機能が入ったユーティリティAssetです。
[開発環境]
- OS: Windows10 Pro
- Unity: 2021.3.17f1
- Relseases から最新のunitypackageとAppData.zipをダウンロードします。
- unitypackageをUnityプロジェクトにインポートします。
- AppData.zipは解凍をして、プロジェクトファイルフォルダと同じ位置にフォルダを置いてください。
- iTweenをプロジェクトにiTweenをインポートください。
-
動画再生するMovieManagerを使う場合
Menu > KirinUtil > Add Class > MovieManager
を選択して追加してください。
MovieManagerはAVProVideoが必要です。プロジェクトに「AVProVideo」をインポートしてください。 -
QRコードを作るQRManagerを使う場合
Menu > KirinUtil > Add Class > QRManager
を選択して追加してください。
QRManagerは「Zxing」を使用しています。QRManagerを使う場合ここからDLしてzxing.unity.dll、zxing.unity.pdb、zxing.unity.xml
をAssets/Plugins
に追加してください。 -
印刷をするPrintManagerを使う場合
Menu > KirinUtil > Add Class > PrintManager
を選択して追加してください。
PrintManagerではSystem.Drawing.dll
を使用しています。Assets/KirinUtil/Plugins
にSystem.Drawing.dll
を入れてください。
※ 再度、削除したいときはMenu > KirinUtil > Rmove Class
から追加したい項目を選択し追加してください。
UnityEditorで適当なGameObjectを作成しInspector > Add Compoment > Util
をしてアタッチしてください。またはHierarchy > KirinUtil > Add KirinUtil
からも追加ができます。追加するとUtilと同時にKRNMedia、KRNFileも追加されます。
KirinUtilで使用できる機能は下の「機能一覧」を御覧ください。一部機能はデモシーンを用意しています。Assets/KirinUtil/Demo/
を御覧ください。
使用頻度の高いCompomentは以下のようにUtilのボタンから追加することができます。
AppDataフォルダにはアプリで読み込む外部ファイルが入っています。
アプリのフォルダ構造は以下を想定してScriptのデフォルトのフォルダ位置などは設定しています。
- [Release]
├ App ← exeなど実行ファイルを入れる場所
│
└ AppData ← 外部ファイルを入れる場所
├ Settings ← xmlなど設定ファイル
└ Data
├ Images ← 画像ファイル
├ Movies ← 動画ファイル
└ Sounds ← 音ファイル
通常Unityでは外部ファイルはStreamingAssetsフォルダなどに入れることが多いと思いますが、以下の理由でAppDataフォルダに入れることにしています。(iOS, Androidの場合はImageManager, SoundManagerなどはStreamingAssetsから読み込み変更できるようになっています。)
- exeの下に設定ファイルを置くとアプリ更新時に設定ファイルや画像など上書きされるリスクを回避するため。
- StreamingAssetsに置くとビルド時に毎回自分でファイルを置かないといけなくなるため。
- お客様が画像や音などをわかりやすく変更できるため。
-
Util
計算を簡略化や位置の変更などする関数が使えます。 -
KRNFile
KRNFileにはファイルを扱うときに簡略化できる関数を用意しています。 -
Log
EditorのConsoleに表示される内容をuGUIのtextに表示可能、htmlとして保存することができます。 -
PrintManager
PrintManagerでは印刷関連の関数を使うことができます。 -
ProcessManager
ProcessManagerでは外部アプリを実行/終了制御ができる関数を集めたComponentです。 -
Timer
Timerはいわゆるタイマーの機能を持っているComponentです。 -
CountDown
カウントダウンを簡単に実装できます。 -
PlayerPrefs2
PlayerPrefs2はPlayerPrefsを拡張したスクリプトです。 -
BillBoard
GameObjectが常に指定したカメラの方向を向きます。 -
StartMultiDisplay
アプリが複数ディスプレイで表示できるようにします。 -
WindowSize
アプリのウィンドウを指定した位置、大きさにします。また最小化、最小化前のウィンドウ表示に戻すことができます。 -
StopTween
GameObjectがOnDisable()、OnDestroy()したときにiTweenを止めます。 -
AssetBundleManager
LocalにあるAssetBundleの簡易的な読み込みをします。 -
FlickManager
横方向のFlickの判別が可能になります。
-
KRNMedia
GameObjectの作成、フェードなどGameObjectに関する関数を主にまとめたComponentです。 -
ImageManager
外部Textureの読み込み+Image,RawImageへの割当の自動化など画像に関する関数をまとめたManagerです。 -
AlphaMediaManager
アルファ付きのシーケンス画像再生/動画の読み込み・制御などが行えるManagerです。 -
MovieManager
外部動画の読み込み、動画の再生/停止などの関数をまとめたManagerです。 -
SoundManager
外部のwavファイルを簡単に読み込み、再生などコントロールができるManagerです。 -
CaptureManager
カメラに映っている映像をキャプチャして画像保存/Texture2Dを返します。 -
QRManager
QRコードの生成/読み取りができます。 -
PSAdjustments
Photoshopの色調補正を再現した画像加工ができます。
-
NetManager
単純化したOSCの送信/受信やローカルIPアドレス取得などネットワーク系のManagerです。 -
HttpConnect
UnityWebRequestを使ったGet、Postと画像送信を簡単に実装できます。 -
UDPSendManager
UDPの送信ができます。 -
UDPReceiveManager
UDPの受信ができます。
-
BalloonMessageManager
uGUIで吹き出しメッセージを作ることができます。 -
DialogManager
uGUIでダイアログを作ることができます。 -
SlideManager
uGUIで画像/動画のスライドを簡単に作ることができます。 -
UILine
uGUIのImageでラインを引きます。 -
SetDropDownScrollPosition
デフォのDropDownだとDropDownを開くときスクロールの初期位置が一番上になっていますが、SetDropDownScrollPositionを使うと選択した位置にスクロールして表示されます。 -
InputSlider
InputFieldを持ったSliderを簡単に導入できます。 -
ToggleButton
ButtonをToggleのようにOn/Offを切り替えられるようになります。 -
UIDragManager
UIのImageをドラッグアンドドロップできるようにした機能です。指定GameObjectに吸着させたりもできます。 -
VerticalText
TextMeshProを縦書きに表示できる機能です。 -
SetTMP
xmlなどで設定したTextの色、アウトラインなどを、指定したTextMeshProに簡単に適用するClassです。
- SafariView
iOS端末でSafariのWebViewを表示することができます。
- Add Class
特別なClassの追加ができます。 - Remove Class
特別なClassの削除ができます。 - AssetBundle
- Build
AssetBundleのBuildができます。 - Search Prefab
バンドル名が付けられているPrefabをConsoleに出力します。バンドル名とPrefabのパスが出力されます。
- Build
- Vertex
- Vertex display
SceneViewで、選択しているGameObjectに頂点(赤)を追加して表示することができます。(頂点数が多いGameObjectの場合動作が重くなる可能性があります。) - Vertex hidden
表示している頂点を非表示にすることができます。
- Vertex display
- About KirinUtil
KirinUtil
- Add KirinUtil
Util.csをアタッチしたGameObject(KirinUtil)が作成されます。 - Group Object
空のGameObjectが作成されます。そのGameObjectは現在Hierarchyで選択中のGameObjectの下部階層にPosition:(0,0,0)、Roatetion(0,0,0)、Scale(1,1,1)で作成されます。(Hierarchyで選択していない場合はRootに作成されます。) - GroupUI Object
RectTransformの付いたUI用の空のGameObjectが作成されます。そのGameObjectは現在Hierarchyで選択中のGameObjectの下部階層にPosition:(0,0,0)、Roatetion(0,0,0)、Scale(1,1,1)で作成されます。(Hierarchyで選択していない場合はRootに作成されます。) - Button - NoText
Button内部にText/TextMeshProがない純粋なButtonを作成します。 - Bold Line
Hierarchyを見やすくするための区切りの太いライン(GameObject)が作成されます。
- Thin Line
Hierarchyを見やすくするための区切りの細いライン(GameObject)が作成されます。(上図参考)
[Note]
Bold Line、Thin Lineは手動でも追加できます。
- GameObject名を3文字以上の「=」にするとBold Lineになります。例:======
- GameObject名を3文字以上の「-」にするとThin Lineになります。例:-----
InspectorのTransformのPosition, Rotation, Scaleを初期化できるボタンを作っています。
Pボタンを押すとPositionが(0,0,0)に、Rボタンを押すとRotationが(0,0,0)に、Sボタンを押すとSCaleが(1,1,1)になります。初期化はlocalな値になります。
※こちら機能が必要ない場合は/Assets/KirinUti/Editor/TransformInspector.cs
を削除してください。
[Header("")]と同様の使い方ができます。以下のように変数宣言すると
[Separator("MinMaxの使い方")]
インスペクターで以下のようにHeaderを使ったときよりも目立ったsubjectを表示をすることができます。
以下のように変数宣言すると
// private変数の場合
[SerializeField, MinMaxSlider(0, 1)] private MinMax minMax;
// public変数の場合
[MinMaxSlider(0, 1)] public MinMax minMax;