http://www.4shared.com/rar/2ITyj53C/Desktop.html
الأكواد موجودة في الرابط .
time1>>كود الوقت
time2>> كود القائمة
الكود time 2 عند كلمة Here!!! مشكلتي
عندي قائمة esey والهارد والميدوم , لمن نضغط على اي واحد من الثلاثه فإن المتغير gametime.timer
يأخذ قيمة معينة وهي قيمة الوقت المتاح للعب هذا كلو تمام
طيب في نفس القائمة في زر play ابغى لمن يضغط عليه يتحمل مشهد جديد وفي المشهد الجديد يظهر الوقت اللي حددنا قيمته في المشهد السابق
حطيت الكود التالي :
Application.LoadLevel("level1");
gametime.RunTheTimer = true;
لكن الوقت لم يظهر في المشهد الجديد اللي هو اللعبة
كيف المشهد الجديد يتعرف على المتغير gametime.RunTheTimer ؟ يعني هل في شي ناقص المفروض نكتبه في المشهد الجديد عشان يصير فيه اتصال او تواصل بين مشهد القائمة ومشهد اللعبة حتى يسطتيع مشعد اللعبة التعرف على متغير الوقت واظهاره
ماالعمل ؟
احتاج حل سريع
محرك الألعاب الوينتي
البرمجة بالجافا سكربت
عفوا نسيت وضع هذه الأشياء المهمه
بانتظاركم
انتظر مساعدتكم بفارغ الصبر ..
طيب انا هديك جواب عام نسبياً.
ملحوظة قبل ما نبدأ : لما يتم استدعاء Scene/Level جديد بيتم تدمير كل الـGameObjects اللى فى الـScene اللى قبله وتنزل الـGameObjects الجديدة الخاص بالـScene ده..
فمن الطبيعى ان السين التانى ميقدرش يوصل للمتغير ده لأن الـGameObject الموجود فيه تم تدميره.
______________________________________________________________________________________
فإنت هتحتاج تستخدم الـFunction دى : DontDestroyOnLoad()
واللى الـFunction دى بتعمله هو انها بتمنع تدمير الـObject المطلوب لما يتم إستدعاء Scene جديد.
عملياً انت هتكتب كدة:
زى ما هو موجود فى الـDocumentation, وهتكتبه فى الـScript الخاصة بالوقت .. اللى هى time1 على ما اعتقد.كود:function Awake () { DontDestroyOnLoad (transform.gameObject); }
______________________________________________________________________________________
بس هتحتاج تبدل السطرين دول فى الـtime2
خليهم كدة :كود:Application.LoadLevel("level1"); gametime.RunTheTimer = true;
تحسباً بس عشان لو ملحقش يوصلهم...كود:gametime.RunTheTimer = true; Application.LoadLevel("level1");
بس كدة.
لا يمكن تشغيل التايمر قبل تحميل الScene الجديد
إلا في حال استخدمت DontDestroyOnLoad في السكريبت الخاص بتشغيل التايمر..
يعني مثل ما قال الاخ Shiny Arrow
ضع RunTimer True قبل LoadLevel
الله يعطيكم العافيه جميعا ..
شككككرررا جزيلا ..
Bookmarks