السلام عليكم أخواني أريد مساعدتكم بخصوص سكربت ! مثلا لتشغيل ضوء السيارة أضغط زر l ولكن لإطفاء الضوء لايمكن ضغط نفس الزر فكيف يمكنني ضغط زر مثلا أول ضغطة زر l يشغل الضوء في الضغطة الثانية لنفس الزر ينطفئ الضوء ؟وجزاكم الله خيرا
إعـــــــلان
تقليص
لا يوجد إعلان حتى الآن.
سؤال في السكربت
تقليص
X
-
وعليكم السلام ورحمة الله وبركاته
بسيطة, تابع معي :
عندنا متغير من نوع Bool, واسمه مثلا Light.
مع كل كبسة زر, رح يتنفذ الأمر التالي :
كود:Light = !Light;
إجعل المتغير Light يساوي عكس قيمة المتغير Light.
وبالتالي إن كان يساوي صح, سيصبح خطأ, والعكس....
لاحظ استخدام العلامة ( ! ) لإعطاء القيمة المنافية.
انتهينا, بالتوفيق لك....
-
شكراً لك أخي لكني واجهت صعوبة فهل يمكن أن توضحلي أكثر , هذا هو الكود
if (Input.GetKeyDown(KeyCode.L)){
;GameObject.Find("LightL").GetComponent("Light").enabled = true
وهذا الكود جافا سكربت , متغير bool هو #C
فما هو بديل bool في الجافا؟
جزاكم الله خيراً أخي.:*{SH-3D}*:.
تعليق
-
لا مشكلة,
تابع معي هذه النقاط :
1. في الجافا هنالك المتغيّر Boolean, والمماثل لمتغير Bool في السيشارب.
1. خيار Enabled, وأيضا SetActive الخاص بالمكونات في اليونيتي, هو عبارة عن متغيّر Bool (قيمته صح أو خطأ).
2. إذا قمنا بوضع علامة (!) قبل أي متغير من نوع Bool, فإننا بذلك نعني أننا نريد (عكس) قيمة المتغير.
لنحول الحديث إلى أكواد (هذه المرة JS) :
كود:public var MyValue = false; function Update () { if (Input.GetKeyDown (KeyCode.A)) MyValue = ! MyValue; }
حين يتم الضغط على الزر A
ستصبح قيمة المتغير عكس قيمته. أي ستصبح (صح).
أيضا حين يتم الضغط على زر A مرة أخرى.
ستنعكس قيمته مجددا, فيُصبح (خطأ).
والأمر ذاته على أي متغيّر من نفس النوع..
طبق نفس العملية على متغير Enabled الذي لديك.
==============================
لكن ملاحظة جانبية على الكود الذي كتبته :
حين يضغط اللاعب على الزر L, سيتم تنفيذ العمليات التالية لديك :
1. البحث عن العنصر المُسمى LightL.
2. البحث عن المكون Light الموجود على العنصر LightL.
3. أخيرا, تغيير قيمة المكون Light.
علما بأن عمليات البحث تُعتبر عمليات ثقيلة تؤدي لبطئ الجهاز.
لذا, يجب أن تقوم بتعريف المتغير Light خارج الوظائف,
وتُسند له القيمة المطلوبة في الوظيفة Start,
وحين يضغط اللاعب على الزر L, لن يكون هنالك سوا عملية عكس القيمة فقط !
فتكون قد وفرت الأداء. وأديت العملية المطلوبة...
بالتوفيق لك......
تعليق
-
المشاركة الأصلية بواسطة Rhhs مشاهدة المشاركةلا مشكلة,
تابع معي هذه النقاط :
1. في الجافا هنالك المتغيّر Boolean, والمماثل لمتغير Bool في السيشارب.
1. خيار Enabled, وأيضا SetActive الخاص بالمكونات في اليونيتي, هو عبارة عن متغيّر Bool (قيمته صح أو خطأ).
2. إذا قمنا بوضع علامة (!) قبل أي متغير من نوع Bool, فإننا بذلك نعني أننا نريد (عكس) قيمة المتغير.
لنحول الحديث إلى أكواد (هذه المرة JS) :
كود:public var MyValue = false; function Update () { if (Input.GetKeyDown (KeyCode.A)) MyValue = ! MyValue; }
حين يتم الضغط على الزر A
ستصبح قيمة المتغير عكس قيمته. أي ستصبح (صح).
أيضا حين يتم الضغط على زر A مرة أخرى.
ستنعكس قيمته مجددا, فيُصبح (خطأ).
والأمر ذاته على أي متغيّر من نفس النوع..
طبق نفس العملية على متغير Enabled الذي لديك.
==============================
لكن ملاحظة جانبية على الكود الذي كتبته :
حين يضغط اللاعب على الزر L, سيتم تنفيذ العمليات التالية لديك :
1. البحث عن العنصر المُسمى LightL.
2. البحث عن المكون Light الموجود على العنصر LightL.
3. أخيرا, تغيير قيمة المكون Light.
علما بأن عمليات البحث تُعتبر عمليات ثقيلة تؤدي لبطئ الجهاز.
لذا, يجب أن تقوم بتعريف المتغير Light خارج الوظائف,
وتُسند له القيمة المطلوبة في الوظيفة Start,
وحين يضغط اللاعب على الزر L, لن يكون هنالك سوا عملية عكس القيمة فقط !
فتكون قد وفرت الأداء. وأديت العملية المطلوبة...
بالتوفيق لك......
حقيقة دائما ما تثرينا بردودك ... استفدت كثيرا من الرد جعلة الله في ميزان حسناتك
وتقبل تحياتياللهم اني اسألك باسمك الاعظم اللذي اذا دعيت به اجبت ان تنصر المسلمين وجندك على الظالمين
وتفتك باعدائك اعداء الدين
تعليق
تعليق