Audio 触发器在开始时被调用
我有一个声音被OnTiggerEnter触发,并检测声音是否正在播放以打开/关闭sprite渲染器 由于某种原因,当我开始游戏时,声音开始播放,这应该只由触发器调用 我使用players标记和debug.log检查了控制台的触发器,发现触发器方法在开始时没有被调用。但是,由于某些原因,声音在开始时和我按下触发器时播放,但没有重新打开精灵渲染器 旗语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
#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似乎没有被接收到。