LoginSignup
0
1

More than 5 years have passed since last update.

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

Last updated at Posted at 2018-11-12

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

1.Assetsストアから「Cartoon Cat」で、にゃんこの素材をダウンロードする
001.png

2.「cat_walk」を選択し「Rig」を選択「Animation Type」を「Legacy」にする。
必ず「Apply」を押して保存すること。
002.png

3.「cat_walk」を選択し「Animation」の「Wrap Mode」をLoopにする
003.png

4.下の方の「Wrap Mode」もLoopにする。
必ず「Apply」を押して保存すること。
004.png

5.「cat_walk」を「HitCubeParent」の配下にDrag&Dropで配置する
005.png

6.「cat_walk」を選択し「Rotation」を180にする。
7.Play AutomaticallyのチェックをOFFする。
8.Culling TypeをAlways Animateにする。
006.png

9.「歩く/止まる」「こっちにおいで」ボタンを作成する
10.CanvasのUI Scale Modeを「Scale With Screen Size」にする
007.png

11.「cat_Walk」を選択し「Unity AR Hit Test Example」を追加する
12.HitCubeParentにする
13.新しく「CatScript」を作る
008.png

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してボタンを紐付ける
009.png

010.png

完成!

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1