我让脚本在播放器与墙碰撞时实例化一个浮动文本,问题在于,由于播放器与墙碰撞并在退出前保持碰撞一段时间,因此实例化了多个文本。有什么方法只能检测一次碰撞吗?
脚本:
private void OnCollisionEnter(Collision collision){
if(collision.gameObject.CompareTag("Wall")){
if(WallFloatingText){
ShowWallFloatingText();
count = count + 3;
countText.text = count.ToString();
}
}
}
答案 0 :(得分:2)
我建议创建一个标记来检测墙壁是否已被击中。
private bool collisonOccured = false;
private void OnCollisionEnter(Collision collision){
if(collisonOccured)
return;
if(collision.gameObject.CompareTag("Wall")){
if(WallFloatingText){
ShowWallFloatingText();
count = count + 3;
countText.text = count.ToString();
collisonOccured = true;
}
}
}
别忘了关闭标志