Unconfigured Ad Widget

تقليص

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

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

شــــــــ دوال اليونتى ــــــــــرح

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

  • شــــــــ دوال اليونتى ــــــــــرح

    بسم الله الرحمن الرحيم

    بسم الله..و الصلاه و السلام على رسول الله سيدنا محمد صلى الله عليه و على اله و صحبه وسلم.
    بناء على طلب احد الاعضاء , سيكون هذا الموضوع بأمر الله لشرح دوال اليونتى أو بمعنى تانى الـفانكشنز بتاعه اليونتى, و بأمر الله هيكون الموضوع متجدد يوميا يمعدل دالتين الى خمس دوال يوميا حتى يتم الانتهاء منهم.و اعذرونى على المعدل البسيط دا بسبب ضغط الشغل.

    و بأمر الله هيكون فى شرح وافى و امثله (مش مجرد امثله اليونتى المعهوده ) , هيكون فى امثله واقعيه من العاب حقيقه مش مجرد العاب مسابقات.

    الشروط :
    أولا : الدعاء لى ولوالدى وزوجتى وابنى.
    ثانيا : من يستطبع نشر الموضوع يريت ينشر رابط المنتدى فقط وليس المحتوى , ليكون الموضوع فى الاصل سبق للمنتدى العزيز اللى مشترك فيه جوالى 10 سنين الى الان
    ثالثا : يريت عدم الرد فى الموضوع حتى يكون الموضوع كامل ومرتب لأى شخص يريد القراءه , واى ردود مرحب بيها على الخاص
    وكل عيد وانتم طيبين..

    أخوكم
    محمد
    M HAMMAD
    M.A.Moniem

    الله--سبحان الله وبحمده سبحان الله العظيم--المستعان
    قال الأنيمتور المناضل منعم كامل :
    لو لم أكن أنيمتور لوددت أن أكون أنيمتور

  • #2
    القواعد الأساسبه

    أولا : القواعد العامه و المفاهيم

    - الفانكشنز أو الدوال دى بيتم استدعائها من الاسكربت نفسه وكل فانكشن بيتم استدعائها على حدا مهما كانت مكرره..يعنى ايه الكلام دا ؟!
    يعنى لو انا عندى 3 اسكربتات مختلفه وكل واحد فيهم جواه Function Update بيتم استدعاء كل واحده لوحدها و ليس مجرد استدعاء واحد للثلاث دوال...جد فهم ؟!طيب نبسطها عشان لو لسه معصلجه مع حد " اصل الحته دى مهمه جدا عشان تقدر تعمل Optimizing للأسكربت"

    نقول تانى : لو انا بعمل لعبه ضرب ناؤ و فيها 3 اسكربتات هما ( اسكربت تحرك اللاعب ) و ( اسكربت الذكاء بتاع العدو ) و ( اسكربت الحسابات بتاعه الاسكوور)
    - طبعا الاسكربتات التلاته لا غنى عن ان يتم استدعائم كل لحظه فى اللعبه عشان نقدر نحرك اللاعب فى اى وقت && العدو يقدر يدور عليه && يتم احتساب اى نقطه للاعب او عليه.....يبقى نستنج ان التلاته فيهم Function Update
    طيب..لعد كدا اليونتى بيرفع سماعه التلفون و يحصل السيناريو التالى :

    اليونتى :الو . معايا اسكربت ضرب النار..انت معاك حاجه ؟
    اسكربت ضرب النار : اه يا يونتى , انا معايا فانكشن ابديت
    اليونتى : الو . معايا اسكرت الذكاؤ..انت معاك حاجه ؟
    اسكربت الذكاء : اه يا يونتى انا . ومعايا فانكشن ابديت
    اليونتى : الو. معايا اسكربت الحسابات..انت معاك حاجه ؟
    اسكربت الحسابات : اه انا يا يونتى .. ومعايا فانكشن ابديت..

    اليونتى يفكر مع نفسه يلاقى انو معاه 3 فانكشن بنفس الاسم و نفس خصائضها (الاستدعاء كل فريم) لاكن ميمجهمشى ..فيعتبرهم 3 ابديت..و هكذا

    طيب الفانكشنز دى الاتصال بيها (رقم التلفون اللى اليونتى بيطلبه ) بيجى منين ؟؟!!
    لو انت شغال JS , اليونتى بيعرف لوحدو مكان الفانكشم جوا الاسكربت
    لاكن لو شغال BOOاو C# اليونتى بيحتاج انك تكون كاتب اسم المونو بيهفير (اجبارى) فى اول الاسكربت , عشان يقدر يعمل اتصالاته ... ودا احد اكبر الاسباب اللى تخليك فى اول اسكربت مثلا لل C# تكتب اسم الاسكربت على مسمى ال class زى كدا :

    كود:
    using UnityEngine;
    
    using System.Collections;
    
    [I][B]public class example : MonoBehaviour [/B][/I]{[COLOR=#000000][/COLOR]




    الحاجه التانيه اللى تندرج تحت قائمه القواعد العامه و المفاهيم, هى الاوامر اللى ممكن تديها للفانكشن نفسها...لألألألأ ثانيه بقى عشان اركز معاك!!
    ابه الاوامر دى ؟
    بص يا سيدى الفناكشن هيا عباره عن محموعه اوامر بتتجمع كلها فى نطاق واحد بيتحشر بين العلامتين المغروفين {} و مجموعه الاوامر دى او الفانكشن انا ممكن "أأمرها" بأوامر أكبر ممكن مجازا نسميها اوامر تنفيذيه..او الطرق..او الوسائل..
    طيب ممكن مثال..
    تعالى نكلم عربى الاول. أوامر تنفذيه زى مثلا لما اقول للفناكشن دى ابدأى التنفييذ أو مثلا اقولها وقفى التنفيذ أو ممكن أمر زى مثلا ابدأى التنفيذ بعد عدد ثوانى معين..أو ممكن ابدأى التنفيذ تكراريا بعد مرور (س) من الثوانى....هى دى طبيعه الاوامر اللى بقدر ادها للأمر الكبير اللى اسمو فانكشن.
    M HAMMAD
    M.A.Moniem

    الله--سبحان الله وبحمده سبحان الله العظيم--المستعان
    قال الأنيمتور المناضل منعم كامل :
    لو لم أكن أنيمتور لوددت أن أكون أنيمتور

    تعليق


    • #3
      معقولة إلى حد الان لا يوجد اي تشجيع لاهم موضوع @@ جزاك الله خيرا استاذي ويسعدك ويوفقق انت واسرتك ان شاء الله متابع لان هذا الموضوع بالنسبة لي سيكون الاهم في البرنامج شكرا مرة اخرى استاذنا الغالي ،، بس في ملاحظات xd اخطاء الكيبورد اثناء الكتابة ان شاء الله تظبطها في وقت تاني
      الحمدلله

      تعليق


      • #4
        الأوامر التنفيذيه-الوسائل

        الأوامر التنفذيه أو الوسائل


        نبدأ مع بعض بالترتيب اللى :
        Invoke
        InvokeRepeating
        CancelInvoke
        IsInvoking
        StartCoroutine
        StopCoroutine
        StopAllCoroutines

        Invoke

        الفانكشن التنفيذيه دى هدفها انها بتأمر بتنفيذ فانكشن"من العاديه" فى وقت معين بنحدده بالثوانى.
        وتركيبها بيكون كالتالى :
        أنفوك (اسم الفانكشن "على هبئه مصطلح أو استرنج" , الوقت على هيئه فلووت او رقم عشرى لأن مثلا 0ز5 هيكون معناها نص ثانيه..وهكذا )
        function Invoke (methodName : String, time : float)

        طيب زى ايه ؟
        الفانكشن اللى جايه دى واللى اسمها myPrintFunction عباره عن فانكشن فيها امر طباعه عادى للكونسول..انا استدعيتها بأمر ال Invoke وحددت له انه ينفذ بعد 4 ثوانى فالشكل كالتالى:
        الشكل الاول انا حددت الثوانى انهم 4 || و الشكل التانى انا عملت الثوانى على انها متغير بحيث يكون مرن للتغير فى اى وقت عشان يتفير فى التنفيذ وفى الرساله المطبوعه :

        كود:
        Invoke ("myPrintFunction" , 4);
        
        function myPrintFunction (){
        	Debug.Log ("my invoke working correctly in 4 seconds" );
        }
        كود:
        var needeTime : float = 4 ;
        
        Invoke ("myPrintFunction" , needeTime );
        
        function myPrintFunction (){
        	Debug.Log ("my invoke working correctly in" + needeTime  + "seconds" );
        }
        M HAMMAD
        M.A.Moniem

        الله--سبحان الله وبحمده سبحان الله العظيم--المستعان
        قال الأنيمتور المناضل منعم كامل :
        لو لم أكن أنيمتور لوددت أن أكون أنيمتور

        تعليق


        • #5
          حلو جدا انا اشتغلت جافا بس هتابع معاك بالتوفيق
          MY PROFILE ON BEHANCE

          تعليق


          • #6
            الأوامر التنفذيه أو الوسائل



            InvokeRepeating

            الفانكشن التنفيذيه دى هدفها انها بتأمر بتنفيذ فانكشن"من العاديه" زى اللى فاتت كدا و لكن فى وقت معين بنحدده بالثوانى وكل فتره معينه احنا بنحددها بالثوانى برده..يغنى متكرره زى حلقات اللوووب.
            وتركيبها بيكون كالتالى :
            أنفوك (اسم الفانكشن "على هبئه مصطلح أو استرنج" , الوقت على هيئه فلووت او رقم عشرى لأن مثلا 0.5 هيكون معناها نص ثانيه..وهكذا , الفتره التكراريه اللى عاوزيتها "يعنى كل اد ايه الفناكشن تتنفذ تانى)
            nvokeRepeating (methodName : String, time : float, repeatRate : float)

            طيب زى ايه ؟
            هناخد نفس المثال اللى فات بتاع الفناكشن اللى اسمها myPrintFunction عباره عن فانكشن فيها امر طباعه عادى للكونسول..انا استدعيتها بأمر ال InvokeRepeating وحددت له انه ينفذ بعد 4 ثوانى و يكرر التنفيذ كل ثانيتين ونص فالشكل كالتالى:
            الشكل الاول انا حددت الثوانى انهم 4 || و الشكل التانى انا عملت الثوانى على انها متغير بحيث يكون مرن للتغير فى اى وقت عشان يتفير فى التنفيذ وفى الرساله المطبوعه و برده عملت معامل التكرار "اللى هو الوقت اللى بيمر قبل تنفيذها مره اخرى" على انه متغير برده :

            كود:
            InvokeRepeating ("myPrintFunction" , 4, 2.5);
            
            function myPrintFunction (){
            	Debug.Log ("my invoke working correctly in 4 seconds and will do again each 2.5 Second" );
            }
            كود:
            var needeTime : float = 4 ;
            var timefactor : float = 2.5 ;
            InvokeRepeating ("myPrintFunction" , needeTime, timefactor );
            
            function myPrintFunction (){
            	Debug.Log ("my invoke working correctly in" + needeTime  + "seconds and will repeat each "+ timefactor );
            }
            M HAMMAD
            M.A.Moniem

            الله--سبحان الله وبحمده سبحان الله العظيم--المستعان
            قال الأنيمتور المناضل منعم كامل :
            لو لم أكن أنيمتور لوددت أن أكون أنيمتور

            تعليق


            • #7
              مشكور يا أخي على هذا الجهد
              ولكن؛ لو تستطيع أن تكتب باللغة العربية الفصحى لكان أفضل.
              أنا شخصيا أفهم اللهجة المصرية ولكن الموضوع فيه دوال وبرمجة و...، وأنت تكتب باللهجة المصرية وتكون عندك أخطاء إملائية بعض الأحيان، فيحصل بعض (اللخبطة شوية).
              شكرا مجددا

              تعليق


              • #8
                اسف اخي علي تخريب الترتيب
                بس ياريت يكون في كتاب pdf حتي يظل محفوظا ويسهل الوصول اليه وجزاك الله خيراً
                M-Essam@

                تعليق


                • #9
                  الأوامر التنفذيه أو الوسائل

                  الأوامر التنفذيه أو الوسائل



                  CancelInvoke

                  الفانكشن التنفيذيه دى هدفها انها بتأمر تنفيذ فانكشن من العاديه..ومش ايقافها دلوقتى وبس..ولكن ايقافها من جميع الاتصالات اللى بتطلبها حاليا..يعنى لو الفانكشن دى اتعمل لها ( 11 Invoke ) بمعنى استدعاء 11 مره من امكان مختلفه..وتم بعد كدا عمل لها CancelInvoke مره واحده فقط..يتم ايقاف الـ 11 اتصال جميعا.
                  بالاضافه كمان لو الفانكشن معمول لها InvokeRepeating بحيث انها تتكرر كل 3 قوانى مثلا..بيتم ايقافها الان و ايقاف تنفيذها كل 3 ثوانى..
                  يعنى من الاخر بيقطع اى اتصال ليها..!

                  وتركيبها بيكون كالتالى :
                  أنفوك (اسم الفانكشن "على هبئه مصطلح أو استرنج" CancelInvoke(methodName : String)

                  طيب زى ايه ؟
                  هناخد نفس المثال اللى فات بتاع الفناكشن اللى اسمها myPrintFunction عباره عن فانكشن فيها امر طباعه عادى للكونسول..
                  انا عملت فى فانكشن Start بعد بدايه تنفيذ التطبيق..انتظر خمس ثوانى و بعد كدا اعمل CancelInvoke للفانكشن بتاعه الطباعه واللى هيا حاليا بتطهر كل واحد ثانيه.

                  كود:
                  InvokeRepeating ("myPrintFunction" , 4, 1);
                  
                  function myPrintFunction (){
                  	Debug.Log ("my invoke working correctly in 4 seconds and will do again each 1 Second" );
                  function Start (){
                  Yield WaitForSeconds (5);
                  CancelInvoke("myPrintFunction");
                  }
                  }
                  نلاحظ شىء مهم جدا :
                  ان الـ CancelInvoke بتختلف عن الاتنين اللى فاتو فى انها بيتم استدعائها من داخل فانكشن تانيه..زى Satrt أو Update .. لكن Invoke و InvokeRepeating بيتم استدعائها من خارج الفانكشن او داخلها (زى المتغيرات Variables )

                  ملحوظه : أعتذر عن اى اخطاء املائيه..ولكن الكى بورد بتاعتى ازرارها انجليزيه فقط !
                  M HAMMAD
                  M.A.Moniem

                  الله--سبحان الله وبحمده سبحان الله العظيم--المستعان
                  قال الأنيمتور المناضل منعم كامل :
                  لو لم أكن أنيمتور لوددت أن أكون أنيمتور

                  تعليق


                  • #10
                    الأوامر التنفذيه أو الوسائل



                    IsInvoking

                    الفانكشن التنفيذيه دى هدفها انها بتقول لنا ان الفنكشن (س) شغاله فى التنفيذ دلوقتى ولا لأ..او بمعنى تانى Boolean بيجيب لنا الاجابه بنعم أو لا..
                    مثلا اننا نقول لها..يا IsInvoking هل الفانكشن اللى اسمها myPrintFunction شغاله ولا لأ..تكون الاجابه True او False
                    طيب..ايه الافاده منها ؟؟
                    مثلا ممكن ندى امر بتنفيذ فانكشن2 معينه بعد انتهاء فانكشن1 اخرى ( على اعتبار ان الفانكشن1 غير مستقره فى وقتها..يعنى ممكن تطول او تتأخر أو ممكن تكون اسرع من اى وقت ).

                    وتركيبها بيكون كالتالى :
                    أنفوك (اسم الفانكشن "على هبئه مصطلح أو استرنج" CancelInvoke(methodName : String)

                    طيب زى ايه ؟
                    هناخد نفس المثال اللى فات بتاع الفناكشن اللى اسمها myPrintFunction عباره عن فانكشن فيها امر طباعه عادى للكونسول..
                    أنا هحط الفانكشن التنفيذيه IsInvoking داخل فانكشن من نوع Update و هخليها تبحث فى اى وقت الفنكشن المقال بتاعنا myPrintFunction تكون انتهت من التنفيذ...تنتظر 5 ثوانى و بعد كدا تكتب لنا فى الكونسول انها انتهت و بعدين هتبدأ ..وبعدين تبدأ تانى فى التنفيذ..وهكذا..

                    زى كدا :

                    كود:
                    Invoke ("myPrintFunction");
                    
                    
                    Function Update (){
                    	If (!IsInvoking(“myPrintFunction”){ // it returns False
                    		Yield WaitForSeconds (5);
                    		Debug.Log (“the myPrintFunction is not running now & 5 seconds passed , we will start again”);
                    		Invoke(“myPrintFunction”);
                    	}
                    }
                    function myPrintFunction (){
                    	Debug.Log ("my invoke working correctly Now);
                    }
                    ملحوظه : أى اسأله فى الكود..يريت محدش يتردد..واى اخطاء املائيه فى الكود او غيره..اعتذر عنها حيث انى بكتب من غير Compiler و شكرا على المتابعه..
                    M HAMMAD
                    M.A.Moniem

                    الله--سبحان الله وبحمده سبحان الله العظيم--المستعان
                    قال الأنيمتور المناضل منعم كامل :
                    لو لم أكن أنيمتور لوددت أن أكون أنيمتور

                    تعليق


                    • #11
                      الأوامر التنفذيه أو الوسائل



                      StartCoroutine

                      خللينا بقى فى القعده دى بأمر الله ننهى موضوع الاوامر التنفيذيه "الوسائل" , علشان نبدأ فى الهدف الرئيسى للموضوع.

                      الفانكشن التنفيذيه دى بتعمل بظبط شىء قريب جدا من Yield WaitForSeconds ولكنها بمعنى اصح منظمه شويه عنها..بمعنى ايه منظمه اكتر؟؟
                      فى ال WaitForSeconds انت بتنفذها علطول و تستنى النتيجه بتاتها ولكن لا يمكنك ايقافها فى اى وقت..لكن الفناكشن التنفيذيه StartCoroutine لما بتبدأ تنفيذها تقدر توقف التنفيذ فى اى وقت بمجرد كتابه Yield فقط !
                      ومن الجدير بالذكر انها مهمه جدا لو انت عاوز تنظم الاسكربت بتاعك بحيث يكون دقيق جدا فى الوقت اللى بيبدأ فيه فى اوامر مغينه و الوقت اللى بيقف فيه عن تنفيذ شىء محدد.

                      طيب ناحد مثال:

                      المثال دا انا بطلع على الشاشه 3 رسايل :
                      1- اول لما اللعبه تبدأ رساله بتقول ان اللعبه بدأت
                      2- اول لما ببدأ فى تنفيذ الفناكشن التنفيذيه دى
                      3 - لما فعليا الفناكشن التنفيذيه بتكون قامت لعملها الطبيعى وهو الانتظار لمده معينه

                      كالتالى :

                      كود:
                      #pragma strict
                      
                      function Start() {
                      	Debug.Log ("we started to run the game now");
                          StartCoroutine(myPrintFunction(2.0)); 
                          Debug.Log ("we excuted the CO-Routine, but still in progress");
                      }
                      
                      function myPrintFunction (waitingFactor : float) {
                          yield WaitForSeconds (waitingFactor);
                          Debug.Log ("now we wait two seconds befor debugging");
                      }
                      انا كتب رسايل شبه واضحه عشان تكون سهله الفهم.
                      هنلاحظ انها هيا هيا لو استخدمت انى اطلب الفناكشن بالطريقه العاديه زى myPrintFunction() بدلا من StartCoroutine(myPrintFunction(X)) و لاحظ ان X هو الوقت اللى بمرره خلال الفناكشن..و يبقى الشكل الطبيعى كدا :

                      كود:
                      #pragma strict
                      
                      function Start() {
                      	Debug.Log ("we started to run the game now");
                          myPrintFunction(); 
                          Debug.Log ("we excuted the CO-Routine, but still in progress");
                      }
                      
                      function myPrintFunction () {
                          yield WaitForSeconds (2);
                          Debug.Log ("now we wait two seconds befor debugging");
                      }
                      ملحوظه :
                      - مستخدمى اليونتى اسكربتنج (الجافا بتاعه اليونتى ) مش ضرورى يستخدموها . حيث ان اى وقت بيتم استدعاء Yield WaitForSeconds فبيتم تنفيذ الفانكشن التنفبذيه دى.
                      - ممكن استحدامها بكثره سواء فى الجافا او السى شارب لانها غير مؤثره على الاداء..دا انت ممكن تعتبرها بتدى راحه للعقل "المحرك" علشان يرتب اموره فى الحجات اللى جايه.
                      - علشان اوقف التنفيذ بستحدم فقط :
                      كود:
                      yield;
                      بس دا هيوقف التنفيذ فى "فريم واحد" و يتنقل للفريم التالى.
                      M HAMMAD
                      M.A.Moniem

                      الله--سبحان الله وبحمده سبحان الله العظيم--المستعان
                      قال الأنيمتور المناضل منعم كامل :
                      لو لم أكن أنيمتور لوددت أن أكون أنيمتور

                      تعليق


                      • #12
                        الأوامر التنفذيه أو الوسائل



                        ٍStopCoroutine

                        الفانكشن التنفيذيه دى بتعمل عكس اللى فاتت..دى بتحلينا نوقف تنفيذ فانكشن تنفيذيه معينه ( بنحدد اسمها " على هيئه استرنج")..وبيتم توقيف تنفيذها مش مه واجده..لألألألألأ...بتم توقيف كل الطلبات الى تنفيذها داخل نفس المونو (أمممم..الملف او الاسكربتايه..زى ما انت بتسميها بلغتك الخاصه).
                        بمعنى لو احنا فى عندنا ملف مثلا اسمو test.JS وجوا الملف دا عملنا 10 فانكشن تنفيذيه من نوع StartCoroutine لنفس الشىء(فانكشن و لتكن myPrintFunction) ولاكن بأوامر محتلفه و قيم مختلفه..
                        وجينا استحدمنا مره واحده StopCoroutine ("myPrintFunction") هنلافى ال 10 طلبات للتنفيذ تم وقفهم مره واحده.

                        طيب و يبقى المفروض ان المثال يكون كدا :

                        كود:
                        #pragma strict
                        
                        function Start() {
                        	Debug.Log ("we started to run the game now");
                            StartCoroutine(myPrintFunction(5.0)); 
                            Debug.Log ("we excuted the CO-Routine, but still in progress");
                            StopCoroutine ("myPrintFunction");
                        }
                        
                        function myPrintFunction (waitingFactor : float) {
                            yield WaitForSeconds (waitingFactor);
                            Debug.Log ("now we wait 5 seconds befor debugging");
                        }
                        طبعا اللى يجرب المثال هيلاقى اننا بالرغم من اننا عملها StopCoroutine قبل ما ال 5 ثوانى بتوع اتلنفيذ يمرو..هيلاقى ان برده بعد مرور ال 5 ثوانى تم ارسال الامر للكونسول؟؟!!
                        امال بقى ؟؟
                        هى مش شغاله ؟؟
                        لأ شغاله طبعا و اسأل مجرب..
                        بس ليها شرط واحد..
                        ان احنا لما نستدعى الفانكشن فى البدايه واحنا بنعمل StartCoroutine لازم نستدعيها كـ String بمعنى اننا نطلبها بالشكل دا :
                        كود:
                        StartCoroutine("myPrintFunction",(5.0));
                        و ليس بالشكل دا :
                        كود:
                        StartCoroutine(myPrintFunction(5.0));
                        و الموضوع منظقى جدا , طالما انا وانا بعمل Stop بتعامل معها كأنها String يبقى لازم وانا فى الاول بعمل Start اتعامل برده معاها كأنها String و يبقى المثال السليم هو اللى جاى :

                        كود:
                        #pragma strict
                        
                        function Start() {
                        	Debug.Log ("we started to run the game now");
                            StartCoroutine("myPrintFunction",(5.0)); 
                            Debug.Log ("we excuted the CO-Routine, but still in progress");
                            StopCoroutine ("myPrintFunction");
                        }
                        
                        function myPrintFunction (waitingFactor : float) {
                            yield WaitForSeconds (waitingFactor);
                            Debug.Log ("now we wait 5 seconds befor debugging");
                        }
                        هتلاحظ ان بعد مرور ال 5 ثوانى , لن يتم ارسال اى امر للكونسول , لأننا عملنا Stop قبل ما ال 5 ثوانى يمرو
                        M HAMMAD
                        M.A.Moniem

                        الله--سبحان الله وبحمده سبحان الله العظيم--المستعان
                        قال الأنيمتور المناضل منعم كامل :
                        لو لم أكن أنيمتور لوددت أن أكون أنيمتور

                        تعليق


                        • #13
                          الأوامر التنفذيه أو الوسائل



                          ٍStopAllCoroutines

                          الفانكشن التنفيذيه دى بتعمل زى اللى فاتت بظبط..الأضافه الوحيده انها مش بتوقف تنفيذ فنكشن محدده داخل المونو..لكنها بتوقف كل الـ Coroutines اللى فى نفس المونو..بمعنى انها بتستهدف الكل.

                          زى ايه ؟
                          هنقول ان انا عندى الاسكربت دا فى اول اللبعه بيعمل StartCoroutine الى 3 thk;ak وكل منها بتحتوى على امر للكونسول بانو يكتب رساله بعد 3 ثوانى :
                          كود:
                          #pragma strict
                          
                          
                          StartCoroutine ("myPrintingFunction1");
                          StartCoroutine ("myPrintingFunction2");
                          StartCoroutine ("myPrintingFunction3");
                          
                          function myPrintingFunction1 () {
                          	yield WaitForSeconds(3);
                              Debug.Log ("this is message number 1 ");
                          }
                          
                          function myPrintingFunction2 () {
                          	yield WaitForSeconds(3);
                              Debug.Log ("this is message number 2 ");
                          }
                          
                          function myPrintingFunction3 () {
                          	yield WaitForSeconds(3);
                              Debug.Log ("this is message number 3 ");
                          }
                          بعد تشغيل اللعبه هنلاقى ان بعد مرور 3 ثوانى بظبط بيتم ظهور ال 3 رسايل فى الكونسول.
                          بمجرد ما انى اضيف السطر الخاص لتوقيف الك فى المكان المناسب ( فى اخر سطر فى الاسكربت التالى ) لن يتم ارسال الامر للكونسول حيث انه تم توقيف كل العمليات بأمر واجد قبل مرور ال 3 ثوانى الخاصه بأرسال الرساله :

                          كود:
                          #pragma strict
                          
                          
                          StartCoroutine ("myPrintingFunction1");
                          StartCoroutine ("myPrintingFunction2");
                          StartCoroutine ("myPrintingFunction3");
                          
                          function myPrintingFunction1 () {
                          	yield WaitForSeconds(3);
                              Debug.Log ("this is message number 1 ");
                          }
                          
                          function myPrintingFunction2 () {
                          	yield WaitForSeconds(3);
                              Debug.Log ("this is message number 2 ");
                          }
                          
                          function myPrintingFunction3 () {
                          	yield WaitForSeconds(3);
                              Debug.Log ("this is message number 3 ");
                          }
                          
                          StopAllCoroutines();
                          بكدا نكون الحمدلله انتهينا من "الاوامر التنفيذيه او الوسائل " و البوست اللى جاى هنبدأ فى الدوال بأمر الله.
                          أتمنة يكون الشرح مفيد وموفق..وبالتوفيق ان شاء الله للجميع..
                          أسألكم الدعاء لى ولوالدى وزوجتى وابنى بالمغفره والرضا من الله عز وجل
                          M HAMMAD
                          M.A.Moniem

                          الله--سبحان الله وبحمده سبحان الله العظيم--المستعان
                          قال الأنيمتور المناضل منعم كامل :
                          لو لم أكن أنيمتور لوددت أن أكون أنيمتور

                          تعليق


                          • #14
                            جزاك الله خيرا اخي منعم
                            My Channel
                            UDK And 3d max tutorial
                            Facebook page
                            علي الجابر
                            لبيك يا اقصانا
                            http://up.foraten.net/f/foraten.net_13417550011.swf

                            تعليق


                            • #15
                              saving
                              priniting
                              studiing
                              تسلم يمنعم انت انسان محترم جدااا وربنا يباركلك فى حياتك كلها
                              MY PROFILE ON BEHANCE

                              تعليق

                              يعمل...
                              X