[AWS] Unity5.3 で AWS Mobile SDK for Unityをインポートした際に出るエラーを修正する

# こないだ
2週間くらい前に[Unity5.3](http://blogs.unity3d.com/jp/2015/12/08/unity-5-3-all-new-features-and-more-platforms/)がreleaseされました。

早速アップデートして[AWS Mobile SDK for Unity](https://github.com/aws/aws-sdk-unity)を使ってみようと思ったらワーニングと**エラーが出ました** :disappointed_relieved: 

というわけで、**修正方法を調べました**。

## 環境

環境は、`OSX(10.11.2)`、`Unity5.3.04f`、`aws-unity-sdk-2.1.0.0`です。
インポートしたパッケージは、`aws-sdk-unity-lambda-2.1.0.0.unitypackage`です。


## sdkのインポート

[aws-sdk](https://github.com/aws/aws-sdk-unity)のインポートは省略します。詳しくは[こちら](http://docs.aws.amazon.com/mobile/sdkforunity/developerguide/setup-unity.html#step-1-get-the-aws-mobile-sdk-for-unity)から。

## Unity consoleでのエラー

わらわらと、こんな感じ。
<img width="836" alt="Screen Shot 2015-12-21 at 23.11.38.png" src="https://qiita-image-store.s3.amazonaws.com/0/18114/398c28c2-adf5-9c4d-221d-7fef7b178fac.png">

# 対応する

## Warning

まず、Warningから。なにやら改行コードの問題らしい。

```
There are inconsistent line endings in the 'Assets/AWSSDK/src/Services/CognitoIdentity/Generated/Model/Internal/MarshallTransformations/GetIdResponseUnmarshaller.cs' script. Some are Mac OS X (UNIX) and some are Windows.
This might lead to incorrect line numbers in stacktraces and compiler errors. Many text editors can fix this using Convert Line Endings menu commands.
```

これは、MonoDevelop-Unityを開くと、以下のような確認がでるので`Convert all files to UNIX line endings`を選んでOK。

<img width="791" alt="Screen Shot 2015-12-22 at 11.04.00.png" src="https://qiita-image-store.s3.amazonaws.com/0/18114/3a210157-7d04-90a6-0128-b97212ff6a78.png">

## Error

次にErrorは4つ出ているけど、同じ内容なので抜粋。要約すると`ILogger`や`Logger`などが、`UnityEngine`なのか`Amazon.Runtime.Internal.Util`を利用すればいいのかわからないという感じ。

```
Assets/AWSSDK/src/Core/Amazon.Runtime/Internal/Transform/_unity/UnityWebResponseData.cs(39,17): error CS0104: `ILogger' is an ambiguous reference between `UnityEngine.ILogger' and `Amazon.Runtime.Internal.Util.ILogger'
```

```
Assets/AWSSDK/src/Services/CognitoSync/Custom/SyncManager/_unity/Dataset.cs(92,17): error CS0104: `Logger' is an ambiguous reference between `Amazon.Runtime.Internal.Util.Logger' and `UnityEngine.Logger'
```
なので、ちゃんと**名前空間を指定**すれば行けるはず。

aws-sdk-unityでも同じような[Issue](https://github.com/aws/aws-sdk-unity/issues/101)が上がっている。

`UnityEngine.Logger`と`Amazon.Runtime.Internal.Util.Logger`は実装が違うので、呼び出し元を確認した。

どうやら`Amazon.Runtime.Internal.Util.`をエラー箇所に追加すればOKみたい。

consoleからErrorをクリックすると、MonoDevelop-Unityが立ち上がってエラー箇所に飛べるので、そこで修正すればOK。

## 再度Warning
またなんかでた。`InvalidDataException`の名前がかぶっているらしい。

<img width="1204" alt="Screen Shot 2015-12-22 at 13.49.27.png" src="https://qiita-image-store.s3.amazonaws.com/0/18114/d2ec3378-3d81-34dc-fee5-f4ea43001db5.png">

```
Warning CS0436: The type `System.IO.InvalidDataException' conflicts with the imported type of same name'. Ignoring the imported type definition (CS0436) (Assembly-CSharp)
```

とりあえず、クラス名を選択して、Refactor -> Rename でクラス名を変更してしまう。

<img width="1225" alt="Screen Shot 2015-12-22 at 14.57.00.png" src="https://qiita-image-store.s3.amazonaws.com/0/18114/9d20285f-b1d7-d801-766d-055820c35dfc.png">

## これで
すっきり。
<img width="746" alt="Screen Shot 2015-12-22 at 12.57.14.png" src="https://qiita-image-store.s3.amazonaws.com/0/18114/0304568e-9bd9-b6b6-cf34-dc4b93b93755.png">

---
[参考]

 - UnityEngine.Loggerのリファレンス
http://docs.unity3d.com/ScriptReference/Logger.html

 - Amazon.Runtime.Internal.Util.Logger
https://github.com/aws/aws-sdk-unity/blob/master/Assets/AWSSDK/src/Core/Amazon.Runtime/Internal/Util/Logger.cs