Unconfigured Ad Widget

تقليص

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

تقليص
لا يوجد إعلان حتى الآن.

سؤال:الدبل كليك في اليونيتي

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

  • سؤال:الدبل كليك في اليونيتي

    السلام عليكم و رحمة الله و بركاته

    أنا جديد في المنتدى و أريد أحد أن يشرح لي كيفية عمل الدبل كليك في اليونيتي باستخدام الجافا سكربت

    عن طريق الكيبورد و الماوس و شكراً

  • #2
    الموضوع بسيط جداً ..... كل اللى هتعمله هو انك هتحدد متغير وتخزن جواه اطول وقت اللاعب ممكن ياخدة عشان يعمل الكليك التانية ومتغير تانى تخزن جواه عدد الكليكات .... هتكون حاجة زى كدة:

    كود:
    var timeToDoubleCL :float = 0.25f;
    var clickTimes : int ;
    
    function Update () {
    
            if (Input.GetMouseButtonDown(0))
            {
                if (clickTimes == 0)
                    clickTimes++;
                else if (clickTimes == 1)
                {
                    print("Double Clicked");
                    timeToDoubleCL = 0.25f;
                    clickTimes = 0;
                }
            }
    
            if (clickTimes == 1)
            {
                timeToDoubleCL -= Time.deltaTime;
                if (timeToDoubleCL <= 0)
                {
                    timeToDoubleCL = 0.25f;
                    clickTimes = 0;
                }
            }
    }
    حاول تفهمه لوحدك .. هو بسيط جداً .. لو محتاج شرح قولى.

    ملك إنحصر وجوده فى مملكة خياله

    تعليق


    • #3
      ممكن تشرحي الكود اكثر لو سمحت؟؟

      تعليق


      • #4
        امم ..... اوك
        كود:
        var timeToDoubleCL :float = 0.25f;
        var clickTimes : int ;
        اول متغير اللى اسمه timeToDoubleCL ده تخزن فيه اقصى وقت للاعب عشان يعمل الكليك التانية .. اللى لما يعملها هيتحسب انه عمل Double Click .... بمعنى انه لما يدوس اول كليك المتغير اللى تحته اللى هو clickTimes هيزيد واحد ... والمتغير الاول هيقل لحد ما يوصل لصفر ... لو وصل لصفر قبل ما اللاعب يدوس على الماوس تانى ... يبقى كدة مش هتتحسب Double Click ... و clickTimes هيرجع صفر تانى ...... لكن لو داس قبل ما يوصل لصفر يبقى كدة هو عمل Double Click

        كود:
        if (Input.GetMouseButtonDown(0))
                {
                    if (clickTimes == 0)
                        clickTimes++;
                    else if (clickTimes == 1)
                    {
                        print("Double Clicked"...;
                        timeToDoubleCL = 0.25f;
                        clickTimes = 0;
                    }
                }
        هنا انا كاتب لو اللاعب داس على كليك شمال ..... يبقى شوف لو clickTimes بيساوى صفر ..... زوده واحد ...... ولو بيساوى واحد ... يبقى كدة اللاعب عمل Double Click ..... اعمل الحاجة اللى انت عايزها تحصل وبعد كدة الـtimeToDoubleCL هيرجع تانى 0.25 و الـclickTimes هترجع صفر ... لاننا عايزين نرجع من الاول تانى.

        كود:
                if (clickTimes == 1)
                {
                    timeToDoubleCL -= Time.deltaTime;
                    if (timeToDoubleCL <= 0)
                    {
                        timeToDoubleCL = 0.25f;
                        clickTimes = 0;
                    }
                }
        وهنا انا بشوف لو الـclickTimes بيساوى واحد ... يعنى لو اللاعب داس مرة على الماوس .... يبقى نقص المتغير اللى هو timeToDoubleCL لحد ميوصل لصفر ( بستخدم الـdeltaTime عشان ينقص بربطه مع الوقت ... يعنى الـ0.25 دى هتوصل لصفر فى 0.25 ثانية تقريباً ) ... ولو وصل لصفر يبقى رجعه تانى لـ0.25 وخلى الـclickTimes تساوى زيرو عشان نرجع تانى من الأول.

        بس كدة.

        ملك إنحصر وجوده فى مملكة خياله

        تعليق


        • #5
          مشكور اخي
          و ما قصرت

          تعليق


          • #6
            طيب أخي زياد في شغلتين ما فهمتهم بالكود و هنن بالمتغيرات

            كود:
            var timeToDoubleCL :float = 0.25f;
            ليش حطيت f بعد قيمة المتغير ((شو معناها))

            كود:
            var clickTimes : int ;
            وهون int شو معناها

            شكرا سلفا لك
            يلعن روحك يا حافظ
            مدونتي
            http://blackcatgamedev.3abber.com
            قناتي على YouTube
            http://www.youtube.com/user/vexedwolff
            مدونة ألعاب العرب ((نرجو الدعم))
            http://arabgame.3abber.com
            آخر تطورات لعبتي World Of Cube((أرجو النقد و التقيم))
            إضغط هنا



            تعليق


            • #7
              المشاركة الأصلية بواسطة blackcat مشاهدة المشاركة
              طيب أخي زياد في شغلتين ما فهمتهم بالكود و هنن بالمتغيرات

              كود:
              var timeToDoubleCL :float = 0.25f;
              ليش حطيت f بعد قيمة المتغير ((شو معناها))

              كود:
              var clickTimes : int ;
              وهون int شو معناها

              شكرا سلفا لك
              اول واحدة ملهاش لازمة اوى فى الجافا ... لكن ليها فى السى شارب .... ودى بتميز المتغير ده بنوع Float يعن بتحدد ان نوعه Float عشان البرنامج ميحسبوش حاجة تانية ( Double مثلاً ).

              وتانى حاجة دى معناها عدد صحيح... integer

              ملك إنحصر وجوده فى مملكة خياله

              تعليق


              • #8
                المشاركة الأصلية بواسطة Shiny Arrow مشاهدة المشاركة
                اول واحدة ملهاش لازمة اوى فى الجافا ... لكن ليها فى السى شارب .... ودى بتميز المتغير ده بنوع Float يعن بتحدد ان نوعه Float عشان البرنامج ميحسبوش حاجة تانية ( Double مثلاً ).

                وتانى حاجة دى معناها عدد صحيح... integer
                شكرا جزيلا لك و الله يجزيك الخير
                يلعن روحك يا حافظ
                مدونتي
                http://blackcatgamedev.3abber.com
                قناتي على YouTube
                http://www.youtube.com/user/vexedwolff
                مدونة ألعاب العرب ((نرجو الدعم))
                http://arabgame.3abber.com
                آخر تطورات لعبتي World Of Cube((أرجو النقد و التقيم))
                إضغط هنا



                تعليق


                • #9
                  يا شباب مشكورين و ما قصرتو و الله يعطيكم العافية

                  تعليق

                  يعمل...
                  X