gpt4 book ai didi

c# - audio.Play() 不工作

转载 作者:行者123 更新时间:2023-11-30 14:57:36 24 4
gpt4 key购买 nike

我有一个名为 Timer.cs 的脚本。这个脚本连接到一些 GUI 文本,它显示游戏中剩余的时间量。

此脚本还附加了一个音频源,其中选择了我想要的声音。当时钟归零时,文字变为“GAME OVER!”并且角色控制锁定;但是,声音不播放。

我场景中的所有其他 audio.Play() 实例工作正常,当我将音频源设置为“唤醒时播放”时,播放没有问题。可能是什么问题?

Using UnityEngine;
using System.Collections;

public class Timer : MonoBehaviour {


public float timer = 300; // set duration time in seconds in the Inspector
public static int sound = 1;
public static int go = 1;
bool isFinishedLevel = false; // while this is false, timer counts down

void Start(){
PlayerController.speed = 8;
PlayerController.jumpHeight = 12;
}

void Update (){
if (!isFinishedLevel) // has the level been completed
{
timer -= Time.deltaTime; // I need timer which from a particular time goes to zero
}

if (timer > 0)
{
guiText.text = timer.ToString();
}
else
{
guiText.text = "GAME OVER!"; // when it goes to the end-0,game ends (shows time text over...)

audio.Play();

int getspeed = PlayerController.speed;
PlayerController.speed = 0;

int getjumpHeight = PlayerController.jumpHeight;
PlayerController.jumpHeight = 0;
}
if (Input.GetKeyDown("r")) // And then i can restart game: pressing restart.
{
Application.LoadLevel(Application.loadedLevel); // reload the same level
}
}
}

最佳答案

鉴于您将其作为更新例程的一部分进行调用,我不得不猜测问题出在您反复调用它。 IE。只要timer <= 0,你就在每一帧调用它.

你不应该调用 Play()不止一次。或者至少在播放时不会再出现。一个简单的修复方法是

if(!audio.isPlaying)
{
audio.Play();
}

看看这是否解决了您的问题,然后您可以从那里开始。

关于c# - audio.Play() 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20603052/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com