Unity カメラのオブジェクト追尾機能を実装・生成[コピペOK]動画あり(所要時間3分)

2023年10月22日

スポンサーリンク

今回は、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分の座標を加算した位置をカメラの位置としている。

スポンサーリンク

手順

↓参考動画 文章による説明は動画下にあります。

・・・

スポンサーリンク
  1. 新規C#スクリプトを追加(CameraContral)(右クリック→create→C#スクリプト)
  2. C#スクリプトに上スクリプトをコピー&ペースト、保存
  3. C#スクリプトをHierarchyビュー上のMain Cameraにアタッチ
  4. HierarchyビューのMain Cameraを選択し、Inspecterビュー上のC#スクリプト(CameraControl)のTarget横枠に、今回カメラが追従するenemyオブジェクトをHierarchyビューからドラッグ&ドロップ
  5. Offsetのx,y,zを変更しターゲットとカメラとの間の距離を設定

今回は、カメラのオブジェクト追尾機能について説明してみました。

今回はカメラに限定しましたが、スクリプトをカメラ以外のオブジェクトにつけることで、

他の使い方も出来そうです。

Unity公式 ユーザーマニュアル

他の記事

Unity シューティングゲーム プレイヤー移動と弾の実装・生成[コピペOK](所要時間5分)

スポンサーリンク

Unity オブジェクト移動と鏡の作り方[コピペOK](所要時間5分)

ゲームエンジンUnityって何?無料で使えるの?ダウンロード方法は?日本語化できるの?

スポンサーリンク