Assets/SamplesResoType `Vuforia.VuforiaRuntime' does not contain a definition for `InitializationState' and no extension method `InitializationState' of type `Vuforia.VuforiaRuntime' could be found. Are you missing an assembly reference?

# UniteTokyo2018
先日、[UniteTokyo2018](http://events.unity3d.jp/unitetokyo2018/index.html)に参加してきました。
Day2の朝一の講演で[Vuforia](https://vuforia.com/)社の[セッション](http://events.unity3d.jp/unitetokyo2018/session-lineup.html#session12)がありました。

![vuforia.png](https://qiita-image-store.s3.amazonaws.com/0/82601/dae0cd45-0ac2-a75d-89fe-bb3eb624e9b9.png)

また、講演で紹介され、Vuforiaのブースに行くと[Vuforiaのサンプル](https://assetstore.unity.com/publishers/24484)で扱えるMars Playing Cardsをもらえて、それで試したところある手順で必ずエラーが起きる現象に遭遇したのでご紹介したいと思います。

<img src="https://qiita-image-store.s3.amazonaws.com/0/82601/9363f405-40d2-de04-5cae-86281f46d548.png" width=70%>

# Vuforia Core Samples

私の場合、以下の手順でセットアップを行いました。

* Asset Storeで[Vuforia Core Samples](https://assetstore.unity.com/packages/templates/packs/vuforia-core-samples-99026)をダウンロード
* **Supported Unity versions**に**2017.3.0 or higher**と書かれていたため、Unity2018.1.0f2をダウンロード
* Unity上からVuforiaをダウンロード
* Vuforia Core Samplesをインポート
* [vuforia Developer Portal](https://developer.vuforia.com)で会員登録を済ませ、[Getting Started with Vuforia in Unity](https://library.vuforia.com/articles/Training/getting-started-with-vuforia-in-unity.html)やググって出てきた記事を参考に、[License Manager](https://developer.vuforia.com/targetmanager/licenseManager/licenseListing)で**License Key**を発行して、Unityの**VuforiaConfiguration**の**App License Key**に設定。



そうするとエラーが1つだけ残ってしまいました。

## Assets/SamplesResoType `Vuforia.VuforiaRuntime' does not contain a definition for `InitializationState' and no extension method `InitializationState' of type `Vuforia.VuforiaRuntime' could be found. Are you missing an assembly reference?

ソースコードは↓これ

![スクリーンショット 2018-05-13 0.32.16.png](https://qiita-image-store.s3.amazonaws.com/0/82601/002bfaad-e833-c9e7-286b-2163ed33230a.png)

無理やり止めて見ても良かったけど、ググって見たら[Vuforiaのフォーラムで全く同じエラーの投稿](https://developer.vuforia.com/forum/unity/vuforia-package-not-working-unity)を見つけた。

どれも参考にならない内容だったが、どれも古いバージョンの話しで現在(2018/05/12)のVuforiaのバージョンは、最新で**Vuforia7.1.34*のようだ。

## VuforiaとUnity

フォーラムでは、

> That tutorial is probably old.  Vuforia 6.2.10 is for Unity 5.6.
> 
> When using Unity 2017.2 you need to use the version that is built in (Vuforia 6.5)

と書かれてあったため、『もしかしてUnityとVuforiaのバージョンがあっていないのか？』と思い、UnityのバージョンとVuforiaのバージョンを再確認しました。

と言ったものの、Unityのバージョンは2018.1.0f2でAsset Storeでも講演でもUnity2018.1の最新バージョンで対応できているという話しだったので大丈夫だった。

Vuforiaのバージョンを確認したところ、UnityEditor上でダウンロードしたバージョンは、**Vuforia7.1.31**だった。
最新とVuforia Core Samplesでサポートしているバージョンがどちらとも**Vuforia7.1.34**だったため、もしかしてVuforiaのバージョンが原因なのか？？と思い、**VuforiaConfiguration**を確認すると**最新にするかどうかのメッセージがエディター上に表示されていたため、またまたUnityEditor上から最新のVuforiaのバージョンをダウンロードしました。**

すると、エラーが解消され、正常にビルドできる状態になりました！

# まとめ

最初にVuforiaをダウンロードした経路が、Build Settings... > Player Settings... > XR Settings ... でVuforiaをダウンロードするかというメッセージ&リンクからでした。

おそらく、そのリンクのURLが最新のバージョンをダウンロードできない設計になっているんだと思います。
場所的には、↓ここ。

```csharp
...

if (EditorGUILayout.LinkLabel("Vuforia Augmented Reality"))
{
    string downloadUrl = BuildPlayerWindow.GetPlaybackEngineDownloadURL("Vuforia-AR");
    Application.OpenURL(downloadUrl);
}

...
```

※[PlayerSettingsEditorVR.cs](https://github.com/Unity-Technologies/UnityCsReference/blob/master/Editor/Src/VR/Mono/PlayerSettingsEditorVR.cs#L203)

後ほどフォーラムかどこかにissueを投げようかなと思いますー