5/01/2017

[Unity]プレイヤーの動きに追従するカメラの簡単なスクリプトとTips

前にStandardAssetに入っていたFreeLookCameraRigでEthanの動きを追ってみたけど、
今回は超簡単なスクリプトを書いて自作追従カメラを自作してみるよ。

1.まず、空のGameObjectを作って名前をCameraArmとかなんかに変える。
2.それを親にしてMainCameraを子に。
3.プレイヤーはタグをPlayerにしておく。
4.スクリプトはCameraArmにアタッチ。

スクリプトはこんな感じ。

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

public class CameraArm : MonoBehaviour {

    GameObject player;

    void Start () {
        player =GameObject.FindGameObjectWithTag("Player");
  
    }

    void LateUpdate () {
        transform.position = player.transform.position;
    }
}


適当に数値を変えてみて動かしてみるとちゃんとカメラは追随した!


カメラの数値はInspectorで変えることができる。


再生中にいろいろ数値をいじってみて、
良さそうな感じにできたら停止する前に数値をコピーしておくとラク。


停止したら数値は元に戻ってしまうけれど、大丈夫。
先ほどコピーした数値をペーストすればいい。





タグで判別してくれるの便利ー。
FindGameObjectWithTagとFindGameObjectsWithTag
があるので注意。

LateUpdateについては公式マニュアルに説明があった。

Behaviour が有効の場合、LateUpdate は毎フレーム呼びだされます LateUpdate は Update 関数が呼び出された後に実行されます。 これはスクリプトの実行順を決める時に便利です。例えばカメラを追従するには Update で移動された結果を基に常に LateUpdate で位置を更新する必要があります。

MonoBehaviour.LateUpdate()

0 コメント:

コメントを投稿