Unconfigured Ad Widget

تقليص

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

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

سؤال في السكربت

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

  • سؤال في السكربت

    السلام عليكم أخواني أريد مساعدتكم بخصوص سكربت ! مثلا لتشغيل ضوء السيارة أضغط زر l ولكن لإطفاء الضوء لايمكن ضغط نفس الزر فكيف يمكنني ضغط زر مثلا أول ضغطة زر l يشغل الضوء في الضغطة الثانية لنفس الزر ينطفئ الضوء ؟وجزاكم الله خيرا
    .:*{SH-3D}*:.

  • #2
    وعليكم السلام ورحمة الله وبركاته
    بسيطة, تابع معي :

    عندنا متغير من نوع Bool, واسمه مثلا Light.
    مع كل كبسة زر, رح يتنفذ الأمر التالي :

    كود:
    Light = !Light;
    وبشرح سريع, الأمر السابق معناه :
    إجعل المتغير Light يساوي عكس قيمة المتغير Light.
    وبالتالي إن كان يساوي صح, سيصبح خطأ, والعكس....
    لاحظ استخدام العلامة ( ! ) لإعطاء القيمة المنافية.

    انتهينا, بالتوفيق لك....


    تعليق


    • #3
      شكراً لك أخي لكني واجهت صعوبة فهل يمكن أن توضحلي أكثر , هذا هو الكود
      if (Input.GetKeyDown(KeyCode.L)){
      ;GameObject.Find("LightL").GetComponent("Light").enabled = true
      وهذا الكود جافا سكربت , متغير bool هو #C
      فما هو بديل bool في الجافا؟
      جزاكم الله خيراً أخي
      .:*{SH-3D}*:.

      تعليق


      • #4
        لا مشكلة,
        تابع معي هذه النقاط :

        1. في الجافا هنالك المتغيّر Boolean, والمماثل لمتغير Bool في السيشارب.
        1. خيار Enabled, وأيضا SetActive الخاص بالمكونات في اليونيتي, هو عبارة عن متغيّر Bool (قيمته صح أو خطأ).
        2. إذا قمنا بوضع علامة (!) قبل أي متغير من نوع Bool, فإننا بذلك نعني أننا نريد (عكس) قيمة المتغير.

        لنحول الحديث إلى أكواد (هذه المرة JS) :
        كود:
        public var MyValue = false;
        
        function Update ()
        {
        	if (Input.GetKeyDown (KeyCode.A))
        		MyValue = ! MyValue;
        }
        لدينا المتغير MyValue قيمته (خطأ).
        حين يتم الضغط على الزر A
        ستصبح قيمة المتغير عكس قيمته. أي ستصبح (صح).
        أيضا حين يتم الضغط على زر A مرة أخرى.
        ستنعكس قيمته مجددا, فيُصبح (خطأ).

        والأمر ذاته على أي متغيّر من نفس النوع..
        طبق نفس العملية على متغير Enabled الذي لديك.

        ==============================

        لكن ملاحظة جانبية على الكود الذي كتبته :
        حين يضغط اللاعب على الزر L, سيتم تنفيذ العمليات التالية لديك :
        1. البحث عن العنصر المُسمى LightL.
        2. البحث عن المكون Light الموجود على العنصر LightL.
        3. أخيرا, تغيير قيمة المكون Light.

        علما بأن عمليات البحث تُعتبر عمليات ثقيلة تؤدي لبطئ الجهاز.
        لذا, يجب أن تقوم بتعريف المتغير Light خارج الوظائف,
        وتُسند له القيمة المطلوبة في الوظيفة Start,
        وحين يضغط اللاعب على الزر L, لن يكون هنالك سوا عملية عكس القيمة فقط !

        فتكون قد وفرت الأداء. وأديت العملية المطلوبة...

        بالتوفيق لك......


        تعليق


        • #5
          المشاركة الأصلية بواسطة Rhhs مشاهدة المشاركة
          لا مشكلة,
          تابع معي هذه النقاط :

          1. في الجافا هنالك المتغيّر Boolean, والمماثل لمتغير Bool في السيشارب.
          1. خيار Enabled, وأيضا SetActive الخاص بالمكونات في اليونيتي, هو عبارة عن متغيّر Bool (قيمته صح أو خطأ).
          2. إذا قمنا بوضع علامة (!) قبل أي متغير من نوع Bool, فإننا بذلك نعني أننا نريد (عكس) قيمة المتغير.

          لنحول الحديث إلى أكواد (هذه المرة JS) :
          كود:
          public var MyValue = false;
          
          function Update ()
          {
          	if (Input.GetKeyDown (KeyCode.A))
          		MyValue = ! MyValue;
          }
          لدينا المتغير MyValue قيمته (خطأ).
          حين يتم الضغط على الزر A
          ستصبح قيمة المتغير عكس قيمته. أي ستصبح (صح).
          أيضا حين يتم الضغط على زر A مرة أخرى.
          ستنعكس قيمته مجددا, فيُصبح (خطأ).

          والأمر ذاته على أي متغيّر من نفس النوع..
          طبق نفس العملية على متغير Enabled الذي لديك.

          ==============================

          لكن ملاحظة جانبية على الكود الذي كتبته :
          حين يضغط اللاعب على الزر L, سيتم تنفيذ العمليات التالية لديك :
          1. البحث عن العنصر المُسمى LightL.
          2. البحث عن المكون Light الموجود على العنصر LightL.
          3. أخيرا, تغيير قيمة المكون Light.

          علما بأن عمليات البحث تُعتبر عمليات ثقيلة تؤدي لبطئ الجهاز.
          لذا, يجب أن تقوم بتعريف المتغير Light خارج الوظائف,
          وتُسند له القيمة المطلوبة في الوظيفة Start,
          وحين يضغط اللاعب على الزر L, لن يكون هنالك سوا عملية عكس القيمة فقط !

          فتكون قد وفرت الأداء. وأديت العملية المطلوبة...

          بالتوفيق لك......

          حقيقة دائما ما تثرينا بردودك ... استفدت كثيرا من الرد جعلة الله في ميزان حسناتك

          وتقبل تحياتي
          اللهم اني اسألك باسمك الاعظم اللذي اذا دعيت به اجبت ان تنصر المسلمين وجندك على الظالمين
          وتفتك باعدائك اعداء الدين


          تعليق


          • #6
            وضحت الفكرة أخي شكراً جزيلاً وجزاك الله خيراً أخي
            .:*{SH-3D}*:.

            تعليق


            • #7
              لا اعلم,
              شكرا لك, شهادة أعتز بها, جزاك الله خيرا...


              Sobhi-3d
              لا شكر على واجب, أهلا وسهلا,,,,


              تعليق

              يعمل...
              X