我有一个名为gameOverScreen的Canvas预制件,它附有一个音频剪辑。只要调用以下函数,就会克隆它。
public static void GameOver()
{
GameObject gameOverScreen = Instantiate(Resources.Load("gameOverScreen")) as GameObject;
gameOverScreen.audio.Play();
}
问题是音频无法播放。我通过在另一个函数中使用audio.PlayOneShot()来解决它,但是有一些原因导致它在这种情况下不起作用吗?
答案 0 :(得分:0)
在c#中你可以使用它:
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
public class SoundController : MonoBehaviour {
public AudioClip clip;
void Start () {
AudioSource.PlayClipAtPoint(clip, Vector3.zero, 1.0f);
}
}
在Javascript中你可以使用它:
var myClip : AudioClip;
function Start () {
AudioSource.PlayClipAtPoint(myClip, transform.position);
}
但是如果你想在实例化中播放声音:
#pragma strict
var prefabBullet : Transform;
var forwardForce = 1000;
var myClip : AudioClip;
function Update()
{
if (Input.GetButtonDown("Fire2"))
{
var instanceBullet = Instantiate (prefabBullet, transform.position,
Quaternion.identity);
instanceBullet.GetComponent.<Rigidbody>().AddForce(transform.forward *
forwardForce);
AudioSource.PlayClipAtPoint(myClip, transform.position);
}
}