【Unity】にゃんこをカメラの方向に向ける

ARKit床面認識した後、にゃんこを配置し、歩かせ、スマホの向きを変え、にゃんこをカメラの方向に向かせ歩かせる

環境メモ
⭐️Mac OS Mojave バージョン10.14
⭐️Xcode version 10.0(10A255)
⭐️Unity 2018.2.14f1
⭐️iPhone7 IOS11.4.1

実際に動かした動画はこちら↓↓
https://twitter.com/nonnonkapibara/status/1061943852146221056

<blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">にゃんこ😻をカメラの方に向ける。<br><br>ARkit床面認識した後、にゃんこを配置し、歩かせ、スマホの向きを変え、<br>にゃんこをカメラの方向に向かせ歩かせる<a href="https://twitter.com/hashtag/Unity?src=hash&amp;ref_src=twsrc%5Etfw">#Unity</a> <a href="https://twitter.com/hashtag/Unity3D?src=hash&amp;ref_src=twsrc%5Etfw">#Unity3D</a> <a href="https://twitter.com/hashtag/ARkit?src=hash&amp;ref_src=twsrc%5Etfw">#ARkit</a> <a href="https://t.co/79PqD3d4xF">pic.twitter.com/79PqD3d4xF</a></p>&mdash; non (@nonnonkapibara) <a href="https://twitter.com/nonnonkapibara/status/1061943852146221056?ref_src=twsrc%5Etfw">2018年11月12日</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>


1.Assetsストアから「Cartoon Cat」で、にゃんこの素材をダウンロードする
<img width="1094" alt="001.png" src="https://qiita-image-store.s3.amazonaws.com/0/93155/da09be8e-2e06-01d0-41c0-47aac612f950.png">

2.「cat_walk」を選択し「Rig」を選択「Animation Type」を「Legacy」にする。
必ず「Apply」を押して保存すること。
<img width="986" alt="002.png" src="https://qiita-image-store.s3.amazonaws.com/0/93155/c0892eb8-05ce-cd82-0997-214568fa13ef.png">

３.「cat_walk」を選択し「Animation」の「Wrap Mode」をLoopにする
<img width="772" alt="003.png" src="https://qiita-image-store.s3.amazonaws.com/0/93155/1057ab42-dbba-54b1-1817-29d927d21d51.png">


4.下の方の「Wrap Mode」もLoopにする。
必ず「Apply」を押して保存すること。
<img width="577" alt="004.png" src="https://qiita-image-store.s3.amazonaws.com/0/93155/6922dbed-1eed-dc27-333b-d19c5d92c9dc.png">

5.「cat_walk」を「HitCubeParent」の配下にDrag&Dropで配置する
<img width="761" alt="005.png" src="https://qiita-image-store.s3.amazonaws.com/0/93155/6d305e83-a58e-8a8a-c365-24a1d7d9e05e.png">

6.「cat_walk」を選択し「Rotation」を180にする。
7.Play AutomaticallyのチェックをOFFする。
8.Culling TypeをAlways Animateにする。
<img width="1305" alt="006.png" src="https://qiita-image-store.s3.amazonaws.com/0/93155/d679819e-c1e6-ff28-2aef-e8a7ba91c01f.png">

9.「歩く/止まる」「こっちにおいで」ボタンを作成する
10.CanvasのUI Scale Modeを「Scale With Screen Size」にする
<img width="1301" alt="007.png" src="https://qiita-image-store.s3.amazonaws.com/0/93155/d22a2f43-a0f1-84d5-8429-75b16bd3082f.png">

11.「cat_Walk」を選択し「Unity AR Hit Test Example」を追加する
12.HitCubeParentにする
13.新しく「CatScript」を作る
<img width="1303" alt="008.png" src="https://qiita-image-store.s3.amazonaws.com/0/93155/6a634a07-c265-c3f2-fbc8-caac05c67ebf.png">

```c#:CatScript
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class CatScript : MonoBehaviour {

    private new Animation animation;
    private bool moveFlag = false;

	// Use this for initialization
	void Start () {
        animation = GetComponent<Animation>();
	}
	
	// Update is called once per frame
	void Update () {
        if (moveFlag) {
            // transform.Translatは、指定したx・y・z移動させたい距離をセットする
            // Vector3.forwardは、ワールド空間の前方
            // Time.deltaTimeには、前回のUpdate()からの経過時間
            // Catを0.5fの速さで動かす
            transform.Translate(Vector3.forward * Time.deltaTime * (transform.localScale.x * 0.05f));
        }
	}

    /*
     * 「歩く」ボタンTap時
     */
    public void onTapWalk() {
        // animation.isPlayingは、アニメーションが再生されているかどうかの判定
        if (!animation.isPlaying) {
            // 再生していない場合は、再生する
            animation.Play();
            moveFlag = true;
        } else {
            // 再生してる場合は、止める
            animation.Stop();
            moveFlag = false;
        }
    }

    /*
     * 「こっちに来る」ボタンTap時
     */
    public void onTapLookAt() {
        // Catをカメラの方向へ向かせる
        transform.LookAt(Camera.main.transform.position);
        // transform.eulerAnglesは、指定した角度まで一気に回転させる
        // eulerAnglesで回転する角度を指定する。Vector3(0, 50, 0)ならx軸で0度、y軸で50度、z軸で0度回転する。
        // Catがカメラの方向へ回転する
        transform.eulerAngles = new Vector3(0, transform.eulerAngles.y, 0);
    }
}

```

14.「cat_Walk」をDrag&Dropしてボタンを紐付ける
<img width="1296" alt="009.png" src="https://qiita-image-store.s3.amazonaws.com/0/93155/1fc38877-e83d-c833-1b1c-cf4acad81c9c.png">

<img width="1209" alt="010.png" src="https://qiita-image-store.s3.amazonaws.com/0/93155/3e0f38c8-9789-f6a9-0822-c5ad2befe2bd.png">


完成！