Smooth Followのプロパティで設定する。
| Target | 追随の対象。 |
|---|---|
| Distance | ターゲットまでの距離。 |
| Height | カメラの高さ |
| Look At Angle | カメラの位置を、ターゲットを中心とした角度で指定。 |
Mecanim Locomotion Starter Kitのアバターは、標準でスクリプトが用意されている。
Assets -> Locomotion Setup -> Scripts -> LocomotionPlayer.cs
Assets -> Locomotion Setup -> Scripts -> LocomotionPlayer.cs
アバターの操作では、「Animator」「Locomotion」「JoystickToEvents」といったクラスが使われている。
Mecanim Locomotion Starter Kitには、LocomotionPlayer.cs以外にもスクリプトファイルが用意されていて、それらによってアバターを操作するために必要な処理や情報が簡単に手に入るようになっている。
LocomotionPlayerでは、それらを使って操作をしている。
| Animator | 操作するアバターに組み込まれているAnimatorを管理するクラス。 |
|---|---|
| Locomotion | 別のスクリプトファイルに用意されているアバター操作のためのクラス。 |
| JoystickToEvents | 別のスクリプトファイルに用意されている移動方向などの計算をするためのクラス。 |
Mecanim Locomotion Starter Kitには、LocomotionPlayer.cs以外にもスクリプトファイルが用意されていて、それらによってアバターを操作するために必要な処理や情報が簡単に手に入るようになっている。
LocomotionPlayerでは、それらを使って操作をしている。
using UnityEngine;
using System;
using System.Collections;
[RequireComponent(typeof(Animator))]
public class LocomotionPlayer : MonoBehaviour {
protected Animator animator;
private float speed = 0;
private float direction = 0;
private Locomotion locomotion = null;
// Use this for initialization
void Start ()
{
// Locomotionは、操作するAnimatorインスタンスを引数に指定してインスタンスを作る。
animator = GetComponent<Animator>();
locomotion = new Locomotion(animator);
}
void Update ()
{
// AnimatorとCamera.mainがちゃんと用意されていることを確認した上で処理を行う
if (animator && Camera.main)
{
JoystickToEvents.Do(transform,Camera.main.transform, ref speed, ref direction);
locomotion.Do(speed * 6, direction * 180);
}
}
}
JoystickToEvents.Do(transform,Camera.main.transform, ref speed, ref direction);JoystickToEventsのDoというメソッド。
4つの引数はそれぞれ、アバターのTransform、カメラのTransform、速度の値を保管するfloat変数、方向の値を保管するfloat変数。
「ref」をつけておくことで、呼び出したメソッドの方からその変数を書き換えることができる。
つまりJoystickToEvents.Doを実行すると、引数に指定したspeedとdirectionの値が書き換わり、計算した結果がこれらに代入されるようになっている。
普通、メソッドだと返値で結果を渡すが、それだと1つの値しか返せないため、こういった手法をとっている。





コメントをかく