Arama butonu
Bu konudaki kullanıcılar: 1 misafir, 1 mobil kullanıcı
12
Cevap
1241
Tıklama
0
Öne Çıkarma
Unity Ses Oynatma Sorunu.
E
7 yıl
Çavuş
Konu Sahibi

Oynumda yürürken tuşa basıldığında;
void Update()
if (!GetComponent<AudioSource>().isPlaying && Input.GetKey(KeyCode.D))
{
GetComponent<AudioSource>().PlayOneShot(sesler[1]);
}
şu kod ile ses oynatıyorum ama yürümeyi bıraktığım anda da ses devam ediyor. tuşu bıraktığım anda sesi nasıl durdurabilirim? şimdiden cevaplar için teşekkürler :D



W
7 yıl
Yüzbaşı

Yürüme vektörünün magnitude ile bence yapabilirsin,

mesela if magnitude > 0:
play.sound
else:
dontplay.sound


Bu mesaja 1 cevap geldi.
K
7 yıl
Yüzbaşı

GetKey değil GetKeyDown dene



< Bu ileti mobil sürüm kullanılarak atıldı >
Bu mesaja 1 cevap geldi.
E
7 yıl
Çavuş
Konu Sahibi

Denemeye gerek bile yok kardeşim Getkeydown da tuşa basıldığında 1 kez çalıştırıyor. yani bunu kullanırsam düzgün bir yürüme elde edemem.




Bu mesajda bahsedilenler: @Kara Börü
E
7 yıl
Çavuş
Konu Sahibi

 
if (!GetComponent<AudioSource>().isPlaying && Input.GetKeyDown(KeyCode.A))
{
GetComponent<AudioSource>().PlayOneShot(sesler[1]);
}
else
{
GetComponent<AudioSource>().Stop();
}


böyle denedim ama olmadı magnitude ne için kullanılıyor ve yazdığın dil hangisi ben sadece C# biliyorum.


Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @wozniak
P
7 yıl
Çavuş

1.YÖNTEM:

if (!GetComponent<AudioSource>().isPlaying && Input.GetKeyDown(KeyCode.A))
{
GetComponent<AudioSource>().PlayOneShot(sesler[1]);
}
if (GetComponent<AudioSource>().isPlaying && Input.GetKeyUp(KeyCode.A))
{
GetComponent<AudioSource>().Stop();
}



2.YÖNTEM:

if (!GetComponent<AudioSource>().isPlaying && Input.GetKey(KeyCode.A))
{
GetComponent<AudioSource>().PlayOneShot(sesler[1]);
}
else if(GetComponent<AudioSource>().isPlaying && !Input.GetKey(KeyCode.A))
{
GetComponent<AudioSource>().Stop();
}





< Bu mesaj bu kişi tarafından değiştirildi Progressive288 -- 16 Temmuz 2018; 12:6:10 >
Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @egmtncakgn
E
7 yıl
Çavuş
Konu Sahibi

Kardeşim ikisinide denedim ama hala devam ediyor. Acaba ses dosyasının uzunluğundan kaynaklı bir problem olabilirmi?


Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @sonici
P
7 yıl
Çavuş

İkiside çalışıyor, ben bizzat denedim. Birden fazla ses oynatıyorsan sorun o olabilir. Birden fazla yapıp yapmadığını kontrol et.





< Bu mesaj bu kişi tarafından değiştirildi Progressive288 -- 16 Temmuz 2018; 17:10:57 >
Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @egmtncakgn
E
7 yıl
Çavuş
Konu Sahibi


using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class OHareket : MonoBehaviour {
public GameObject oyuncu, gm;
public int hiz = 5, yhiz = 200;
public bool yerde, dead, sagS, solS;
public Rigidbody2D rb;
public AudioClip[] sesler;
public AudioSource audioSource;

// Use this for initialization
void Start () {

rb = GetComponent<Rigidbody2D>();
dead = gm.GetComponent<GameManager>().dead;
audioSource = GetComponent<AudioSource>();

}

// Update is called once per frame
void Update () {


if (Input.GetKey(KeyCode.A))
{
oyuncu.transform.Translate(new Vector3(-hiz * Time.deltaTime, 0 ,0));
oyuncu.transform.localScale = new Vector3(1,1,1);
if (audioSource.isPlaying == false && Input.GetKey(KeyCode.A))
{
audioSource.PlayOneShot(sesler[1]);
sagS = true;
}
else
{
sagS = false;
}
if (sagS==false)
{
audioSource.Stop();
Debug.Log("A");
}

}

if (Input.GetKey(KeyCode.D))
{
oyuncu.transform.Translate(new Vector3(hiz * Time.deltaTime, 0, 0));
oyuncu.transform.localScale = new Vector3(-1, 1, 1);
if (audioSource.isPlaying == false && Input.GetKey(KeyCode.D))
{
audioSource.PlayOneShot(sesler[1]);
Debug.Log("1D");
}
else if (audioSource.isPlaying == true && Input.GetKeyUp(KeyCode.D))
{
audioSource.Stop();
Debug.Log("D");
}

}
if(Input.GetKeyDown(KeyCode.W) && yerde && !dead)
{
rb.AddForceAtPosition(new Vector2(0, yhiz), Vector2.up);
yerde = false;
audioSource.PlayOneShot(sesler[0]);
}

}

private void OnCollisionEnter2D(Collision2D col)
{
if (col.gameObject.tag == "Yer")
{
yerde = true;
}
}
}

kodun tamamı bu kardeşim. bir hata almıyorum calışıyor ama ses hala aynı. senin dediğinide denedim bu kodda olmadı? galiba bende bi sıkıntı var yanlış yere yazıyorum. acaba if in içinemi yazmalıyım yoksa dışına mı ? (Bu kodu sadece mantığını anlaman için yazdım kardeşim yoksa orjinali bu değildi forumlarda önerilenleri deniyorum farklı farklı)





< Bu mesaj bu kişi tarafından değiştirildi egmtncakgn -- 16 Temmuz 2018; 17:29:4 >
Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @sonici
B
7 yıl
Yüzbaşı

Karakterin hizi ile cozebilirsin.

Hiz 0 ise sesi kessin demen yeterli olacaktir.



< Bu ileti mobil sürüm kullanılarak atıldı >

P
7 yıl
Çavuş

Kardeşim farkettimde acemisin galiba, bende ilk başladığımda senin gibi böyle hatalar yapıyordum :D

HATALI KOD:

if (Input.GetKey(KeyCode.A))
{
oyuncu.transform.Translate(new Vector3(-hiz * Time.deltaTime, 0 ,0));
oyuncu.transform.localScale = new Vector3(1,1,1);
if (audioSource.isPlaying == false && Input.GetKey(KeyCode.A))
{
audioSource.PlayOneShot(sesler[1]);
sagS = true;
}
else
/// <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< Neyin else'i bu? sagS false olmaz çünkü A'ya hala basıyorsun bu yüzden 2. if parantezindeki A'ya basıyoru silmelisin.
{
sagS = false;
}
if (sagS==false)
{
audioSource.Stop();
Debug.Log("A");
}

}

DOĞRU KOD:

if (Input.GetKey(KeyCode.A)) // A'ya basınca
{
oyuncu.transform.Translate(new Vector3(-hiz * Time.deltaTime, 0 ,0));
oyuncu.transform.localScale = new Vector3(1,1,1);
if (audioSource.isPlaying == false )
{
audioSource.PlayOneShot(sesler[1]);
if(sagS != true)
{
sagS = true;
}
}

}
else // A'ya basmayınca
{
if (sagS != false)
{
sagS = false;
}
if(audioSource.isPlaying)
{
audioSource.Stop();
}
Debug.Log("A");
}





< Bu mesaj bu kişi tarafından değiştirildi Progressive288 -- 17 Temmuz 2018; 13:35:8 >


Bu mesajda bahsedilenler: @egmtncakgn
S
6 ay
Er

merhabalar
bendede ses sorunu var.effect leri calmaya calıstıgımda ugultu sesi gelıyor arkaplanda ruzgar sesi ve dier efektler duyuluyor.audio source olarak 1-fly camera digeride benım audıomamagerde var gozukuyor.Fakat gaia nın ruzgar sesi yagmur vs sesini veren audiosource ve malbers anımatıon nun audiosource ni bulamadım arka pland a atın kısnemesı duyuluyor.onları durdurbılsem calısacak benım efektler sanırım.

script

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System;
using UnityEngine.UI;
using UnityEngine.Audio;
using UnityEngine.UIElements;
public class Audio_player1 : MonoBehaviour
{
   
  public GameObject Player;
  public GameObject Rabbit;
  public GameObject Dear;
  public GameObject Bear;
  public GameObject Boar;
  public GameObject Wolf;
  public GameObject Duck;
  public GameObject Ibex;
  public GameObject Orc_Ursag;
  public AudioSource AudioSource;
  [SerializeField]
  private AudioClip firstAudioClip;
  [SerializeField]
  private AudioClip secondAudioClip;
  [SerializeField]
  private AudioClip thirdAudioClip;
  [SerializeField]
  private AudioClip forthAudioClip;
  [SerializeField]
  private AudioClip fifthAudioClip;
  [SerializeField]
  private AudioClip sixthAudioClip;
  [SerializeField]
  private AudioClip seventhAudioClip;
  [SerializeField]
  private AudioClip eighthAudioClip;
  [SerializeField]
  private AudioClip ninethAudioClip;
  [SerializeField]
  private AudioClip tenthAudioClip;
  [SerializeField]
  private AudioClip eleventhAudioClip;
  [SerializeField]
  private AudioClip twelwethAudioClip;
  [SerializeField]
  private AudioClip thireenthAudioClip;   
  [SerializeField]
  public AudioSource audioSource;  
  [SerializeField]
  AudioListener audioListener;   
  public AudioClip[] clips;
  [SerializeField] public AudioSource FlyCam;

  void Start()
  {
    //audioSource = this.GetComponent<AudioSource>();
    //GetComponent<AudioSource>().Stop();
    GetComponent<AudioSource>();     
    audioSource.volume = 0.45f;     
    AudioSource.loop = true;
  }
  void Update()   
  {
    if (AttackRange1.audi == 1)
    {
       
      FlyCam.Stop();
      audioSource = GetComponent<AudioSource>();       
      audioSource.clip = firstAudioClip;
      audioSource.Play();
    }
    if (AttackRange1.audi == 2)
    {       
      audioSource = GetComponent<AudioSource>();      
      audioSource.clip = secondAudioClip;
    }
    if (Attack_dear.dr == 1)
    {       
      audioSource = GetComponent<AudioSource>();
      audioSource.clip = thirdAudioClip;
    }
    if (Attack_dear.dr == 2)
    {       
      audioSource = GetComponent<AudioSource>();
      audioSource.clip = forthAudioClip;      
    }
    if (Attack_boar.br == 1)
    {       
      audioSource = GetComponent<AudioSource>();
      audioSource.clip = fifthAudioClip;      
    }
    if (Attack_boar.br == 2)
    {       
      audioSource = GetComponent<AudioSource>();
      audioSource.clip = sixthAudioClip;      
    }
    if (Attack_wolf.vlf == 1)
    {       
      audioSource = GetComponent<AudioSource>();
      audioSource.clip = seventhAudioClip;       
    }
    if (Attack_wolf.vlf == 2)
    {       
      audioSource = GetComponent<AudioSource>();
      audioSource.clip = eighthAudioClip;       
    }
    if (Rabbit_attack.rbt == 1)
    {       
      audioSource = GetComponent<AudioSource>();
      audioSource.clip = ninethAudioClip;       
    }
    if (Attack_duck.dck == 1)
    {
      //AudioSource.clip = tenthAudioClip;
      //audioSource.Play();
      audioSource = GetComponent<AudioSource>();
      audioSource.clip = tenthAudioClip;       
    }
    if (Attack_duck.dck == 2)
    {       
      audioSource = GetComponent<AudioSource>();
      audioSource.clip = eleventhAudioClip;       
    }
    if (Atack_Orc.dr == 1)
    {       
      audioSource = GetComponent<AudioSource>();
      audioSource.clip = twelwethAudioClip;           
    }
    if (Atack_Orc.dr == 2)     
    {       
      audioSource = GetComponent<AudioSource>();
      audioSource.clip = thireenthAudioClip;       
    }     
    audioSource = GetComponent<AudioSource>();
    audioSource.Play();
    //audioSource.PlayOneShot(audioSource.clip);
    //audioSource.PlayOneShot(audioSource.clip, Vector3.one);
    if (audioSource.isPlaying) 
    {
      Debug.Log("Audio is playing");
    }

    //if (((Player.activeInHierarchy) && (Healt_player1.pq == 0)) || ((Bear.activeInHierarchy) && (AttackRange1.ar == 0)) || ((Dear.activeInHierarchy) && (Attack_dear.ar == 0)) || ((Boar.activeInHierarchy) && (Attack_boar.ar == 0)) 
    //|| ((Wolf.activeInHierarchy) && (Attack_wolf.ar == 0)) || ((Rabbit.activeInHierarchy) && (Rabbit_attack.ar == 0)) || ((Ibex.activeInHierarchy) && (Ibex_attack.ar == 0)) || ((Duck.activeInHierarchy) && (Attack_duck.ar == 0)) || ((Orc_Ursag.activeInHierarchy) && (Atack_Orc.ar == 0)))
    //{
    //audioSource.Stop();
    //audioSource.enabled = false;
    //}

  }
}


play edildiginde Debug.Log("Audio is playing");i goruyorum,audio source de clıp degisiyor,volume calısıyor,loop tıkl ıoluyor gelgelelim ugultu ve arkaplan seslerını duyuyorum sadece playı sonlandırırken play e bastıgımda effeckt gelıyor.cıkamadım ıcınden.yardım lutfen.
tsklr sımdıden
slmr



S
6 ay
Er

tekrar merhabascript i revize ettim.Fakat degişen birsey olmadı.İsin garibi inpector penceresinde AudioSource nun logaritmicRollof una tıkladıgımda gayet guzel calısıyor.anlayamadım.Birde void Start() ı void Aweke() olarak degiştirip deneyecegim.Yardımlarınıza sımdıden tesekkurler.
slmr

using UnityEngine;

public class Audio_player1 : MonoBehaviour
{
   
  public GameObject Player;
  public GameObject Rabbit;
  public GameObject Dear;
  public GameObject Bear;
  public GameObject Boar;
  public GameObject Wolf;
  public GameObject Duck;
  public GameObject Ibex;
  public GameObject Orc_Ursag;
  [SerializeField]
  public AudioSource AudioSource;
  [SerializeField]
  private AudioClip firstAudioClip;
  [SerializeField]
  private AudioClip secondAudioClip;
  [SerializeField]
  private AudioClip thirdAudioClip;
  [SerializeField]
  private AudioClip forthAudioClip;
  [SerializeField]
  private AudioClip fifthAudioClip;
  [SerializeField]
  private AudioClip sixthAudioClip;
  [SerializeField]
  private AudioClip seventhAudioClip;
  [SerializeField]
  private AudioClip eighthAudioClip;
  [SerializeField]
  private AudioClip ninethAudioClip;
  [SerializeField]
  private AudioClip tenthAudioClip;
  [SerializeField]
  private AudioClip eleventhAudioClip;
  [SerializeField]
  private AudioClip twelwethAudioClip;
  [SerializeField]
  private AudioClip thireenthAudioClip;   
     
  void Start()
  {
    //audioSource = this.GetComponent<AudioSource>();
    //GetComponent<AudioSource>().Stop();
    //GetComponent<AudioSource>();     
    //audioSource.volume = 0.45f;     
    //AudioSource.loop = true;
  }
  void Update()   
  {
    if (AttackRange1.audi == 1)
    {       
      AudioSource.clip = firstAudioClip;      
    }
    if (AttackRange1.audi == 2)
    {                
      AudioSource.clip = secondAudioClip;
    }
    if (Attack_dear.dr == 1)
    {            
      AudioSource.clip = thirdAudioClip;
    }
    if (Attack_dear.dr == 2)
    {             
      AudioSource.clip = forthAudioClip;      
    }
    if (Attack_boar.br == 1)
    {            
      AudioSource.clip = fifthAudioClip;      
    }
    if (Attack_boar.br == 2)
    {             
      AudioSource.clip = sixthAudioClip;      
    }
    if (Attack_wolf.vlf == 1)
    {             
      AudioSource.clip = seventhAudioClip;       
    }
    if (Attack_wolf.vlf == 2)
    {            
      AudioSource.clip = eighthAudioClip;       
    }
    if (Rabbit_attack.rbt == 1)
    {            
      AudioSource.clip = ninethAudioClip;       
    }
    if (Attack_duck.dck == 1)
    {            
      AudioSource.clip = tenthAudioClip;       
    }
    if (Attack_duck.dck == 2)
    {       
      //audioSource = GetComponent<AudioSource>();
      AudioSource.clip = eleventhAudioClip;       
    }
    if (Atack_Orc.dr == 1)
    {       
      //audioSource = GetComponent<AudioSource>();
      AudioSource.clip = twelwethAudioClip;           
    }
    if (Atack_Orc.dr == 2)     
    {       
      //audioSource = GetComponent<AudioSource>();
      AudioSource.clip = thireenthAudioClip;       
    }            
    GetComponent<AudioSource>();     
    AudioSource.volume = 0.45f;     
    AudioSource.loop = true;
    AudioSource.Play();
    //AudioSource.PlayOneShot(audioSource.clip);
    //
    if (AudioSource.isPlaying) 
    {
      Debug.Log("Audio is playing");
    }
    // oyuncular oldugunde efect kesıliyor sorungıderilenekadar bu bolumu ıptal ettım
    //if (((Player.activeInHierarchy) && (Healt_player1.pq == 0)) || ((Bear.activeInHierarchy) && (AttackRange1.ar == 0)) || ((Dear.activeInHierarchy) && (Attack_dear.ar == 0)) || ((Boar.activeInHierarchy) && (Attack_boar.ar == 0)) 
    //|| ((Wolf.activeInHierarchy) && (Attack_wolf.ar == 0)) || ((Rabbit.activeInHierarchy) && (Rabbit_attack.ar == 0)) || ((Ibex.activeInHierarchy) && (Ibex_attack.ar == 0)) || ((Duck.activeInHierarchy) && (Attack_duck.ar == 0)) || ((Orc_Ursag.activeInHierarchy) && (Atack_Orc.ar == 0)))
    //{
    //audioSource.Stop();
    //audioSource.enabled = false;
    //}

  }
}



DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.