Skip to content

mizutanikirin/KirinUtil

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

88 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

概要

KirinUtilはインスタレーション、Kinectやwebカメラなどを使用した体験型ゲームアプリや、ARアプリを作成するときにコードを簡易化できる様々な機能が入ったユーティリティAssetです。

[開発環境]

  • OS: Windows10 Pro
  • Unity: 2021.3.17f1

使い方

1. インストール(基本)

  1. Relseases から最新のunitypackageとAppData.zipをダウンロードします。
  2. unitypackageをUnityプロジェクトにインポートします。
  3. AppData.zipは解凍をして、プロジェクトファイルフォルダと同じ位置にフォルダを置いてください。
  4. iTweenをプロジェクトにiTweenをインポートください。

2. インストール(オプション)

  1. 動画再生するMovieManagerを使う場合 Menu > KirinUtil > Add Class > MovieManagerを選択して追加してください。
    MovieManagerはAVProVideoが必要です。プロジェクトに「AVProVideo」をインポートしてください。

  2. QRコードを作るQRManagerを使う場合 Menu > KirinUtil > Add Class > QRManagerを選択して追加してください。
    QRManagerは「Zxing」を使用しています。QRManagerを使う場合ここからDLしてzxing.unity.dll、zxing.unity.pdb、zxing.unity.xmlAssets/Pluginsに追加してください。

  3. 印刷をするPrintManagerを使う場合 Menu > KirinUtil > Add Class > PrintManagerを選択して追加してください。
    PrintManagerではSystem.Drawing.dllを使用しています。Assets/KirinUtil/PluginsSystem.Drawing.dllを入れてください。

※ 再度、削除したいときはMenu > KirinUtil > Rmove Classから追加したい項目を選択し追加してください。

3. Unityでの使い方

UnityEditorで適当なGameObjectを作成しInspector > Add Compoment > Utilをしてアタッチしてください。またはHierarchy > KirinUtil > Add KirinUtilからも追加ができます。追加するとUtilと同時にKRNMedia、KRNFileも追加されます。

KirinUtilで使用できる機能は下の「機能一覧」を御覧ください。一部機能はデモシーンを用意しています。Assets/KirinUtil/Demo/を御覧ください。
使用頻度の高いCompomentは以下のようにUtilのボタンから追加することができます。
Util

4. AppDataについて

AppDataフォルダにはアプリで読み込む外部ファイルが入っています。
アプリのフォルダ構造は以下を想定してScriptのデフォルトのフォルダ位置などは設定しています。

- [Release]
  ├ App ← exeなど実行ファイルを入れる場所
  │   
  └ AppData ← 外部ファイルを入れる場所
    ├ Settings ← xmlなど設定ファイル
    └ Data
      ├ Images ← 画像ファイル
      ├ Movies ← 動画ファイル
      └ Sounds ← 音ファイル

通常Unityでは外部ファイルはStreamingAssetsフォルダなどに入れることが多いと思いますが、以下の理由でAppDataフォルダに入れることにしています。(iOS, Androidの場合はImageManager, SoundManagerなどはStreamingAssetsから読み込み変更できるようになっています。)

  • exeの下に設定ファイルを置くとアプリ更新時に設定ファイルや画像など上書きされるリスクを回避するため。
  • StreamingAssetsに置くとビルド時に毎回自分でファイルを置かないといけなくなるため。
  • お客様が画像や音などをわかりやすく変更できるため。

機能一覧

Util

  • 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の判別が可能になります。

Media

  • KRNMedia
    GameObjectの作成、フェードなどGameObjectに関する関数を主にまとめたComponentです。

  • ImageManager
    外部Textureの読み込み+Image,RawImageへの割当の自動化など画像に関する関数をまとめたManagerです。

  • AlphaMediaManager
    アルファ付きのシーケンス画像再生/動画の読み込み・制御などが行えるManagerです。

  • MovieManager
    外部動画の読み込み、動画の再生/停止などの関数をまとめたManagerです。

  • SoundManager
    外部のwavファイルを簡単に読み込み、再生などコントロールができるManagerです。

  • CaptureManager
    カメラに映っている映像をキャプチャして画像保存/Texture2Dを返します。

  • QRManager
    QRコードの生成/読み取りができます。

  • PSAdjustments
    Photoshopの色調補正を再現した画像加工ができます。

Network

  • NetManager
    単純化したOSCの送信/受信やローカルIPアドレス取得などネットワーク系のManagerです。

  • HttpConnect
    UnityWebRequestを使ったGet、Postと画像送信を簡単に実装できます。

  • UDPSendManager
    UDPの送信ができます。

  • UDPReceiveManager
    UDPの受信ができます。

UI

  • 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です。

Mobile

  • SafariView
    iOS端末でSafariのWebViewを表示することができます。

Menu > KirinUtil

menu
メニューでは以下のことができます。

  • Add Class
    特別なClassの追加ができます。
  • Remove Class
    特別なClassの削除ができます。
  • AssetBundle
    • Build
      AssetBundleのBuildができます。
    • Search Prefab
      バンドル名が付けられているPrefabをConsoleに出力します。バンドル名とPrefabのパスが出力されます。
  • Vertex
    • Vertex display
      SceneViewで、選択しているGameObjectに頂点(赤)を追加して表示することができます。(頂点数が多いGameObjectの場合動作が重くなる可能性があります。)
    • Vertex hidden
      表示している頂点を非表示にすることができます。
  • About KirinUtil
    KirinUtil

Hierarchy > KirinUtil

Hierarchy
Hierarchyのメニューでは以下のことができます。

  • 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)が作成されます。
    HierarchyLine
  • Thin Line
    Hierarchyを見やすくするための区切りの細いライン(GameObject)が作成されます。(上図参考)

[Note]
Bold Line、Thin Lineは手動でも追加できます。

  • GameObject名を3文字以上の「=」にするとBold Lineになります。例:======
  • GameObject名を3文字以上の「-」にするとThin Lineになります。例:-----

Inspector拡張

Transform拡張

transform
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を削除してください。

Separator

[Header("")]と同様の使い方ができます。以下のように変数宣言すると

[Separator("MinMaxの使い方")]

インスペクターで以下のようにHeaderを使ったときよりも目立ったsubjectを表示をすることができます。
Separator

MinMax

以下のように変数宣言すると

// private変数の場合
[SerializeField, MinMaxSlider(0, 1)] private MinMax minMax;

// public変数の場合
[MinMaxSlider(0, 1)] public MinMax minMax;

インスペクターで以下のような表示をすることができます。
MinMax

Lisence

MIT License