「Character Controller」を使ってオブジェクトを動かす【Unity】

Unityで使える「Character Controller」コンポーネントを使って、オブジェクトを動かしていく。

目次

「CharacterController」を利用してオブジェクトを動かす

現在の状況

「CharacterController」を利用してオブジェクトを動かしていく

  • PlayerをCapsuleで作成
  • FloorをCubeで作成
  • Floorを黒色にする

今回Character Controllerを使って動かすオブジェクトをCapsuleで作成した。まだコンポーネントをいじっていない。作成した状態のまま。

 

コンポーネントをいじる

「CharacterController」を利用してオブジェクトを動かしていく

【Player選択】→【Capsule Colliderを外す】→
【PlayerにCharacter Controllerをアタッチ】

スクリプト追加

「CharacterController」を利用してオブジェクトを動かすためのスクリプトを追加

【Player選択】→【PlayerController.csスクリプトを追加】

 

スクリプト記述

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

public class PlayerController : MonoBehaviour
{
    private CharacterController controller;

    [SerializeField]
    private float speed = 3.0f;
    private float gravity = 9.8f;

    void Start()
    {
        controller = GetComponent<CharacterController>();
    }

    void Update()
    {
        CalculateMove();
    }

    void CalculateMove()
    {
        float horizontalInput = Input.GetAxis("Horizontal");
        float verticalInput = Input.GetAxis("Vertical");
        Vector3 direction = new Vector3(horizontalInput, 0, verticalInput);
        Vector3 velocity = direction * speed;
        velocity.y -= gravity;
        velocity = transform.transform.TransformDirection(velocity);
        controller.Move(velocity * Time.deltaTime);
    }
}

X軸方向、Y軸方向に動けるようになる。A、W、D、Sキーや矢印キーを押して動く。

 

こんな感じに動く

「CharacterController」を利用してオブジェクトを動かす

【自由自在に動くね】

 

おわりに

「Character Controller」コンポーネントに関する記事をこれからも書く。まだまだ奥が深い。

以上、「Character Controller」を使ってオブジェクトを動かす方法だ。

あわせて読みたい
【Unity3Dサンプルゲーム・チュートリアル】「フリスビーを犬に届けよ!」の概要 はじめに Unityでのゲーム開発を手助けするメディア「Unishar-ユニシャー」のさぎのみやです。「フリスビーを犬に届けよ!」というゲームのチュートリアルを作成しまし...
Character Controllermコンポーネントを使ってオブジェクトを動かす

この記事が気に入ったら
いいね または フォローしてね!

よかったらシェアしてね!

コメント

コメントする

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

目次