Şimdi Ara

Unity Ses Oynatma Sorunu.

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
14
Cevap
0
Favori
1.248
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • 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



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

    mesela if magnitude > 0:
    play.sound
    else:
    dontplay.sound
  • GetKey değil GetKeyDown dene

    < Bu ileti mobil sürüm kullanılarak atıldı >
  • Kara Börü kullanıcısına yanıt
    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.
  • wozniak kullanıcısına yanıt
     
    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.
  • egmtncakgn kullanıcısına yanıt
    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 >
  • Kardeşim ikisinide denedim ama hala devam ediyor. Acaba ses dosyasının uzunluğundan kaynaklı bir problem olabilirmi?
  • Yapay Zeka’dan İlgili Konular
    Netflix Ses Sorunu
    6 yıl önce açıldı
    Fifa 25 dualsense ses sorunu
    4 ay önce açıldı
    Skyrim ses sorunu.
    13 yıl önce açıldı
    Daha Fazla Göster
  • egmtncakgn kullanıcısına yanıt
    İ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 >

  • 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 >




  • Karakterin hizi ile cozebilirsin.

    Hiz 0 ise sesi kessin demen yeterli olacaktir.

    < Bu ileti mobil sürüm kullanılarak atıldı >
  • egmtncakgn kullanıcısına yanıt
    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 >




  • 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





  • 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;

        //}


      }

    }





  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.