Unconfigured Ad Widget

تقليص

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

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

برجاء من له الخبره فى برمجة اليونيتى يدخل ليساعدنى

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

  • برجاء من له الخبره فى برمجة اليونيتى يدخل ليساعدنى

    أولا السلام عليكم ورحمة الله وبركاته
    أنا ما زلت جديدا فى مجال تصميم الألعاب فى برنامج يونيتى ولكنى الأن أقوم بمحاولة تصميم لعبة على اليونيتى تشبه لعبة snail mail و لقد قمت بتصميم كل الأجسام والشخصيات ولكنى فى البرمجة لست قوى فواجهتنى عدة تساؤلات أردت منكم أن تساعدونى بها

    ولقد قمت بترتيبها حتى يسهل الإجابة عليها :
    1- السؤال الأول : هل يوجد كود معين يجعل مجسم واحد فقط يتحرك بحركة الماوس إلى اليمين و اليسار فقط؟

    2- السؤال الثانى : ماهو الكود الذى يجعل المجسم يتحرك إلى الأمام مع مرور الوقت تزداد سرعته وعند عدم ملامسته للأرض يقع وتعود اللعبة للبدايه ؟

    3- السؤال الثالث : كيف أجعل المجسم عند لمسه لمجسم أخر يقفز لأعلى مع الحفاظ بتقدمه إلى الأمام ؟

    4- السؤال الرابع : ما هو كود إطلاق النار وكيف تؤثر النار فى العدو وكيف أستطيع تغير السلاح عند ملامسه مجسم معين ؟

    5- السؤال الخامس : ما هو الكود الذى يجعلك تنتقل إلى المرحلة المقبلة عند ملامستك لخط النهاية ؟

    هذه كل التساؤلات الحالية والرجاء أن يتم الرد عليها لأنى بحاجه شديده لها وجزاكم الله كل خير وإنى أسف على التطويل
    #~Z-0_0-Z~#

    مرحباً بكم فى موقعى


  • #2
    من اسألتك اعتقد انك مبتدأ

    لكن الأسئلة عشان تفهم اجابتها لازم تكون على الأقل فاهم البرمجة شوية

    بالنسبة للسؤال الأول

    عشان تعمل الحركة دى اللى هى الماوس يحرك مجسم
    لازم تاخد الــ Vector2 من الماوس وتحولة لــ Vector3 عشان المجسم يتحرك مع الماوس

    لأن الماوس بيتحرك على الشاشة مش فى اللعبة بمعنى ان الماوس ملهوش x,y,z زى اى Vector3 تانى
    ومعتقدش انك هتفهم لو شرحتلك الطريقة لأنك لازم يكون عندك خلفية عن الحاجت دى فى الأساس

    اما بالنسبة
    للسؤال التانى

    فانك عشان تحرك المجسم ممكن تستخدم تلت طرق :

    الطريقة الأولى


    كود:
    transform.position += transform.TransformDirection(Vector3.forward);
    الطريقة التانية


    كود:
    rigidbody.AddForce(0, 0, 10 * Time.deltaTime);

    الطريقة التالتة

    كود:
    using UnityEngine;
    using System.Collections;
    
    public class NewBehaviourScript : MonoBehaviour
    {
    public float speed = 10;
    
    CharacterController characterController;
    
    Vector3 moveDirection;
    
    void Start()
    {
    characterController = GetComponent("CharacterController"... as CharacterController;
    
    }
    
    void Update()
    {
    moveDirection = transform.TransformDirection(Vector3.forward);
    
    
    characterController.Move(moveDirection * Time.deltaTime * speed);
    }
    }


    نيجى بقا للشرح

    الطريقة الاولى فى الطريقة دى انا بضيف لمكان الجيم اوبجيكت ده فيكتور ثرى بيقوله يمشى فى الــ Vector3.forward يعنى محور الــZ
    انا استخدمت الـــTransformDirection عشان احول الــWorld لــLocal
    عشان لو مستخدمتش الـــTransformDirection كدا الجيم اوبجيكت ده هيمشى فى محور الـZ اللى هو تبع الــWorld يعنى ثابت ملوش دعوة بدوران الجيم اوبجيكت يعنى مثلاً لو الجيم اوبجيكت ده لف لتحت يعنى محور الــZ بتاعه هو بقا باصص لتحت كدا برضو هيمشى فى محور الزيد بتاع الــWorld مش بتاعه هو عشان نخليه يمشى فى المكان اللى هو باصص عليه استخدمت الــTransformDirection
    ان شاء الله تكون وصلت


    ملحوظة:
    فى الطريقة دى الجيم اوبجيكت مش هيهتم بأى فيزياء يعنى مثلاً لو قابله جيم اوبجيكت تانى فى طريقة هيعدى من جواه كأن مفيش اى حاجة خالص عشان بالطريقة دى انا اديت الجيم اوبجيكت امر ان محور الــz بتاعه يزيد بدرجات معينة فى مدة معينة مهما حصل حتى لو Hulk جيه وقف فى وشه هيعديه برضو من غير ميهتم بأى فيزياء تصادم.



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



    الطريقة التالتة فى الطريقة دى انا نقلتلك كل السكربت عشان فيها شوية حاجات لازم تفهمها

    فى بداية السكربت انا عملت متغير من نوع float عشان اخزن فيه السرعة اللى انا عايز الجيم اوبجيكت يمشى بيها , انا عاملها 10 شوف انت السرعة اللى تحبها واكتب رقمها, وبعد كدا عملت متغير من نوع CharacterController عشان اخزن فيه الــCharacterController اللى موجود فى الجيم اوبجيكت ده عشان الطريقة دى محتاجة ان يكون الجيم اوبجيكت ده عليه كومبوننت اسمه Character Controller,
    بعد كدا عملت متغير من نوع Vector3 عشان اخزن فيه الأتجاه والسرعة اللى انا عايز الجيم اوبجيكت يمشى فيه,

    بعد كدا دخلت على الفانكشن اللى اسمها Start() الفانكشن دى الكود اللى جواها بيحصل مرة واحدة بس اول ماللعبة تبدأ على طول,

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

    بعد كدا دخلت على الفانكشن اللى اسمها Update() الفانكشن دى الكد اللى جواها بيحصل مرة كل Frame يعنى بيحصل على طول طالما اللعبة لسة شغالة.

    وقلت جوة الفانكشن دى ان المتغير اللى من نوع Vector3 (اللى عملته فوق برضو) اللى اسمه moveDirection, هيساوى


    كود:
    transform.TransformDirection(Vector3.forward)
    ده نفس الكلام بتاع الطريقة الأولنية

    وقولتله كدا عشان اخزن جوه المتغير ده الأتجاه اللى انا عايز الجيم اوبجيكت يمشى فيه.

    خلاص كدا انا خزنت كل حاجة انا محتاجها

    روحت بقا قولت للمتغير اللى من نوع CharacerController ان الـmove (يعنى اللــVector3 اللى هيستخدمه عشان يتحرك) بتاعك هو الـمتغير اللى من نوع Vector3 اللى اسمه moveDirection, وروحت ضربته فى حاجة اسمها Time.deltaTime دى بتخلى الحاجة دى بدل متحصل كل Frame تحصل كل ثانية عشان اتحكم اكتر فى السرعة, بعد كدا ضربتها فى المتغير اللى من نوع float اللى اسمه speed عشان اخليه يترحك 10 وحدات فى الثانية (الـ10 وحدات دى هى الرقم اللى متخزن جوة المتغير اللى اسمه speed تقدر تغيره عادى).
    ان شاء الله تكون وصلت دى كمان


    بالنسبة للسؤال التالت

    هتستخدم فى دى فانكشن اسمها OnTriggerEnter() ودى بتحصل لما الجيم اوبجيكت يدخل جوة كوليدر من Trigger

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

    بالنسبة
    للسؤال الرابع

    فى درس انا عامله عن طريقة اطلاق النار وتأثيرها فى العدو
    هتلاقيه موجود فى المواضيع اللى انا عاملها

    اما بالنسبة لتغير السلاح فدى موجودة فى موقع اليونيتى فى درس اسمه FPS Tutorial شوفه هيفيدك جداً

    بالنسبة
    للسؤال الخامس

    فأنا برضو عامل درس للطريقة دى هتلاقيه فى المواضيع اللى انا عاملها برضو


    اتمنى انك تكون فهمت ولو فى حاجة مش واضحة اتفضل اٍسأل


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

    تعليق


    • #3
      المشاركة الأصلية بواسطة Shiny Arrow مشاهدة المشاركة
      [COLOR=#ffffff]من اسألتك اعتقد انك مبتدأ

      أنا كنت متآكد إن مفيش حد غيرك هيرد أو يجآوب ومتقين من كدا تمآمآ

      كمل كدا وإنا متآكد هتحصل على الإشرآف + إحترآم النآس ليك...
      بصرآحة أثبت للجميع إنك أكثر من محترف برمجة في اليونتي
      بالتوفيق
      سنحيى كراما بأوطاننا ،، ونبني من العدل مستقبلا
      نشارك تغييرنا كلنا ،، على النفس ثوراتنا أولا
      نفك قيود الهوى والفساد ،، وبالعلم ننهض في كل واد
      وهذه خواطر جيل البناء ،، نريد بها رفعة للبلاد
      سنبني إذا ماهدمنا العلل ،، ولا لسنا نقبل أي خلل
      بإحساننا تستقيم الحياة ،، خواطر دعوة للعمل
      http://www.youtube.com/watch?v=M_eTSAu5SLQ

      تعليق


      • #4
        شكرا أخ Shiny Arrow على ردك المفصل هذا
        بس أنا كان نفسى تحطلى أى رابط درس أو شرح للسؤال الأول

        وكمان فى سؤال معلش نسيت أضعه فى الاسئلة وهو كيفية جعل مجسم ( plan ) مواجه للكاميرا مهما تحركت بسطحة ؟
        #~Z-0_0-Z~#

        مرحباً بكم فى موقعى

        تعليق


        • #5
          المشاركة الأصلية بواسطة Shiny Arrow مشاهدة المشاركة
          من اسألتك اعتقد انك مبتدأ

          لكن الأسئلة عشان تفهم اجابتها لازم تكون على الأقل فاهم البرمجة شوية

          بالنسبة للسؤال الأول

          عشان تعمل الحركة دى اللى هى الماوس يحرك مجسم
          لازم تاخد الــ Vector2 من الماوس وتحولة لــ Vector3 عشان المجسم يتحرك مع الماوس

          لأن الماوس بيتحرك على الشاشة مش فى اللعبة بمعنى ان الماوس ملهوش x,y,z زى اى Vector3 تانى
          ومعتقدش انك هتفهم لو شرحتلك الطريقة لأنك لازم يكون عندك خلفية عن الحاجت دى فى الأساس

          اما بالنسبة
          للسؤال التانى

          فانك عشان تحرك المجسم ممكن تستخدم تلت طرق :

          الطريقة الأولى


          كود:
          transform.position += transform.TransformDirection(Vector3.forward);
          الطريقة التانية


          كود:
          rigidbody.AddForce(0, 0, 10 * Time.deltaTime);

          الطريقة التالتة

          كود:
          using UnityEngine;
          using System.Collections;
          
          public class NewBehaviourScript : MonoBehaviour
          {
          public float speed = 10;
          
          CharacterController characterController;
          
          Vector3 moveDirection;
          
          void Start()
          {
          characterController = GetComponent("CharacterController"... as CharacterController;
          
          }
          
          void Update()
          {
          moveDirection = transform.TransformDirection(Vector3.forward);
          
          
          characterController.Move(moveDirection * Time.deltaTime * speed);
          }
          }


          نيجى بقا للشرح

          الطريقة الاولى فى الطريقة دى انا بضيف لمكان الجيم اوبجيكت ده فيكتور ثرى بيقوله يمشى فى الــ Vector3.forward يعنى محور الــZ
          انا استخدمت الـــTransformDirection عشان احول الــWorld لــLocal
          عشان لو مستخدمتش الـــTransformDirection كدا الجيم اوبجيكت ده هيمشى فى محور الـZ اللى هو تبع الــWorld يعنى ثابت ملوش دعوة بدوران الجيم اوبجيكت يعنى مثلاً لو الجيم اوبجيكت ده لف لتحت يعنى محور الــZ بتاعه هو بقا باصص لتحت كدا برضو هيمشى فى محور الزيد بتاع الــWorld مش بتاعه هو عشان نخليه يمشى فى المكان اللى هو باصص عليه استخدمت الــTransformDirection
          ان شاء الله تكون وصلت


          ملحوظة:
          فى الطريقة دى الجيم اوبجيكت مش هيهتم بأى فيزياء يعنى مثلاً لو قابله جيم اوبجيكت تانى فى طريقة هيعدى من جواه كأن مفيش اى حاجة خالص عشان بالطريقة دى انا اديت الجيم اوبجيكت امر ان محور الــz بتاعه يزيد بدرجات معينة فى مدة معينة مهما حصل حتى لو Hulk جيه وقف فى وشه هيعديه برضو من غير ميهتم بأى فيزياء تصادم.



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



          الطريقة التالتة فى الطريقة دى انا نقلتلك كل السكربت عشان فيها شوية حاجات لازم تفهمها

          فى بداية السكربت انا عملت متغير من نوع float عشان اخزن فيه السرعة اللى انا عايز الجيم اوبجيكت يمشى بيها , انا عاملها 10 شوف انت السرعة اللى تحبها واكتب رقمها, وبعد كدا عملت متغير من نوع CharacterController عشان اخزن فيه الــCharacterController اللى موجود فى الجيم اوبجيكت ده عشان الطريقة دى محتاجة ان يكون الجيم اوبجيكت ده عليه كومبوننت اسمه Character Controller,
          بعد كدا عملت متغير من نوع Vector3 عشان اخزن فيه الأتجاه والسرعة اللى انا عايز الجيم اوبجيكت يمشى فيه,

          بعد كدا دخلت على الفانكشن اللى اسمها Start() الفانكشن دى الكود اللى جواها بيحصل مرة واحدة بس اول ماللعبة تبدأ على طول,

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

          بعد كدا دخلت على الفانكشن اللى اسمها Update() الفانكشن دى الكد اللى جواها بيحصل مرة كل Frame يعنى بيحصل على طول طالما اللعبة لسة شغالة.

          وقلت جوة الفانكشن دى ان المتغير اللى من نوع Vector3 (اللى عملته فوق برضو) اللى اسمه moveDirection, هيساوى


          كود:
          transform.TransformDirection(Vector3.forward)
          ده نفس الكلام بتاع الطريقة الأولنية

          وقولتله كدا عشان اخزن جوه المتغير ده الأتجاه اللى انا عايز الجيم اوبجيكت يمشى فيه.

          خلاص كدا انا خزنت كل حاجة انا محتاجها

          روحت بقا قولت للمتغير اللى من نوع CharacerController ان الـmove (يعنى اللــVector3 اللى هيستخدمه عشان يتحرك) بتاعك هو الـمتغير اللى من نوع Vector3 اللى اسمه moveDirection, وروحت ضربته فى حاجة اسمها Time.deltaTime دى بتخلى الحاجة دى بدل متحصل كل Frame تحصل كل ثانية عشان اتحكم اكتر فى السرعة, بعد كدا ضربتها فى المتغير اللى من نوع float اللى اسمه speed عشان اخليه يترحك 10 وحدات فى الثانية (الـ10 وحدات دى هى الرقم اللى متخزن جوة المتغير اللى اسمه speed تقدر تغيره عادى).
          ان شاء الله تكون وصلت دى كمان


          بالنسبة للسؤال التالت

          هتستخدم فى دى فانكشن اسمها OnTriggerEnter() ودى بتحصل لما الجيم اوبجيكت يدخل جوة كوليدر من Trigger

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

          بالنسبة
          للسؤال الرابع

          فى درس انا عامله عن طريقة اطلاق النار وتأثيرها فى العدو
          هتلاقيه موجود فى المواضيع اللى انا عاملها

          اما بالنسبة لتغير السلاح فدى موجودة فى موقع اليونيتى فى درس اسمه FPS Tutorial شوفه هيفيدك جداً

          بالنسبة
          للسؤال الخامس

          فأنا برضو عامل درس للطريقة دى هتلاقيه فى المواضيع اللى انا عاملها برضو


          اتمنى انك تكون فهمت ولو فى حاجة مش واضحة اتفضل اٍسأل


          ماهذا الابداع هل انت احد عاملي برنامج اليونتي ههههههههههههههههههههه جزاك الله خير ومتابعين الدروس
          قال رسول الله صلى الله عليه وعلى اله وصحبه اجمعين "المسلم من سلم المسلمون من لسانه ويده،
          والمهاجر من هجر ما نهى الله عنه"


          اشهد ان لا اله الا الله العظيم الجميل و اشهد ان محمد عبده ورسوله رحمتا للعالمين

          تعليق


          • #6
            المشاركة الأصلية بواسطة Shiny Arrow مشاهدة المشاركة
            من اسألتك اعتقد انك مبتدأ

            لكن الأسئلة عشان تفهم اجابتها لازم تكون على الأقل فاهم البرمجة شوية
            ما شاء الله رد جميل أخي Shiny Arrow
            >> بسم الله الرحمن الرحيم <<.......استمع للقرآن الكريم أفضل التلاوات.......

            إتق الله و اصبر

            أكره الاقنعة
            عندما تكون في وجوه الناس

            Baseera

            دورة إحتراف Unity3D

            تعليق


            • #7
              فعلا’ رائع جدا أنت يا أخي Shiny Arrow,,,

              تقريبا إلمام كامل بالبرنامج !!!!!

              الله يخليك للمنابر


              تعليق


              • #8
                ماشاء الله عليك Shiny Arrow

                دائماً وأبداً متفوق

                ونحن لسه في أولى المراحل في اليونيتي

                ان شاء الله نكمل المشوار معك

                لأنك فهمان في أمور البرمجة اساساً

                تعليق


                • #9
                  wow
                  با shiny arrow
                  انت حقا محترف

                  تعليق


                  • #10
                    اههه ماعد فيني اتحمل يعني Shiny Arrow انت الابداع والذكاء و الاحتراف بذاته ماشاء الله
                    عليك أن تفعل الأشياء التي تعتقد أنه ليس باستطاعتك ان تفعلها

                    تعليق


                    • #11
                      اكثر من مبدع اخ زياد مثال للمعلومــة الجميلة الغير متكلفــة.

                      كود:

                      rigidbody.AddForce(0, 0, 10 * Time.deltaTime);
                      طريقة جيدة لكن صاحب الموضوع لاحظ ان هذه الطريقة لو هتستخدمها وهتحط كومبوننت ريجيد بادي لا محيص من انك تشيل علامة صح اللى قدام الخيار Gravity لانكـ بتقول عاوز تعمل لعبة زي سنيل ميل واللعبة دي الشخصية اللي فيها شغلها كله طيران والريجيد بدي هتسببلك مشكلة في الحتة دي فلازم تشيل خيار الجاذبية عشان الشخصية تطير.

                      عمومًا فيك تبدع انت مش لازم تكون شبه اللعبة دي بالظبط لانك هتضع نفسك في مقارنة الناس هيبدأوا يقارنو بين لعبتك وهذه اللعبة وهتفقد لعبتك رونقها.
                      Insanity: doing the same thing over and over again and expecting different results
                      Albert Einstein -


                      تعليق


                      • #12
                        مع مرور الوقت تزداد سرعته
                        اك بنسب لهادي اعطيك تلميح بسيط
                        var speed=5;
                        تم تعمل في سكريبتك التالي
                        speed+=4;
                        يعن بعتبار متغير هادا هو الي مستعمل في سرعة السيارة
                        ولكي تجعله يرجع الى 3 في حالة حدت استضام تعمل
                        function OnCollisionEnter (collision : Collision) {
                        speed=5;
                        }
                        يعن ان سيعود لسرعة الاولى

                        اك ان اعطيك مجموعة مواقع اجعلها دليلك في تعلم
                        اولا اعطيك هادى
                        http://www.maxforums.net/showthread.php?t=202255
                        موضوع جميل ويحتاج تتبيت لان كنز منتدى :d

                        اك الان لتجد اي اجابة عن سكريبتات وكلاسات خاص بها
                        http://unity3d.com/support/documenta...nce/index.html
                        متلا تريد تعرف animation وكيف تتعامل معاها في سكربتات يونتي
                        تكتبها في بحت تم تجد الي تحتاجو لو تريد تحريك اكتب move
                        تم تجد كتير ومنها
                        CharacterController Move
                        http://unity3d.com/support/documenta...ller.Move.html
                        المهم انك تبدئ ببرمجة من هنى احسن
                        اك موقع اخر
                        http://answers.unity3d.com/index.html
                        متلا عنك مشكل تكتبها هناك او في حد كان عند نفس مشكل وممكن تستفيد من سكربتات ايضا في سكريبتات جميلة
                        متلا ل AI واشياء اخرى المهم انت اجعل هادان موقعان مرجعك واحد تاخد من سكربتات وتفهمهم لتستطيع عمل لعبة خاص بك واخر لتفسير كلاسات الي لا تفهمها يعن في كلاس لم تفهم عملو تدهب للموقع الامول وتكتبو تم تجد شرح لعملو ومتال عل كيفية سياغتو في سكربت
                        وهكد بتوفيق
                        الثورة الاسلامية الكبرى لاعادة الخلافة الراشدة
                        بسم الله الرحمان الرحيم... انما النصر صبر ساعة فلا هوان ولا ستكان حت يعود الضلم تحت الاقدام ويعاقب الخونة وانجاس وترفع الرايات سود و لترتاع يهود لقرب الوعود فالتكن هته الثورة يا اهل مصر و سورية ويا اخواني في العالم اجمع ثورة غضب ثورة غضب خالصة لوجه الله فالتكن بداية النهاية ليعلم اليهود ان الامة اصبحت على فجر النصر وليكن اول بشارات النصر الانتقام من الخونة هم من بني جلدتنا وما هم منا...
                        امة واحدة راية واحد حرب واحدة

                        تعليق

                        يعمل...
                        X