Unity/tinyモード
tinyモードインストール
Unity 2018.3.0.b12以上らしい。
2019.1.6f1にはあった。
- unityメニュー/window/PackageManager
- 上のadvancedタブを選択し、"show preview packages"選択
- TinyModeがあるのでinstallする
2019/7/23時点だとversionは0.14.5でした。
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サンプルインポート
unityメニュー/tiny/import samples/
tinyプレイ
FlyingYolkであれば、 FlyingYolk/FlyingYolk.utprojectを選択しプレイボタンを押す
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/