Unity/tinyモード
目次
tinyモードインストール
Unity 2018.3.0.b12以上らしい。
2019.1.6f1にはあった。
- unityメニュー/window/PackageManager
- 上のadvancedタブを選択し、"show preview packages"選択
- TinyModeがあるのでinstallする(2019.2.2のときはProject Tinyだった)
- 2019.1.6f1(2019/7/23)時点だとversionは0.14.5でした。
- 2019.2.2f1(2019/10/02)時点だとversionは0.16.1でした。
unityのメインメニューにtinyが現れることを確認
インストール後、なぜかエラー
Library/PackageCache/com.unity.tiny@0.14.5-preview/Editor/Export/TinyAssetExporter.cs(712,38): error CS1061: 'TMP_FontAsset' does not contain a definition for 'characterDictionary' and no accessible extension method 'characterDictionary' accepting a first argument of type 'TMP_FontAsset' could be found (are you missing a using directive or an assembly reference?)
参考:https://forum.unity.com/threads/i-have-a-problem-with-tiny-unity.665527/
の一番下にあるようにライブラリのTinyAssetExporter.csを書き換えるとうまくいった。
Line 713. // 変更前 foreach (var kvp in font.characterDictionary) { var ci = kvp.Value; var tinyCI = new Runtime.Text.TinyCharacterInfo(entity.Registry); tinyCI.value = (uint)ci.id; tinyCI.advance = ci.xAdvance; tinyCI.bearingX = ci.xOffset; tinyCI.bearingY = ci.yOffset; tinyCI.width = ci.width; tinyCI.height = ci.height; var min = new Vector2(ci.x / font.atlas.width, (font.atlas.height - ci.y - ci.height) / font.atlas.height); var off = new Vector2(ci.width / font.atlas.width, ci.height / font.atlas.height); tinyCI.characterRegion = new Rect(min.x, min.y, off.x, off.y); data.Add(tinyCI.Tiny); } // 変更後 foreach (var kvp in font.glyphLookupTable) { var ci = kvp.Value; var tinyCI = new Runtime.Text.TinyCharacterInfo(entity.Registry); tinyCI.value = (uint)ci.index; tinyCI.advance = ci.metrics.horizontalAdvance; tinyCI.bearingX = ci.metrics.horizontalBearingX; tinyCI.bearingY = ci.metrics.horizontalBearingY; tinyCI.width = ci.metrics.width; tinyCI.height = ci.metrics.height; var min = new Vector2(ci.glyphRect.x / font.atlas.width, (font.atlas.height - ci.glyphRect.y - ci.glyphRect.height) / font.atlas.height); var off = new Vector2(ci.glyphRect.width / font.atlas.width, ci.glyphRect.height / font.atlas.height); tinyCI.characterRegion = new Rect(min.x, min.y, off.x, off.y); data.Add(tinyCI.Tiny); }
tinyサンプルインポート
version0.14.5では
unityメニュー/tiny/import samples/
version0.16.1では
unityメニュー/window/~/Project Tiny/サンプルをimport
tinyプレイ
version0.14.5では
FlyingYolkであれば、
- FlyingYolk/FlyingYolk.utprojectを選択しするとプレイボタンが有効になる
- プレイボタンを押す
version0.16.1では
HelloWorldであれば
- Samples/Project Tiny/0.16.1-preview/HelloWorld/HelloWorld.project(Uのアイコン)をクリック
- プレイボタンを押す
tinyをbuild
File/Tiny/Build
Tiny/File/Build
でも同じ
TinyExport/FlyingYolk/html5/development/build/index.html にできている
公開するにはTinyExportを上げれば良い。その後index.html内の部分だけパスを修正すれば良い。
<script src="/~project/TinyExport/FlyingYolk/html5/development/artifacts/scripts/tsc-emit.js"></script>
↓
<script src="../artifacts/scripts/tsc-emit.js"></script>
c#対応
今までTypeScriptでしたが、0.15.3でC#に対応したようです。
https://wakky.tech/tiny-unity-samples/
https://forum.unity.com/threads/project-tiny-c-preview-0-15-3-available.688969/
tinyプロジェクト作成
http://win8kat.org/archives/1596
https://qiita.com/chocolate-ice-cream/items/4296cd76e38c69d61580