Unity カメラのオブジェクト追尾機能を実装・生成[コピペOK]動画あり(所要時間3分)
スポンサーリンク
今回は、playerに向かって移動するenemyをMain Cameraが一定距離を保って追尾する機能を実装した。
つまりこの機能によって、3人称視点を実装できる。
以下が今回使用したスクリプト
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CameraControl : MonoBehaviour
{
public Transform target; // カメラの追跡対象
public Vector3 offset; // ターゲットからのオフセット
void Update()
{
// カメラの位置を更新
transform.position = target.position + offset;
// カメラをターゲットの方向に向ける
transform.LookAt(target);
}
}
public Transform target: やpublic Vector3 offsetはpublic変数として定義しているため、UnityのInspecterビューから変更等が可能であり、初期ではターゲットは未指定、offsetはx,y,z=0,0,0となっている。また、enemyオブジェクトにはhomingスクリプト(playerオブジェクトを追尾する)があらかじめ設定されている。また、Update()関数内では、targetの位置情報を繰り返し取得しており、それにoffset分の座標を加算した位置をカメラの位置としている。
スポンサーリンク
手順
↓参考動画 文章による説明は動画下にあります。
・・・
スポンサーリンク
- 新規C#スクリプトを追加(CameraContral)(右クリック→create→C#スクリプト)
- C#スクリプトに上スクリプトをコピー&ペースト、保存
- C#スクリプトをHierarchyビュー上のMain Cameraにアタッチ
- HierarchyビューのMain Cameraを選択し、Inspecterビュー上のC#スクリプト(CameraControl)のTarget横枠に、今回カメラが追従するenemyオブジェクトをHierarchyビューからドラッグ&ドロップ
- Offsetのx,y,zを変更しターゲットとカメラとの間の距離を設定
今回は、カメラのオブジェクト追尾機能について説明してみました。
今回はカメラに限定しましたが、スクリプトをカメラ以外のオブジェクトにつけることで、
他の使い方も出来そうです。
他の記事
Unity シューティングゲーム プレイヤー移動と弾の実装・生成[コピペOK](所要時間5分)
スポンサーリンク
Unity オブジェクト移動と鏡の作り方[コピペOK](所要時間5分)
ゲームエンジンUnityって何?無料で使えるの?ダウンロード方法は?日本語化できるの?
スポンサーリンク