「Unity/tinyモード」の版間の差分
(→tinyをbuild) |
(→tinyプロジェクト作成) |
||
(同じ利用者による、間の16版が非表示) | |||
行5: | 行5: | ||
#unityメニュー/window/PackageManager | #unityメニュー/window/PackageManager | ||
− | # | + | #上のadvancedタブを選択し、"show preview packages"選択 |
− | #TinyModeがあるのでinstallする | + | #TinyModeがあるのでinstallする(2019.2.2のときはProject Tinyだった) |
− | 2019/7/ | + | *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. | + | #FlyingYolk/FlyingYolk.utprojectを選択しするとプレイボタンが有効になる |
+ | #プレイボタンを押す | ||
+ | |||
+ | ===version0.16.1では=== | ||
+ | |||
+ | HelloWorldであれば | ||
+ | #Samples/Project Tiny/0.16.1-preview/HelloWorld/HelloWorld.project(Uのアイコン)をクリック | ||
+ | #プレイボタンを押す | ||
==tinyをbuild== | ==tinyをbuild== | ||
行38: | 行94: | ||
公開するにはTinyExportを上げれば良い。その後index.html内の部分だけパスを修正すれば良い。 | 公開するにはTinyExportを上げれば良い。その後index.html内の部分だけパスを修正すれば良い。 | ||
− | /~project/TinyExport/FlyingYolk/html5/development/artifacts/scripts/tsc-emit.js | + | <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にはあった。
- 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
tinyのエディタ
GameObjct,MonoBehaviourではなく、DOTS環境で、エディタも"DOTSモード"といエディタになる
https://qiita.com/chocolate-ice-cream/items/4296cd76e38c69d61580