前回蓋が外れるギミックを作成しましたが、なにか物足りない気がします。今回はその辺りを補完していきます。
効果音の設定
前回作成したBoxManagerクラスに以下赤マーカー追加でスクリプトの効果音設定ができます。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class BoxManager : MonoBehaviour
{
public GameObject BoxEnter;
public GameObject ButtonUp;
public GameObject ButtonDown;
private int countU;
private int countD;
public AudioClip sound1;//反応音
public AudioClip sound2;//外れる音
AudioSource audioSource;
void Start()
{
countU = 0;
countD = 0;
BoxEnter.GetComponent<Rigidbody>().isKinematic = true;
audioSource = GetComponent<AudioSource>();//コンポーネント取得
}
public void CountButtonUp()//CountButtonDownメソッドも同じ変更
{
countU++;
Debug.Log("up" + countU);
audioSource.PlayOneShot(sound1);//1回再生
if (countU == 1 && countD == 3)
{
BoxEnter.GetComponent<Rigidbody>().isKinematic = false;
ButtonUp.SetActive(false);
ButtonDown.SetActive(false);
audioSource.PlayOneShot(sound2);//1回再生
ButtonLow.SetActive(true);//アングル変更で追加
}
else if(countU > 1 || countD > 3)
{
Start();
}
}
}
オブジェクトの効果音設定は以下の様にします。
・音を発したい物:AudioSourceコンポーネント追加
・音を受け取りたいカメラ:AudioListenerコンポーネント追加(元々付いてる)
音の大きさ等を変えたい場合は、AudioSourceコンポーネントをいじってみてください。
ボタンでカメラのアングル変更
ギミックで外れた蓋はそのまま地面に落ちますが、箱用カメラのアングルを変更してそれを追える様にします。蓋は外れるけどCanvasは残るので、前回作成した戻るボタンと同じくUIボタンで設定します。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class BoxManager : MonoBehaviour //追加変数とメソッドのみ記載
{
public GameObject ButtonHigh;
public GameObject ButtonLow;
public void PushButtonHigh()//初期アングル_下有効_上無効
{
boxCamera.transform.Rotate(-90, 0, 0);
ButtonHigh.SetActive(false);
ButtonLow.SetActive(true);
}
public void PushButtonLow()//アングル下向き_上有効_下無効
{
boxCamera.transform.Rotate(90, 0, 0);
ButtonLow.SetActive(false);
ButtonHigh.SetActive(true);
}
}
簡単ですね。蓋が外れた時にアングル上下稼働させたいので、前段スクリプトの青マーカーも合わせて追加します。
以下、前回の蓋が外れる所から今回やった所までの完了デモになります。音はちゃんとでていますwww
反応音(カチッ)と外れる音(ガチャ)は効果音ラボ様から使用しました。一通り揃うのでお勧めです。
完了デモで蓋が外れた後、文字がDUUD→UDDUに変化していると思います。この文字が箱の2個目のギミックのヒントになるのですが、ただテキストを裏面に貼り付けて終わりではなく、意外と設定が必要になってきます。その辺りを次回解説します。
コメント