私は最初の簡単なゲームのためにいくつかのチュートリアルを混乱させました。スクリプトからオーディオソースを再生
私は私のキャラクターとして使用する私のGameObjectの下に2つのオーディオソースを持っています。彼らはどちらも「目を覚まして遊ぶ」を介してプレイします。スクリプトからの再生は1つだけです。もう1つは、スクリプトから呼び出されたときに全く発音しないか、または数回クリックするだけです。私はスクリプト
を書くために、最新のVisual Studioを使用していはここで正しく動作していない私のスクリプトの一部だ(私は選手の動きスクリプトの多くを残しています)。ライン7に
オーディオ変数、ここでライン上のオーディオ再生33
using UnityEngine;
public class PlayerMovement : MonoBehaviour
{
public Rigidbody rb;
public AudioSource AudioFall;
public GameObject Fall;
if(rb.position.y < -1f)
{
AudioFall.Play();
Fall.SetActive(true);
FindObjectOfType<GameManager>().GameOver();
}
はライン17
のオーディオ再生、ライン7にオーディオ変数が動作している別の.cs部分であります
using UnityEngine;
public class playerCollision : MonoBehaviour
{
public PlayerMovement movement;
public AudioSource AudioCrash;
public GameObject Crash;
void OnCollisionEnter(Collision collisionInfo)
{
if (collisionInfo.collider.tag == "Obstacle")
{
FindObjectOfType<PlayerMovement>().rb.isKinematic = true;
movement.enabled = false;
AudioCrash.Play();
Crash.SetActive(true);
FindObjectOfType<GameManager>().GameOver();
}
}
私は、オーディオソースインスペクタで最大距離を増やそうとしました。
'if(rb.position.y <-1f)'の中に 'Debug.Log'を入れて、その条件が真であるかどうかを確認し、呼び出された回数を確認する必要があります。 – Programmer
@Programmerありがとう!だから私はこれを試みた(rb.position.y <-1f) { Debug.Log(AudioFall.time); AudioFall.Play(); Fall.SetActive(true); FindObjectOfType().GameOver(); } –
ゲームオブジェクトを実行した後の結果は、コンソールの[UnityEngine.Debug:Log(Object)0、UnityEngine.Debug:Log(Object)0.021、UnityEngine.Debug:Logオブジェクト)0、UnityEngine.Debug:Log(オブジェクト)0、UnityEngine.Debug:Log(オブジェクト)0] –