
警告が表示された場合は、"Fix now" をクリックする。
makehuman2.zip








Sceneウィンドウを表示している状態で、Hierarchy 内で AsianBoy を選択すると、 CharacterController の Capsel Collider が緑色の実線で表示される。 人型キャラクタと合致するように Center と Height の値を変更する。 ここでは Center (x,y,z)=(0,0.87,0), Height = 1.7 とした。

Unity では「従来からの Input System」と「2020 以降に導入された新しい Input System」の2種類の 入力方式が利用可能であり、これらはプロジェクトの設定で切り替えることができる。
どちらの System にも長所と短所があるが、以下では簡単のため「従来のInput System」を使う例を説明する。

Both) に設定する。設定を変更後は、Unity Editor の再起動が必要になる。



ここでは古い Input System を使っているがそのまま動く。 新しい Input System を使って動かしたい場合は、教科書の p.175 PlayerController.cs を使えばよい。
| PlayerMove.cs |
using UnityEngine;
using UnityEngine.InputSystem;
[RequireComponent(typeof(CharacterController))]
[RequireComponent(typeof(PlayerInput))]
public class PlayerMove : MonoBehaviour
{
[SerializeField] private float velocity = 1.3f;
private CharacterController charController;
void Start()
{
charController = gameObject.GetComponent<CharacterController>();
}
void Update()
{
float h = Input.GetAxis("Horizontal");
float v = Input.GetAxis("Vertical");
Vector3 moveDirection = new Vector3(h, 0, v);
charController.Move(velocity * Time.deltaTime * moveDirection);
}
}
|
Plane はxz平面上の平面で、原点を中心として 10x10 の大きさである。 また、AsianBoyは原点にいる。 Main Camera が少し離れ過ぎているので Plane の端である Transform Position (x,y,z)=(0,1,-5)に設定する。

「矢印キー (↑↓←→)」または「w/s/a/d キー」で AsianBoy が前後左右に動作する。地面からはみ出しても落下せずに、そのまま平行移動することがわかる。

| PlayerMove2.cs |
using UnityEngine;
using UnityEngine.InputSystem;
[RequireComponent(typeof(CharacterController))]
[RequireComponent(typeof(PlayerInput))]
public class PlayerMove2 : MonoBehaviour
{
[SerializeField] private float velocity = 1.3f;
private CharacterController charController;
void Start()
{
charController = gameObject.GetComponent<CharacterController>();
}
void Update()
{
float h = Input.GetAxis("Horizontal");
float v = Input.GetAxis("Vertical");
Vector3 moveDirection = new Vector3(h, 0, v);
moveDirection.y += Physics.gravity.y;
charController.Move(velocity * Time.deltaTime * moveDirection);
}
}
|

Unity プロジェクトの作成環境:
PC: minisforum um680
OS: Windows 11
Unity Hub: 3.12.1
Unity: 6000.0.50f1 (intel)