C # และ UnityScript แตกต่างกันอย่างไรในการพัฒนา Unity [ปิด]


13

นอกเหนือจากความแตกต่างทางภาษาที่ชัดเจนแล้ว UnityScript และ C # แตกต่างกันอย่างไรเมื่อพัฒนาเกมใน Unity3D

  • มีความแตกต่างด้านประสิทธิภาพที่เห็นได้ชัดเจนหรือไม่?
  • รหัส UnityScript ถูกทำแพคเกจตามที่เป็นอยู่หรือไม่? ถ้าใช่สิ่งนี้จะช่วยให้การดัดแปลงเกมทำได้หรือไม่?
  • เป็นไปได้ไหมที่จะใช้ห้องสมุดที่พัฒนาขึ้นสำหรับภาษาหนึ่งขณะที่พัฒนาในอีกภาษาหนึ่ง?
  • สามารถผสมสองภาษาในโครงการ Unity เดียวกันได้หรือไม่ การเขียนโค้ดบางส่วนใน C # และอื่น ๆ ใน UnityScript?

ไม่มีองค์ประกอบการเขียนที่ฉลาด แต่ C # อนุญาตให้มีสิ่งพิเศษเช่นการนำเข้า DLL นอกเหนือจากนั้นมันเป็น "ตัวเลือก" และเป็นอัตวิสัยอย่างสมบูรณ์ อย่าลืมนอกจากนี้ยังมีบูซึ่งคุณสามารถเขียนโค้ดของคุณได้
Sidar

2
คำถามที่เป็นประโยชน์พร้อมคำตอบอย่างมีวัตถุประสงค์ - ดูเหมือนไม่ยุติธรรมว่าถูกปิดแล้ว
UpTheCreek

1
มีสองเหตุผลหลักที่คำถามนี้ถูกปิดและพวกเขาไม่ได้เกี่ยวข้องกับยูทิลิตี้ของคำถามหรือความเที่ยงธรรมของคำตอบ ก่อนโพสต์ถามมากกว่าหนึ่งคำถามที่ไม่เกี่ยวข้อง ประการที่สองคำถามบางคำถามที่ถามนั้นมีการอภิปรายกันมากเกินไปและ / หรือสองคำถามกว้าง ๆ คำถามที่ว่า "มีประโยชน์" หรือเป็นที่นิยมนั้นเป็นอย่างไรหรือคำตอบนั้นดีเพียงใดทั้งสองนั้นขึ้นอยู่กับว่าคำถามนั้นเหมาะสมกับไซต์หรือไม่

คำตอบ:


12

มีความแตกต่างด้านประสิทธิภาพที่เห็นได้ชัดเจนหรือไม่?

ไม่ทางเทคนิคนั้นมีความแตกต่างของประสิทธิภาพการทำงานที่เล็กมากแต่ก็ไม่สำคัญพอที่จะทำให้ภาษาที่คุณเลือกใช้ในกรณีส่วนใหญ่

เป็นไปได้ไหมที่จะใช้ห้องสมุดที่พัฒนาขึ้นสำหรับภาษาหนึ่งขณะที่พัฒนาในอีกภาษาหนึ่ง?

ใช่. ตราบใดที่คุณตรวจสอบให้แน่ใจว่าโครงสร้างของโฟลเดอร์ได้รับการแนะนำโดยนักพัฒนาของไลบรารีไลบรารีนั้นสามารถเข้าถึงได้จากทุกภาษา นี้จะทำอย่างไรกับเพื่อรวบรวมความสามัคคี คุณลักษณะบางอย่างใน IDEs เช่นการเติมข้อความอัตโนมัติอาจไม่ทำงานสำหรับไลบรารีที่เลือก (แก้ไข: สามารถแก้ไขได้โดยใช้ปลั๊กอินUnityVSสำหรับ Visual Studio)

เป็นไปได้หรือไม่ที่จะผสมสองภาษาในโครงการ Unity เดียวกันด้วยการเข้ารหัสบางส่วนใน C # และอื่น ๆ ใน Javascript

อีกครั้งใช่ มันซับซ้อนขึ้นอย่างรวดเร็วเนื่องจากคุณต้องแน่ใจว่าทุกอย่างถูกรวบรวมในลำดับที่ถูกต้อง ในขณะที่เป็นไปได้ทางเทคนิคฉันขอแนะนำให้คุณเลือกหนึ่งภาษาและติดกับมัน

ภาษาใดมีแหล่งข้อมูลเฉพาะของเกมที่ดีกว่า (หนังสือเว็บไซต์ฟอรัม)

ยากที่จะพูด. จากการเรียกดูฟอรัมฉันจะบอกว่า Javascript มีแบบฝึกหัดและตัวอย่างโค้ดเพิ่มเติมอีกเล็กน้อย โดยทั่วไปแล้วรหัสนั้นค่อนข้างง่ายต่อการย้ายไปยังภาษาอื่นและเนื่องจากห้องสมุดสามารถใช้งานข้ามภาษาได้สิ่งนี้น่าจะไม่ใช่ประเด็นหลัก


8

คำถามแรกที่นักพัฒนา Unity ทุกคนเริ่มต้นคือ C # หรือ JS ไปกับ C # เสมอ

ตอนนี้คุณอาจกำลังคิดว่า"แต่ฉันไม่ต้องการเรียนรู้ C # และฉันรู้ JavaScript อยู่บ้างแล้ว"

แต่สิ่งที่ทำให้เข้าใจผิดที่คุณต้องพิจารณาคือUnity JavaScript ไม่ใช่ JavaScript มันเป็นแผ่นไม้อัดผิวเผินของไวยากรณ์ ECMA ผ่าน. NET CLR มันไม่ได้ทำสิ่งที่เจ๋ง ๆ ของ JavaScript อย่างเช่นสิ่งที่ไม่ระบุตัวตนและฟังก์ชั่นอ้างอิงวิธีที่คุณใช้ตามปกติ มันมีอาร์เรย์ของตัวเองที่ไม่ตรงกับอาร์เรย์. net ปกติและคุณจะพบกับข้อผิดพลาดและข้อ จำกัด มากมายที่คุณสามารถหลีกเลี่ยงได้โดยใช้ C # JavaScript ของ Unity เป็นเพียงเลเยอร์ไวยากรณ์ที่เคลือบด้วยลูกกวาดที่ออกแบบมาเพื่อทำให้. NET ดูน่ากลัวน้อยลง มันจะทำอันตรายคุณมากกว่าดี


7

ก่อนอื่นฉันจะแนะนำ C # มากกว่า JavaScript สำหรับการเขียนโปรแกรมใน Unity ด้วยเหตุผลหลักสองประการ สาเหตุแรกมาจากความแตกต่างของการพิมพ์ที่แรง / อ่อนที่คุณถูกไล่ออก ฉันคิดว่าการพิมพ์ที่แข็งแรงนั้นทำได้ดีกว่าการพิมพ์ที่อ่อนแอในระดับแนวคิด แต่ตรงไปตรงมานั่นคือเหตุผลที่คนส่วนใหญ่มีข้อโต้แย้งดังนั้นฉันจะมุ่งเน้นไปที่ปัญหาเชิงปฏิบัติที่เฉพาะเจาะจงมากขึ้น: การปรับใช้กับ iOS มีเพียงหนึ่งเดียวที่ฉันรู้) ต้องใช้การพิมพ์แบบคงที่ ความสามัคคีจริงๆแล้วยังมีคำสั่ง "#pragma เข้มงวด" ที่สามารถบังคับให้พิมพ์แบบคงที่ใน JavaScript ด้วยเหตุผลนี้ แต่นั่นทำให้ฉันได้รับเหตุผลข้อที่สอง ...

ประการที่สอง JavaScript ใน Unity ไม่เหมือนกับ JavaScript ในเบราว์เซอร์ สิ่งนี้สร้างปัญหาเมื่อคุณพยายามใช้ความรู้จาก Unity ภายนอก (เช่นทรัพยากรส่วนใหญ่เกี่ยวกับ JavaScript) กับการเขียนโปรแกรมใน Unity นี่คือเหตุผลที่นักพัฒนา Unity หลายคนอ้างถึงภาษาเป็น UnityScript


ตอนนี้เพื่อตอบคำถามเฉพาะของคุณ:

มีความแตกต่างด้านประสิทธิภาพที่เห็นได้ชัดเจนหรือไม่?

ไม่จริงไม่ ( รายละเอียดบางอย่าง )

รหัสจาวาสคริปต์บรรจุอยู่ในแพ็คเกจหรือไม่? และถ้าใช่สิ่งนี้จะช่วยให้เกมมีความยืดหยุ่นหรือไม่?

ขึ้นอยู่กับแพลตฟอร์มและสิ่งนี้ไม่ได้ช่วยปรับเปลี่ยนได้จริงๆ

เป็นไปได้ไหมที่จะใช้ห้องสมุดที่พัฒนาขึ้นสำหรับภาษาหนึ่งขณะที่พัฒนาในอีกภาษาหนึ่ง?

ฉันคิดอย่างนั้น (แม้ว่าฉันไม่เคยต้องการทำเช่นนี้เพราะห้องสมุดทั้งหมดที่ฉันใช้ถูกโปรแกรมใน C #)

เป็นไปได้หรือไม่ที่จะผสมสองภาษาในโครงการ Unity เดียวกันด้วยการเข้ารหัสบางส่วนใน C # และอื่น ๆ ใน Javascript

ใช่ (แม้ว่าฉันพยายามหลีกเลี่ยงมันด้วยเหตุผลที่สอดคล้องกัน)


dentedpixel.com/developer-diary/… อาจต้องการเพิ่มคำตอบของคุณ upvoted
สีเทา

linke ที่น่าสนใจเพิ่ม
jhocking
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.