Unconfigured Ad Widget

تقليص

إعـــــــلان

تقليص

رثاء

‏خالص العزاء والمواساه في وفاة العضو القدير الأخ ياسر ياسين رحمه الله

https://www.maxforums.net/node/3676654
شاهد أكثر
شاهد أقل

مساعدة فى كود تشغيل الصوت

تقليص
X
 
  • تصفية - فلترة
  • الوقت
  • عرض
إلغاء تحديد الكل
مشاركات جديدة

  • مساعدة فى كود تشغيل الصوت

    السلام عليكم
    انا ياشباب بحاول انى اشغل صوت للسلاح
    بس انا عندى نوعين من الصوت
    صوت الطلقة الواحدة
    صوت الطلق المتتالى
    فا انا لما ادوس حرف C المفروض لما اجى اضرب يجبلى صوت الضربة الواحدة
    لكن لو دوست V المفروض ما يجبش الصوت عشان انا عامل متغير من نوع Boolean
    لكن هو على طول بيجبلى صوت الطلق حتى لما دوست V
    و فى كمان مشكلة انا لما بشغل صوت و عايز اعملو Stop قبل ما يخلص كود Audio.Stop مش شغال
    و الكود عند حضرتكم
    كود:
    var fs :System.Boolean =true  ;
    if (Input.GetKeyDown  (KeyCode.C )){
    fs= true;
    if(Input.GetKeyDown (KeyCode .V )){
    fs = false;
    if( fs.Equals ( true) && Input .GetButtonDown ("Fire1")){
    audio.Play();
    
    
    }
    }
    
    
    
    
    
    
    }
    }

  • #2
    طب بص
    انا رح اعيدلك صياغة الكود بطريقة احسن ..
    اولا الصوت الطلقة الواحدة هو نفسه نفسه يلي حتستخدمه في صوت الطلق المتتالي

    انت عايز تعمل Automatic Weapon مثل الرشاش يطلع عدة طلقات و الصوت كمان يتكرر
    ومثلا لو دست زر V يخليه Single Shot مثل المسدس طلقة واحدة



    كود:
    #pragma strict
    
    public var Automatic : boolean;
    public var ShootSound : AudioClip;
    
    
    function Update () {
    
    if(Input.GetKeyDown(KeyCode.V)){
    Automatic = !Automatic;
    }
    
    if(Automatic == true){
    
    if(Input.GetButton("Fire1")){
    
    Debug.Log("Many Bullet");
    audio.PlayOneShot(ShootSound);
    
    }
    
    }
    else{
    
    
    if(Input.GetButtonDown("Fire1")){
    
    Debug.Log("1Bullet");
    audio.PlayOneShot(ShootSound);
    
    }
    
    }
    
    
    
    }
    قم بتجربة الكود

    الان لو دست V يغير بين Automatic
    لو Automatic صح يبقى انت تضرب مثل الرشاش

    لو شايل الAutomatic يضرب طلقة طلفة


    الان يوجد مشكلة بسيطة
    وهو سرعة اطلاق النار يعني مثلا في Automatic الان لم يتم تحديد السرعة
    يعني ممكن يطلق 200 طلقة في الثانية

    لذلك يجب عمل FireRate


    كود:
    [COLOR="#0000CD"]private [/COLOR]var nextFire : float;
    [COLOR="#0000CD"]public [/COLOR]var [COLOR="#FF0000"]FireRate [/COLOR]: float = 0.1;
    
    
    if(Input.GetButton("Fire1") && [COLOR="#FF0000"] Time.time[/COLOR] > nextFire){
    	
    nextFire = Time.time + FireRate;
    Debug.Log("Many Bullet");
    audio.PlayOneShot(ShootSound);
    
    }

    يصبح الكود الكامل

    كود:
    #pragma strict
    
    public var Automatic : boolean;
    public var ShootSound : AudioClip;
    
    private var nextFire : float;
    public var FireRate : float = 0.1;
    
    
    function Update () {
    
    if(Input.[COLOR="#FF0000"]GetKeyDown[/COLOR](KeyCode.V)){
    [COLOR="#00FF00"]Automatic = !Automatic;[/COLOR]
    }
    
    if(Automatic == true){
    
    if(Input.[COLOR="#FF0000"]GetButton[/COLOR]("Fire1") &&  Time.time > nextFire){
    	
    nextFire = Time.time + FireRate;
    Debug.Log("Many Bullet");
    audio.PlayOneShot(ShootSound);
    
    }
    
    }
    else{
    
    
    if(Input.[COLOR="#FF0000"]GetButtonDown[/COLOR]("Fire1")){
    
    Debug.Log("1Bullet");
    audio.PlayOneShot(ShootSound);
    
    }
    
    }
    
    
    
    }
    ِ


    لو بدك الكود بالC# ماشي
    لو بدك اشرحلك الكود برضه ماشي

    لا تنس ادراج AudioSource لكي يتم اصدار الصوت

    تعليق


    • #3
      الله يخليك يا صديقى ممكن اضافة عالفيس عيزك فى كذة حاجة ضرورى والله و كمان عشان فى شوية حجات عايزك توضحهالى فى الكود
      الفيس بتاعى
      http://www.facebook.com/Medo.Prins

      تعليق

      يعمل...
      X