Unity の懐中電灯チュートリアル

多くのビデオ ゲームでは、フラッシュライト がプレーヤーのエクスペリエンスを向上させる重要なツール (またはゲームプレイ要素) として機能します。懐中電灯は、オンとオフを切り替えることができるポータブルな光源であり、通常は現実世界の懐中電灯の機能を模倣しています。ゲームにおけるその重要性は、サスペンスを生み出し、リアリズムを追加し、暗い環境や薄暗い環境で 照明 を提供する能力にあります。

エイリアン アイソレーションのスクリーンショット

以下は、キーを押すとオン/オフできる制御可能な懐中電灯を Unity に設定する方法に関する簡単なチュートリアルです。

シーンのセットアップ

  • で Unity に新しい 3D プロジェクトを作成します (または既存のプロジェクトを開きます)
  • 3D キャラクターや環境などの必要なアセットをインポートします (まだインポートしていない場合)。

スポットライトを作成する

  • Hierarchy パネルを右クリックし、"Create Empty" を選択して空のゲームオブジェクトを作成します。
  • 新しいゲームオブジェクトの名前を次のように変更します。 "Flashlight."
  • "Flashlight" ゲームオブジェクトが階層で選択されていることを確認してください。
  • インスペクターパネルで、"Add Component" ボタンをクリックし、"Light" を検索し、それをクリックして add ライト コンポーネントを "Flashlight" ゲームオブジェクトに追加し、同じ手順を繰り返して *h20 を追加します。 * 成分。
  • Type を "Spot" に設定し、Range、Angle、Intensity パラメーターを調整するなど、Light コンポーネントを必要な設定に構成します。
  • 音量、距離などを調整して、AudioSource コンポーネントを構成します。

Unity シーンでのスポット ライトの効果

懐中電灯をプレーヤーに取り付ける

  • をドラッグし、[階層] パネルのプレイヤー キャラクターに "Flashlight" ゲームオブジェクトをドロップして、プレイヤーの子にします。
  • プレイヤーの手や希望の位置に合わせてフラッシュライトの位置と回転を調整します。

懐中電灯コントロールの実装

'FlashlightController.cs'

using UnityEngine;

public class FlashlightController : MonoBehaviour
{
    // Public variables
    public AudioClip turnOnSound;
    public AudioClip turnOffSound;

    // Private variables
    private Light flashlight;
    private AudioSource audioSource;

    private void Start()
    {
        // Get Light component in the same GameObject
        flashlight = GetComponent<Light>();

        if (flashlight == null)
        {
            Debug.LogWarning("Light component is not attached. Attach a Light component manually.");
        }
        else
        {
            flashlight.enabled = false;
        }

        // Get or add AudioSource component to the same GameObject
        audioSource = GetComponent<AudioSource>();
        if (audioSource == null)
        {
            audioSource = gameObject.AddComponent<AudioSource>();
            audioSource.playOnAwake = false;
        }
    }

    private void Update()
    {
        if (Input.GetKeyDown(KeyCode.F))
        {
            if (flashlight != null)
            {
                flashlight.enabled = !flashlight.enabled;

                // Play audio effect based on flashlight state
                if (flashlight.enabled)
                {
                    PlayAudioEffect(turnOnSound);
                }
                else
                {
                    PlayAudioEffect(turnOffSound);
                }
            }
            else
            {
                Debug.LogWarning("Cannot control flashlight as Light component is not attached.");
            }
        }
    }

    private void PlayAudioEffect(AudioClip clip)
    {
        if (clip != null)
        {
            audioSource.clip = clip;
            audioSource.Play();
        }
    }
}
  • スクリプトを保存し、Unity に戻ります。
  • と "FlashlightController" スクリプトを "Flashlight" ゲームオブジェクトにアタッチします。
  • Light コンポーネントと AudioSource コンポーネントの両方が "FlashlightController" スクリプトとして同じゲーム オブジェクトにアタッチされていることを確認してください。
  • カスタム オーディオ クリップをターン 'On/Off' サウンド変数に割り当てます。

懐中電灯をテストする

  • Play ボタンを押して、Play モードに入ります。
  • シーン内でキャラクターを移動させます。
  • "F" キーを押して、フラッシュライトのオンとオフを切り替えます。

結論

このチュートリアルが Unity でスポットライト懐中電灯効果を作成する方法を学ぶのに役立つことを願っています。ライトのちらつきや、プレーヤーの入力に基づいてスポットライトの円錐角度を調整するなどの追加機能を追加することで、さらに強化することができます。

おすすめの記事
Unity用ヘリコプターコントローラー
Unity の 2D プラットフォーマー キャラクター コントローラーにダブル ジャンプ サポートを追加する
Unityでクレーンコントロールを作る方法
Unity用カーコントローラー
キャラクター コントローラー Unity でリジッドボディをプッシュする機能を追加する方法
Unity用飛行機コントローラー
Unity でパルクール システムを実装する