0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

ARFoundation キャラクターを動かす(CharacterController使用)

0
Last updated at Posted at 2021-07-26

キャラクターを配置し、CharacterControllerをつける
96D73364-3880-44A5-83A3-8B428EF2DD4B.jpeg

MovingCharacter.csを作成する
06D2F0E1-B9CC-49C5-8F1F-196C582E804D_4_5005_c.jpeg

下記スクリプトを記述

MovingCharacter
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class MovingCharacter : MonoBehaviour
{
    private CharacterController m_CharacterController;
    private QuerySDMecanimController m_MecanimController;
    private float walkSpeed = 0.2f;
 
    void Start()
    {
        m_CharacterController = GetComponent<CharacterController>();
        m_MecanimController = GetComponent<QuerySDMecanimController>();
    }

    void Update()
    {
        //キャラクターの前方を移動方向とする
        Vector3 moveDirection = transform.forward * walkSpeed * Time.deltaTime;

        //移動した先を basePoint として平面があるか判定する
        Vector3 basePoint = m_CharacterController.center + moveDirection;

        //Ratcast を行う距離
        RaycastHit hitInfo;
        float distance = m_CharacterController.height;

        //キャラクターの下方向に Raycast を行い、平面があるかを確認する
        if (Physics.Raycast (basePoint, -transform.up, out hitInfo, distance))
        {
            //平面があれば、前方への移動+等速落下
            moveDirection += -transform.up * 0.98f * Time.deltaTime;
            m_CharacterController.Move(moveDirection);
            //歩行モーションに変更
            m_MecanimController.ChangeAnimation(
                QuerySDMecanimController.QueryChanSDAnimationType.NORMAL_WALK
                );
        }
        else
        {
            //平面がなければ、等速落下のみ
            moveDirection = -transform.up * 0.98f * Time.deltaTime;
            m_CharacterController.Move(moveDirection);
            //待機モーションに変更
            m_MecanimController.ChangeAnimation(
                QuerySDMecanimController.QueryChanSDAnimationType.NORMAL_IDLE
                );
            //方向転換
            transform.Rotate(new Vector3(0, 60, 0) * Time.deltaTime);
        }
    }
}

キャラクターにMovingCharacter.csをつける
4F71A786-6DD3-40D4-85B7-F025A3E6067D.jpeg

キャラクターをプレハブにする。 AR Session OriginのRaycast.csにキャラクタープレハブをアタッチする
5D2EB2D1-0FD4-41E7-A56E-2938A6B1E7AB.jpeg

0
0
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
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?