facebook twitter hatena line google mixi email

「Unity/tinyモード」の版間の差分

提供: 初心者エンジニアの簡易メモ
移動: 案内検索
(tinyサンプルインポート)
(tinyプレイ)
行70: 行70:
  
 
==tinyプレイ==
 
==tinyプレイ==
FlyingYolkであれば、
+
version0.14.5では
#FlyingYolk/FlyingYolk.utprojectを選択しするとプレイボタンが有効になる
+
FlyingYolkであれば、
#プレイボタンを押す
+
#FlyingYolk/FlyingYolk.utprojectを選択しするとプレイボタンが有効になる
 +
#プレイボタンを押す
 +
version0.16.1では
  
 
==tinyをbuild==
 
==tinyをbuild==

2019年10月2日 (水) 10:56時点における版

tinyモードインストール

Unity 2018.3.0.b12以上らしい。

2019.1.6f1にはあった。

  1. unityメニュー/window/PackageManager
  2. 上のadvancedタブを選択し、"show preview packages"選択
  3. 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では

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/