facebook twitter hatena line email

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

提供: 初心者エンジニアの簡易メモ
移動: 案内検索
(tinyサンプルインポート)
(tinyプロジェクト作成)
 
(同じ利用者による、間の17版が非表示)
行5: 行5:
  
 
#unityメニュー/window/PackageManager
 
#unityメニュー/window/PackageManager
#上のadvancedタブを選択し、showPreviewPackages選択
+
#上のadvancedタブを選択し、"show preview packages"選択
#TinyModeがあるのでinstallする
+
#TinyModeがあるのでinstallする(2019.2.2のときはProject Tinyだった)
  
2019/7/23時点だとversionは0.14.5でした。
+
*2019.1.6f1(2019/7/23)時点だとversionは0.14.5でした。
 +
*2019.2.2f1(2019/10/02)時点だとversionは0.16.1でした。
  
 
unityのメインメニューにtinyが現れることを確認
 
unityのメインメニューにtinyが現れることを確認
行17: 行18:
 
参考:https://forum.unity.com/threads/i-have-a-problem-with-tiny-unity.665527/
 
参考:https://forum.unity.com/threads/i-have-a-problem-with-tiny-unity.665527/
  
の一番下にあるように書き換えるとうまくいった。
+
の一番下にあるようにライブラリのTinyAssetExporter.csを書き換えるとうまくいった。
 +
 
 +
<pre>
 +
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);
 +
}
 +
</pre>
  
 
==tinyサンプルインポート==
 
==tinyサンプルインポート==
unityメニュー/tiny/import samples/
+
version0.14.5では
 +
unityメニュー/tiny/import samples/
 +
version0.16.1では
 +
unityメニュー/window/~/Project Tiny/サンプルをimport
  
 
==tinyプレイ==
 
==tinyプレイ==
 +
===version0.14.5では===
 +
 
FlyingYolkであれば、
 
FlyingYolkであれば、
FlyingYolk/FlyingYolk.utprojectを選択しプレイボタンを押す
+
#FlyingYolk/FlyingYolk.utprojectを選択しするとプレイボタンが有効になる
 +
#プレイボタンを押す
 +
 
 +
===version0.16.1では===
 +
 
 +
HelloWorldであれば
 +
#Samples/Project Tiny/0.16.1-preview/HelloWorld/HelloWorld.project(Uのアイコン)をクリック
 +
#プレイボタンを押す
  
 
==tinyをbuild==
 
==tinyをbuild==
行32: 行88:
  
 
でも同じ
 
でも同じ
 +
 +
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
 +
 +
==tinyのエディタ==
 +
GameObjct,MonoBehaviourではなく、DOTS環境で、エディタも"DOTSモード"といエディタになる
 +
 +
https://qiita.com/chocolate-ice-cream/items/4296cd76e38c69d61580

2019年10月4日 (金) 12:15時点における最新版

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であれば、

  1. FlyingYolk/FlyingYolk.utprojectを選択しするとプレイボタンが有効になる
  2. プレイボタンを押す

version0.16.1では

HelloWorldであれば

  1. Samples/Project Tiny/0.16.1-preview/HelloWorld/HelloWorld.project(Uのアイコン)をクリック
  2. プレイボタンを押す

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

tinyのエディタ

GameObjct,MonoBehaviourではなく、DOTS環境で、エディタも"DOTSモード"といエディタになる

https://qiita.com/chocolate-ice-cream/items/4296cd76e38c69d61580