2016-10-13 6 views
-1

最近、Unityになってしまったので、私は学校からの譲渡を受けて、iveはミラーエッジの感じのゲームを作ることにしましたが、より基本的なボールの周りの転がりと。問題は、ピックアップ・シーブが置くように試みたが、音を出さないことである。私はそれを修正する方法を知っていないとアイブは解決策を探してみましたが、それはちょうど仕事を失う。誰でも助けてくれますか?あなたもどこでもあなたのスクリプトで再生機能を呼び出していないされているので、サウンドが再生されませんC#/ Unityピックアップにサウンドを追加すると動作しない

using UnityEngine; 
using System.Collections; 
using UnityEngine.UI; 


public class Player_Controller : MonoBehaviour { 

public float speed; 
public Text countText; 
private Rigidbody rb; 
private int count; 






void Start() 
{ 
    rb = GetComponent<Rigidbody>(); 
    count = 0; 
    SetCountText(); 
} 

void FixedUpdate() 
{ 

    float moveHorizonal = Input.GetAxis("Horizontal"); 
    float moveVertical = Input.GetAxis("Vertical"); 

    Vector3 movement = new Vector3(moveHorizonal, 0.0f, moveVertical); 

    rb.AddForce(movement * speed); 
} 
void OnTriggerEnter(Collider other) 
{ 
    if (other.gameObject.CompareTag("pickup")) 
    { 
     AudioSource audio = GetComponent<AudioSource>(); 


     other.gameObject.SetActive(false); 
     count = count + 1; 
     SetCountText(); 

    } 

} 
void SetCountText() 
{ 
    countText.text = "Count: " + count.ToString(); 
} 
} 
+1

'audio'オブジェクトに' Play() 'の呼び出しはありません。 –

答えて

1

。サウンドが同じゲームオブジェクトに添付されている場合は、Player_Controllerスクリプトがアタッチされています。開始機能でAudioSource audio = GetComponent<AudioSource>();を実行するだけで、機能でaudio.Play();を実行する必要があります。今

public float speed; 
public Text countText; 
private Rigidbody rb; 
private int count; 

AudioSource audio; 
void Start() 
{ 
    audio = GetComponent<AudioSource>(); 
    rb = GetComponent<Rigidbody>(); 
    count = 0; 
    SetCountText(); 
} 

void FixedUpdate() 
{ 

    float moveHorizonal = Input.GetAxis("Horizontal"); 
    float moveVertical = Input.GetAxis("Vertical"); 

    Vector3 movement = new Vector3(moveHorizonal, 0.0f, moveVertical); 

    rb.AddForce(movement * speed); 
} 
void OnTriggerEnter(Collider other) 
{ 
    if (other.gameObject.CompareTag("pickup")) 
    { 
     audio.Play(); //Play it 

     other.gameObject.SetActive(false); 
     count = count + 1; 
     SetCountText(); 
    } 

} 

void SetCountText() 
{ 
    countText.text = "Count: " + count.ToString(); 
} 

音が各ゲームオブジェクトに添付されている場合、あなたは拾う、あなたはそのコライダーのAudioSourceは、それをプレイするために取得GetComponentを使用する必要があります。

+0

これを行うと、いくつかのエラーが表示されます。 –

+0

1. エラー\t CS0619 \t 'Component.audio'は廃止されました: 'プロパティオーディオは廃止されました。代わりにGetComponent ()を使用してください。 (UnityUpgradable) '\t(20行目)2。 3.プロパティまたはインデクサ 'component.audio'は割り当てられません - それは読み取り専用です(行20) –

+0

実際には気にしません。私はバグを修正しましたが、サウンドはまだ再生されません。それをあなたが置いた通りに正確にコピーします。 –

関連する問題