Tango

Tango is out of date になる

問題

Tango Exampleをビルドして実行すると,Tango is out of dateと表示される.

いつもなら右上に出る,Sceneを切り替えるButtonも全て消え去っている.
とてもつらい.

環境

Tango Unity Example : 2017/07/11 に落としてきた版

端末 : ZenFone AR ZS571KL 64GB

Tango Core Version : 1.51

原因

Tango is out of date ということで, Tango Core のバージョンが古いということが想像できる.

一応コードも見てみる.

TangoPresentController.cs
        if (!AndroidHelper.IsTangoCorePresent())
        {
            tangoState = TangoState.NotPresent;
        }
        else if (!AndroidHelper.IsTangoCoreUpToDate())
        {
            tangoState = TangoState.OutOfDate;
        }
        else
        {
            tangoState = TangoState.Present;
        }
TangoAndroidHelper.cs
    internal const int TANGO_MINIMUM_VERSION_CODE = 14694;

<中略>

    /// <summary>
    /// Check if the Tango Core package is up to date.
    /// </summary>
    /// <returns><c>true</c> if the Tango Core is up to date; otherwise, <c>false</c>.</returns>
    public static bool IsTangoCoreUpToDate()
    {
#if UNITY_EDITOR
        return true;
#else
        AndroidJavaObject tangoObject = GetTangoHelperObject();

        if (tangoObject != null)
        {
            int rawCode = tangoObject.Call<int>("getTangoCoreVersionCode");

            // The first two digits of the version code are actually the Platform version.  The real
            // code is actually the integer following those.
            string stringCode = rawCode.ToString().Remove(0, 2);
            int realCode;
            if (int.TryParse(stringCode, out realCode))
            {
                return realCode >= TANGO_MINIMUM_VERSION_CODE;
            }
        }

        return false;
#endif
    }

getTangoCoreVersionCodeで取得できるバージョンの頭2桁はプラットフォームバージョン,
その後ろに続く整数が実際のTangoのバージョンであるということが分かった.

そして,想像どおりこのgetTangoCoreversionCodeで返る値が14694より低いことが問題だろうということが分かった.

対策

Tango Core を更新する.

ヒント

2017/07/12 現在,「Tango」でストア検索すると,Tango用の検索結果画面になってしまい,Tango Coreが見当たらない.

「Tango Core」で検索する必要がある.

解決

Tango is available! となった.

2017/07/12 時点での Tango Core バージョンは 1.55 となった.

蛇足

たぶん,アプリの自動更新をONにして,普通に使っていれば,この問題は起きないと思う.

たまにはTango端末を触ろう!

追記 - 2017/07/12 16:05

RawVersionを取って表示した.

Tango Core Version 1.55 1.54 1.53 1.51
Tango Raw Version 0016802 0016016 0015395 0014693

上表では,Platform versionである上2桁を削っている.

現在のTango Exampleを触るには少なくとも1.51よりは新しい必要がありそうだ.


ところで,Zenfone ARではPlatform versionが24,Phab2 Proでは23となっていた1

古いTango端末をお持ちの方が居たらこの値の変化をぜひ確認いただきたい.






  1. Phab2 ProのTango Core Versionを1.55にしたら,Raw Versionは230016802となった.