Audio 触发器在开始时被调用

Audio 触发器在开始时被调用,audio,unity3d,game-physics,Audio,Unity3d,Game Physics,我有一个声音被OnTiggerEnter触发,并检测声音是否正在播放以打开/关闭sprite渲染器 由于某种原因,当我开始游戏时,声音开始播放,这应该只由触发器调用 我使用players标记和debug.log检查了控制台的触发器,发现触发器方法在开始时没有被调用。但是,由于某些原因,声音在开始时和我按下触发器时播放,但没有重新打开精灵渲染器 旗语 #pragma strict var Sprite2 : Sprite; //second sprite to renderer var sr

我有一个声音被OnTiggerEnter触发,并检测声音是否正在播放以打开/关闭sprite渲染器

由于某种原因,当我开始游戏时,声音开始播放,这应该只由触发器调用

我使用players标记和debug.log检查了控制台的触发器,发现触发器方法在开始时没有被调用。但是,由于某些原因,声音在开始时和我按下触发器时播放,但没有重新打开精灵渲染器

旗语

#pragma strict

var Sprite2 : Sprite; //second sprite to renderer

var sr : SpriteRenderer;

var hasBeenHit : boolean = false;
var flagCollisionSounderies: AudioSource;
var flagCollisionSound : AudioClip = null;
private var applauseRef: ApplauseScript;
private var go: GameObject;

var count : int = 0;


function Start () {
//access the spriteRenderer
flagCollisionSound = flagCollisionSounderies.clip;
sr = GetComponent(SpriteRenderer);
go = GameObject.Find("ClapMaster");
applauseRef = go.GetComponent(typeof(ApplauseScript));
//Debug.Log("bool: "+flagCollisionSounderies.isPlaying); //true already

}



function OnTriggerEnter2D(coll: Collider2D){
//Debug.Log("flagtriggered");
//change the flag to other flag
sr.sprite = Sprite2;
if (coll.gameObject.tag == "Player"){
    Debug.Log("poos");
    if (hasBeenHit == false){
        GameMaster.setFlags(GameMaster.getFlags()-1);
        GameMaster.addPointsToScore(100);

        if (flagCollisionSound != null){
            flagCollisionSounderies.PlayClipAtPoint(flagCollisionSound, transform.position);
            //Debug.Log("bool:" + flagCollisionSounderies.isPlaying);
            applauseRef.animRenderer.enabled = true;

        }
    }
}
hasBeenHit = true;  
}

function Update(){

    if(!flagCollisionSounderies.isPlaying){
        applauseRef.animRenderer.enabled = false;
        //applauseRef.playApplauseAnim = false;
    }else{
        //Debug.Log("sounderies     detecteddFsdlfkjsdlfksjdflksdjflkj1123123");
    applauseRef.animRenderer.enabled = true;
    //applauseRef.playApplauseAnim = true;
}


}
掌声剧本

#pragma strict

var SpriteLoad: Sprite[];
static var animSprites : Sprite[];

static var playerScriptRef: newplayer;

static var animRenderer: SpriteRenderer;
//private static var i : int = 7;
private static var frame : int = 3;
private static var Ymove: float = 0f;
private static var goingUp: boolean = false;
static var playApplauseAnim: boolean;


function Start(){
    animRenderer = GetComponent(SpriteRenderer);
    animSprites = SpriteLoad;
    playerScriptRef = GameObject.Find("Player 1").GetComponent(newplayer);
    //animRenderer.enabled = false;
    //playApplauseAnim = false;

}

    function Update(){
        PicMover();
        frame = (frame +1 ) % 4;
        animRenderer.sprite = animSprites[frame];   

}   



static function PicMover(){

    if(Ymove < 20 && goingUp){
        Ymove++;
    }else if(Ymove > -20 && !goingUp){
        Ymove--;
    }else if(Ymove == 20){
        goingUp = false;
    }else if(Ymove == -20){
        goingUp = true;
    }
    animRenderer.transform.position = new Vector2(10,10);
}

检查您的音频源,有一个选项在某处播放唤醒。。。禁用此选项,您的声音在开始时不应该播放。是的,我已经在UI上取消了此选项,但由于某些原因仍在发生:好吧,问题是我没有将其应用到预设的其余部分。谢谢你的直觉。现在的问题是,当声音被触发时,isPlaying似乎没有被接收到。