模様がついていて、キー入力でオンオフができる懐中電灯の光を作ります。
まずFPSコントローラーをシーンに配置します。
Spot Lightを新しく作って、FPSコントローラーの子オブジェクトのFirstPersonSharacterにドラッグアンドドロップします。
スポットライトの位置や向き、光の届く範囲や強さ、色などを調節します。
このままでは光の形がシンプルなので、光に模様をつけます。
クッキーを使う
光に模様をつけるには、クッキーというテクスチャ画像を使います。
スタンダードアセットにいくつかのクッキーが用意されています。
どれか1つをスポットライトのインスペクタの Cookie にドラッグアンドドロップします。
これでライトに模様が付きます。
クッキーを使えばいろんなライトが作れます。
懐中電灯をオンオフする
懐中電灯をキー入力でつけたり消したりできるようにします。
どれかのオブジェクトにスクリプトをつけます。今回は、オン・オフする Spot Light 以外のオブジェクトにつけてみます。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class lightScript : MonoBehaviour
{
public GameObject flashLight;
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
if(Input.GetKeyDown(KeyCode.T))
{
flashLight.SetActive(!flashLight.activeSelf);
}
}
}
オンオフするスポットライトを、スクリプトにアタッチします。
Tキーを入力するとライトをオンオフできるようになりました。
オンオフするときに音を出すことも出来ます。
音を再生する
まず、どこかにオーディオソースコンポーネントとオーディオクリップを付けます。
オーディオソースは、スクリプトと同じオブジェクトに付けて、オーディオクリップはスクリプトにアタッチしました。
そして、キー入力でライトの状態によってオーディオクリップを変えて再生します。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class lightScript : MonoBehaviour
{
public GameObject flashLight;
[SerializeField] AudioClip[] audioClips;
AudioSource audioSource;
// Start is called before the first frame update
void Start()
{
audioSource = GetComponent<AudioSource>();
}
// Update is called once per frame
void Update()
{
if (Input.GetKeyDown(KeyCode.T))
{
flashLight.SetActive(!flashLight.activeSelf);
audioSource.PlayOneShot(audioClips[flashLight.activeSelf ? 0 : 1]);
}
}
}
質問コメントを失礼します。
こちらUnity初心者なのですが、本記事を参考にさせていただきました。
ご解説の通り進めてTキーを押すとライトがつくようにできたのですが、
記事の最後にオンオフする時に音を出すことができる、とありますが、
そちらはやはりコードに何かしら追記する必要があると思いますが、
それについて、もしかすると別の記事でやり方等書かれていらっしゃいますでしょうか?
ご質問ありがとうございます。
音の出し方をこの記事に書き足しました。