UnityのCameraクラスについての技術資料

Cameraクラスは、Unityでゲーム内の視点や描画を管理するための重要なクラスです。この資料では、Cameraクラスのプロパティやメソッドを中心に、具体的な使用例を含めて解説します。

Cameraクラスの主なプロパティ

  • fieldOfView: カメラの視野角(縦方向)を設定します。この値を変えることで、カメラの視野を広げたり狭めたりできます。通常の視野角は60度程度です。
    • デフォルト値: 60
    • 使用例camera.fieldOfView = 75;
  • nearClipPlane: カメラが描画する最も近い距離を設定します。これより手前にあるオブジェクトは描画されません。
    • デフォルト値: 0.3
    • 使用例camera.nearClipPlane = 0.1f;
  • farClipPlane: カメラが描画する最も遠い距離を設定します。これより遠くにあるオブジェクトは描画されません。
    • デフォルト値: 1000
    • 使用例camera.farClipPlane = 500;
  • backgroundColor: カメラの背景色を設定します。これは、ゲーム内で空などのオブジェクトがない場所を描画する際の色を指定します。
    • 使用例camera.backgroundColor = Color.black;
  • orthographic: このプロパティがtrueの場合、カメラは正投影(Orthographic)モードで動作し、パースペクティブ効果が無効になります。
    • 使用例camera.orthographic = true;
  • targetTexture: カメラの描画結果をRenderTextureに出力します。これは画面上の出力を別のテクスチャとして扱いたい場合に使います。
    • 使用例camera.targetTexture = myRenderTexture;

Cameraクラスの主なメソッド

  • ScreenToWorldPoint(Vector3 position): 画面上の2D座標(ピクセル座標)をワールド空間の3D座標に変換します。例えば、クリックされた位置をワールド座標に変換する際に利用します。
    • 使用例Vector3 worldPosition = camera.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, 10));
  • WorldToScreenPoint(Vector3 position): ワールド空間の3D座標を画面上の2D座標に変換します。これは、オブジェクトの位置をユーザーインターフェースで表示する際に役立ちます。
    • 使用例Vector3 screenPosition = camera.WorldToScreenPoint(objectPosition);
  • ViewportToWorldPoint(Vector3 position): ビューポート(0から1までの相対座標)をワールド空間の座標に変換します。
    • 使用例Vector3 worldPosition = camera.ViewportToWorldPoint(new Vector3(0.5f, 0.5f, 10));
  • Render(): カメラがシーンを手動で描画します。通常、自動的に呼ばれるため、特定のシチュエーションでのみ使用されます。
    • 使用例camera.Render();

使用例

以下に、キーボード入力でカメラの視野角(fieldOfView)を動的に変更する簡単なスクリプトを紹介します。

using UnityEngine;

public class CameraControl : MonoBehaviour
{
    public Camera mainCamera;

    void Update()
    {
        // 上矢印キーで視野角を広げる
        if (Input.GetKey(KeyCode.UpArrow))
        {
            mainCamera.fieldOfView += 1f;
        }
        // 下矢印キーで視野角を狭める
        if (Input.GetKey(KeyCode.DownArrow))
        {
            mainCamera.fieldOfView -= 1f;
        }
    }
}

このスクリプトでは、カメラの視野角をUpArrow(上矢印キー)で広げ、DownArrow(下矢印キー)で狭めることができます。

まとめ

Cameraクラスはゲーム内の視点をコントロールするために非常に重要なクラスです。カメラの視野角やクリッププレーンを調整することで、プレイヤーにどのようにシーンを見せるかを細かく調整することが可能です。これを利用することで、より魅力的でダイナミックなゲーム体験を提供できます。

Unity

Posted by hidepon