سؤال

أنا بدأت مع لعبة Dev باستخدام Unity3D ويمكنني أن أرى هناك 3 لغات مدعومة لإنشاء البرامج النصية: C #، UnityScript و Boo ...

على الرغم من أنه يأتي من ماضي تصميم ويب، من الواضح أنني مستعمل مع JavaScript، ولكن بعد محاولات قليلة، يمكن أن ألاحظ Unity3D ليس لديهما فعلا الدعم الكامل لغته البرنامج النصي وبعض العناصر مثل GuardacodicetAchcode وبعض العبارات الأخرى داخل الأساليب نظرا لأن السمة new Date().valueOf() والعديد من غيرها لن يعمل بشكل صحيح، كما يبدو أن ملفي لا يمكن أن يكون له طريقة غلاف يتخلا عن كل الطرق الأخرى مثل: giveacodicetagpre.

وعند استخدام شيء مثل arguments وهو صالح في JS أحصل عليه:

missingmethodexception: الطريقة غير موجودة: "system.datetime.valueof". boo.lang.runtime.dynamicdispatching.methoddispatcheractory.producextensiondispatcher ()

ربما يتحول المحول البرمجي إلى رمز "Unityscript" الأولي في لغة بو؟ لذلك ربما Boo هو الخيار "الأصلي" الصحيح وربما UnityScript نفسه ليس أفضل طريقة للذهاب عند تطوير تطبيقات Unity3D؟

كنت أفكر في لغة لديها دعم كامل لجميع الطبقات والأساليب الأصلية المعروفة التي ستعمل دون مشكلة؟

آسف لأي أخطاء مذكورة أعلاه واسمحوا لي أن أعرف ما رأيك.

هل كانت مفيدة؟

المحلول

الوحدة لا تستخدم جافا سكريبت "حقيقي" في حد ذاته.انظر:

href="http://forum.unity3d.com/threads/1117-javascript-version" rel="noreferrer"> http://forum.unity3d.com/threads/1117-javascript-version يعتمد

UnityScript على JavaScript 2.0.هناك بعض الأشياء المفقودة (تبديل البيانات، وما إلى ذلك)، لكنها تحصل على نصف سرعة C ++، وهي طريقة أسرع من Mozilla.

بمجرد أن تعتاد على ذلك، فإن التطور في "JS" للوحدة سريعة جدا ومرنة للغاية ... ولكن بالطبع، إذا كنت ستقوم بتطوير مكونات أصلية، أو واجهة لأي شيء في C، فسوفتحتاج إلى استخدام C # (في النهاية، C # ليس من الصعب تعلم).

نصائح أخرى

إذا كنت تريد أن تكون مطورا في الوحدة وبناء مهنة عليه وتعلم C # واستخدامها - لا تضيع وقتك مع UnityScript. يمكنك استخدام C # خارج الوحدة للبرمجة. إذا كانت حياتك المهنية الرئيسية بالفعل تطوير الويب (أو ستكون)، فستتابع استخدام JavaScript لأنها في نهاية المطاف C # و UnityScript لها نفس الوظيفة، ولكن C # يستخدم على نطاق واسع لألعاب البرمجة.

غالبية الأصول على المتجر التي استخدمتها هي C # أو عرض كل من JS و C #. يخلق الخلط بين اللغات مشاكل تبعية خطيرة لأنه من أجل استخدام فئة في أي لغة، يجب أن تتم بالفعل معالجة طلب تحميل البرنامج النصي للوحدة. لاستخدام فئة محددة جافا سكريبت في C #، يجب معالجة ملف البرنامج النصي هذا قبل ملف البرنامج النصي C #. إذا احتاجت فئة JAVScript لاحقا إلى شيء من فئة C #، فسيتعين عليك إيجاد طرق من حوله لأنها لم تعد ممكنة ببساطة من ملف JavaScript. الوحدة لديها طرق لتحديد ترتيب البرنامج النصي.

اعتقدت أنني كنت أحذرك عن خلط C # مع UnityScript لأنه إذا كنت لا تركز على واحد أو آخر، فسوف تعمل في هذه المشكلة. في النهاية، C # هي الأرض الوسطى بين لغات غامضة مثل VB و JavaScript، واللغات المحاذية مثل C ++ (لدي خلفية C / C ++ حوالي 10 سنوات تقريبا).

عنوانك "ما هو أفضل XXX" يؤدي إلى إجابات رأيية، لكنني أحاول تقديم أفضل نصيحة ممكنة دون أن أكون ذاتيا. سوف يسمح لك C # بالمتابعة، حتى لو كانت الوحدة تختفي بعد عام من الآن. لن يسمح لك UnityScript / JavaScript إلا بالانتقال إلى كونه مطورا على الويب. يمكن للمطور C # الانتقال بسهولة إلى UnityScript / JavaScript، ولكن العكس هو أصعب بكثير (غير مستحيل، فقط أكثر صعوبة).

يجب عليك استخدام C #.انها شعبية، ناضجة، مواطن.ج # هو ما تستخدم الفرق الكبيرة.تعلم C # سيكون مفيدا في المستقبل.JS في Unity3D ليس js الحقيقي كما ذكرنا بالفعل ولا يسمع أحد من بو.

js هي اللغة الأكثر شعبية للاستخدام مع الوحدة.ولكن يتم تنفيذ اللغة في أحادية، وهكذا فإن أي قيود في هذا التنفيذ سوف تؤثر على البرامج النصية للوحدة أيضا.

لا أعرف كيف يعمل تنفيذ أحادي يعمل JS، ولكن التحكيم من رسالة الخطأ، ويستخدم أنواع البيانات المحددة في البداية إلى BOO، على الأقل.ومع ذلك، هذا لا يعني أن JS "تحولت إلى بو".كلاهما يتم تجميعه في نفس bytecode، وهو Jit'ed ويديره وقت تشغيل أحادي.لذلك لا تكون اللغة "أكثر أمانا" من الآخر.

checkout مزايا وعيوب استخدام C # و Java Script من هنا . C # أسرع قليلا من جافا سكريبت وتحصل على ميزات إضافية توفرها C #.يمكنك الحصول على رأي الشعبي من هنا.

التطور مع C # لديه ميزة Visual Studio 2010. وهو يوفر ميزة إكمال التعليمات البرمجية أفضل من طور أحادي.

في جافا سكريبت فقط، يمكن أن تحتوي المتغيرات على نوع غير محدد.يحدث هذا فقط إذا لم تقم بتعيين قيمة أثناء الإعلان عن المتغير.

الأداء أبطأ مع المتغيرات المكتوبة بشكل حيوي، ويمكنك تشغيل مشاكل الصب.IIF هذا مصدر قلق، استخدم #pragma صارم.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top