Unityで使える「Character Controller」コンポーネントを使って、オブジェクトを動かしていく。
目次
「CharacterController」を利用してオブジェクトを動かす
現在の状況
- PlayerをCapsuleで作成
- FloorをCubeで作成
- Floorを黒色にする
今回Character Controllerを使って動かすオブジェクトをCapsuleで作成した。まだコンポーネントをいじっていない。作成した状態のまま。
コンポーネントをいじる
【Player選択】→【Capsule Colliderを外す】→
【PlayerにCharacter Controllerをアタッチ】
スクリプト追加
【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キーや矢印キーを押して動く。
こんな感じに動く
【自由自在に動くね】
おわりに
「Character Controller」コンポーネントに関する記事をこれからも書く。まだまだ奥が深い。
以上、「Character Controller」を使ってオブジェクトを動かす方法だ。
【Unity3Dサンプルゲーム・チュートリアル】「フリスビーを犬に届けよ!」の概要
はじめに Unityでのゲーム開発を手助けするメディア「Unishar-ユニシャー」のさぎのみやです。「フリスビーを犬に届けよ!」というゲームのチュートリアルを作成しまし...
コメント