คำถามติดแท็ก unity

Unity เป็นระบบการสร้างเกมข้ามแพลตฟอร์มที่มุ่งเน้นกระบวนการไปป์ไลน์ที่ง่าย ประกอบด้วยเอ็นจิ้นเกมและสภาพแวดล้อมการพัฒนาแบบรวม การสร้างสคริปต์ของเอ็นจิ้นเกมสร้างขึ้นบนโมโน

4
จะไม่ตรึงเธรดหลักใน Unity ได้อย่างไร
ฉันมีอัลกอริธึมการสร้างระดับที่หนักมาก เช่นนี้การเรียกมันจะส่งผลให้หน้าจอเกมค้างอยู่เสมอ ฉันจะวางฟังก์ชันบนเธรดที่สองในขณะที่เกมยังคงทำการเรนเดอร์หน้าจอการโหลดเพื่อระบุว่าเกมนั้นไม่หยุดค้างอยู่?

6
เกมที่ไม่ได้ใช้งานจัดการกับจำนวนที่มากเช่นนี้ได้อย่างไร
แค่สงสัยว่าเกมเช่น Tap titans และ Cookie Clicker จัดการกับจำนวนที่มากขนาดนี้ได้อย่างไร ฉันกำลังพยายามใช้งานเกมที่ไม่ได้ใช้งาน แต่รูปแบบตัวเลขที่ใหญ่ที่สุดที่รองรับโดย C # คือทศนิยม ฉันต้องการสนับสนุนมากถึง 10 ^ 500; ที่จะต้องมีจุดลอย ฉันจะจัดการสิ่งนี้ได้อย่างไร PS จะต้องเป็นแพลตฟอร์มข้ามเช่นพีซี, Mac, iOS, Android และเข้ากันได้กับ Unity

6
ข้อ จำกัด ที่ร้ายแรงที่สุดของ Unity คืออะไร [ปิด]
เมื่อได้อ่านคำถามที่ร้อนแรงเกี่ยวกับ Unity vs. UDK vs. ID บางอย่างฉันอยากรู้ว่า: อะไรคือข้อ จำกัดที่ซ้ำแล้วซ้ำอีกที่ทำให้หมดกำลังใจที่สุดของ Unity เพื่อที่จะทำให้คำถามนี้ไม่เป็นอัตนัยอีกครั้งฉันกำลังพูดถึงผู้กระทำผิดซ้ำกันบนของ Unity คือ นี่คือสิ่งที่ในฐานะผู้ใช้ Unity คุณต้องการมีคนบอกคุณก่อนเริ่มใช้งาน ฉันเคยได้ยินจากคนที่ Unity ไม่จัดการกับการควบคุมเวอร์ชันได้ดีเพราะมันสร้างไฟล์ไบนารีจำนวนมาก (ซึ่งไม่สามารถกระจายได้) สำหรับฉันนี่มันไม่ง่อยเลยจริง ๆ ขณะที่ฉันทำงานคนเดียว คิด?
30 unity 

7
การทำงานเป็นทีมในความสามัคคี
ฉันมีโปรเจ็กต์ Unity โดยไม่มีการควบคุมเวอร์ชันใด ๆ และฉันต้องการแชร์กับนักพัฒนาคนอื่นเพื่อให้เราทั้งคู่สามารถทำงานกับโปรเจ็กต์นี้ได้ ควรใช้กลยุทธ์ใดที่เล่นได้ดีกับสินทรัพย์ของ Unity

6
ฉันสามารถลบหน้าจอเริ่มต้นของ Unity ได้หรือไม่โดยการลบจาก APK
ในขณะที่ใช้ Unity ฉันส่งออกเกม Android เป็น APK เมื่อใช้งาน APK สิ่งแรกที่แสดงคือหน้าจอ Unity splash ฉันคิดว่าฉันสามารถแทนที่ภาพนั้นได้ด้วยการเปิด APK เหมือนไฟล์ซิปมองหาภาพหน้าจอสแปลช ( App.apk/assests/bin/Data/splash.png) และแทนที่ด้วยภาพใด ๆ ที่ฉันต้องการ การเผยแพร่แอพเกม Android บน Unity ที่มีหน้าจอสแปลที่แก้ไขแล้วเป็นสิ่งถูกกฎหมายหรือไม่ ฉันจำได้ว่ามีเกมบางเกมบน PS3, 360 และ Wii ที่สร้างขึ้นด้วย Unity แต่ไม่แสดงหน้าจอ Unity splash เมื่อทำงานบนคอนโซลที่เกี่ยวข้อง

4
คุณจะบันทึกสถานะเกมได้อย่างไร
ขั้นตอนตามมาโดยโปรแกรมเมอร์เกมสำหรับการบันทึกและกลับสู่สถานะของเกมคืออะไร? ชอบไฟล์ / การแมป ฉันต้องการบันทึกไว้สำหรับเกมป้องกันหอคอยและฉันใช้เอ็นจิ้นเกม unity3D

8
อัลกอริทึมสำหรับการสร้างทรงกลม?
ไม่มีใครมีอัลกอริทึมสำหรับการสร้างโพรซีเดอร์ทรงกลมที่มีlaจำนวนเส้นรุ้งloจำนวนเส้นแวงและรัศมีrหรือไม่? ฉันต้องการมันเพื่อทำงานกับ Unity ดังนั้นตำแหน่งจุดสุดยอดจำเป็นต้องกำหนดและจากนั้นสามเหลี่ยมที่กำหนดผ่านดัชนี ( ข้อมูลเพิ่มเติม ) แก้ไข ฉันจัดการเพื่อให้รหัสทำงานเป็นเอกภาพ แต่ฉันคิดว่าฉันอาจทำอะไรผิดไป เมื่อฉันเปิดใช้detailLevelงานทั้งหมดจะเพิ่มจุดยอดและรูปหลายเหลี่ยมเพิ่มเติมโดยไม่ย้ายไปรอบ ๆ ฉันลืมอะไรไปหรือเปล่า แก้ไข 2 ฉันลองไต่ตาข่ายตามบรรทัดฐาน นี่คือสิ่งที่ฉันได้รับ ฉันคิดว่าฉันขาดอะไรไป ฉันควรจะปรับมาตรฐานบางอย่างเท่านั้นหรือไม่

2
วิธีการวาดเส้นใน Unity อย่างถูกต้อง
ฉันกำลังทำงานกับเกมที่ต้องให้ฉันวาดสองสามบรรทัดจากจุดเดียวที่พูดอย่างเป็นทางการมากกว่า กำหนดจุด A พร้อมพิกัด x, y ฉันวาดเส้น n เส้นที่เส้น i-th มีพิกัดที่ชื่อว่า xi, yi เมื่อพิจารณาความสามารถของ LineRenderer ภายใน Unity3D ฉันไม่สามารถวาดมากกว่าหนึ่งบรรทัดจากจุดใดจุดหนึ่งด้วยเนื่องจากมีการแสดงเฉพาะโพลีน ขณะนี้ฉันใช้วิธี Debug.DrawLine () ซึ่งทำให้การแสดงผลสำเร็จ ฉันลองใช้ GL.Begin () ตามที่แสดงในตัวอย่าง Unityแต่ฉันไม่เห็นเส้นของฉันถูกวาด คำถามของฉันคือ: มีวิธีอื่นในการทำเช่นนี้หรือไม่? ถ้าไม่คุณสามารถบอกได้ว่าฉันจะแสดงบรรทัดที่วาดด้วย Debug.DrawLine () ในโหมดเล่นได้อย่างไร ฉันเห็นว่าฉันสามารถใช้ Gizmos.DrawLine () ได้ แต่ฉันไม่เข้าใจว่ามันใช้งานอย่างไร
27 c#  unity 

3
ทีมป้องกันการเขียนทับทำงานในไฟล์ต้นฉบับได้อย่างไร [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Game Exchange Stack Exchange ปิดให้บริการใน4 ปีที่แล้ว มันเป็นไปได้สำหรับฉันที่มีหลายคนที่กำลังทำงานอยู่ในขณะเดียวกันเช่นเอ็นจิ้นเกม สมมติว่านักพัฒนาคนหนึ่งกำลังทำงานAudio.cppและนักพัฒนาที่สองก็กำลังทำงานอยู่Audio.cppสิ่งนี้จัดการโดยทั่วไปในทีมขนาดใหญ่เพื่อต่อสู้กับการเขียนทับได้อย่างไร (ในคำอื่น ๆ ที่จะหยุดสองนักพัฒนาจากการเปิดไฟล์จนกว่านักพัฒนาคนหนึ่งจะเสร็จสิ้น)
26 project-management  version-control  teamwork  java  2d  collision-detection  vector  collision-resolution  unity  directx  directx11  directx10  xna  ios  monogame  windows-phone-8  xamarin  design-patterns  oop  xna  collision-detection  collision-resolution  bounding-boxes  rotation  collision-detection  mathematics  javascript  algorithm  separating-axis-theorem  xna  2d  monogame  image  xna  directx  graphics  performance  opengl  2d  3d  c++  directx11  unity  c#  scale  c#  xna  collision-detection  collision-resolution  leaderboards  scoring  glsl  srgb  tilemap  three.js  tiled  unity  physics  xml  dialog-tree  xna  c#  .net  opengl  lwjgl  vbo  physics  graphics  procedural-generation  simulations  water  opengl  java  textures  lwjgl  frame-buffer  unity  unity  2d  collision-detection  collision-resolution  trigonometry  java  android  libgdx  xna  c#  frame-rate  c++  unreal-4  procedural-generation  java  graphics  lwjgl  slick  c++  software-engineering 

7
คำแนะนำของ Microsoft ในการใช้คุณสมบัติ C # ใช้ได้กับการพัฒนาเกมหรือไม่
ฉันเข้าใจว่าบางครั้งคุณก็ต้องการคุณสมบัติเช่น: public int[] Transitions { get; set; } หรือ: [SerializeField] private int[] m_Transitions; public int[] Transitions { get { return m_Transitions; } set { m_Transitions = value; } } แต่ความประทับใจของฉันคือว่าในการพัฒนาเกมถ้าคุณไม่มีเหตุผลที่จะทำอย่างอื่นทุกอย่างควรจะเร็วที่สุด ความประทับใจของฉันจากสิ่งที่ฉันอ่านคือ Unity 3D ไม่แน่ใจว่าจะเข้าถึงแบบอินไลน์ผ่านคุณสมบัติได้ดังนั้นการใช้คุณสมบัติจะส่งผลให้มีการเรียกใช้ฟังก์ชันเพิ่มเติม ฉันถูกต้องหรือไม่ที่จะเพิกเฉยต่อคำแนะนำของ Visual Studio เพื่อไม่ให้ใช้ช่องสาธารณะ (โปรดทราบว่าเราใช้ในint Foo { get; private set; }กรณีที่มีข้อได้เปรียบในการแสดงการใช้งานที่ต้องการ) ฉันทราบว่าการเพิ่มประสิทธิภาพก่อนวัยอันควรเป็นสิ่งที่ไม่ดี แต่อย่างที่ฉันได้กล่าวไว้ในการพัฒนาเกมคุณจะไม่ทำอะไรช้า ๆ เมื่อความพยายามคล้าย ๆ …

1
ฉันจะรันการทดสอบการใช้งานกับเกม Unity3D ได้อย่างไร
บริบท ฉันกำลังดำเนินการรหัสดั้งเดิมสำหรับเกมใน Unity3d และฉันต้องการเขียนการทดสอบการทำงานบางอย่างที่มีไว้สำหรับการถดถอยเพื่อให้แน่ใจว่าฉันจะไม่ทำสิ่งแตกต่างเมื่อนำสิ่งใหม่มาใช้หรือเมื่อทำการเปลี่ยนใหม่ ฉันรู้อยู่แล้วว่ามีชุดเครื่องมือทดสอบหน่วยสำหรับ Unity3d ที่มีอยู่เป็นสินทรัพย์ ฉันใช้มันเป็นชุดทดสอบหน่วยดังนั้นฉันจึงทดสอบโมเดลของฉัน (คลาส) ตัวอย่างการทดสอบประเภทใดที่ฉันกำลังคิด สำหรับ "การทดสอบการใช้งาน" ฉันหมายถึงสิ่งนี้: เรียกใช้โปรแกรม เมื่ออยู่ในฉากเมนูให้ยืนยันว่ามีปุ่มที่ระบุว่า "เริ่มต้น" คลิกมัน จากนั้นยืนยันว่ามีการโหลดฉากใหม่ ยืนยันพิกเซล XXX เป็นสีแดง คลิกในพิกัด XXX ยืนยันทันทีที่พิกเซลเปลี่ยนเป็นสีเขียว เป็นต้น คำถาม Q1:ฉันจะเขียนและเรียกใช้การทดสอบการใช้งานสำหรับเกมได้อย่างไร สิ่งนี้มักจะทำใน UnityTestTools (UTT) หรือไม่ Q2:ถ้า UTT มากกว่าสำหรับการทดสอบหน่วยแล้วมีชุดแยกต่างหากสำหรับการทดสอบการทำงานหรือไม่ อันไหน? หมายเหตุ: ฉันกำลังตั้งเป้าหมาย Android และทำงานอยู่ Unity5.3.1f1

1
เหตุใดฉันจึงควรพิจารณาสร้างและใช้กลุ่มออบเจ็กต์แทนการสร้างวัตถุใหม่ในทันที
ฉันได้อ่านเกี่ยวกับรูปแบบนี้หลายครั้ง (จากมุมมองแนวปฏิบัติที่ดีที่สุด): การจัดสรรหน่วยความจำ : แทนที่จะสร้างวัตถุใหม่ในทันทีให้พิจารณาสร้างและใช้กลุ่มวัตถุเสมอ มันจะช่วยให้การกระจายตัวของหน่วยความจำน้อยลงและทำให้ตัวเก็บขยะทำงานน้อยลง อย่างไรก็ตามฉันไม่รู้ว่าที่จริงแล้วมันหมายถึงอะไร ฉันจะใช้มันได้อย่างไร ตัวอย่างเช่นฉันสามารถสร้างอินสแตนซ์ของการGameObjectใช้InstantiateUnity ได้หรือไม่ Instantiate(prefab, new Vector3(2.0F, 0, 0), Quaternion.identity); การใช้งานนี้หมดกำลังใจหรือไม่? มันหมายความว่าอะไร?

5
ทำไมเอ็นจิ้นอย่าง Unity3D จึงเน้นย้ำกับไลบรารี่ดั้งเดิมอย่าง OpenGL สำหรับผู้เริ่มต้น [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการ4 ปีที่แล้ว ฉันเป็นแค่มือใหม่ในเกมสามมิติแพลตฟอร์มที่ฉันชอบคือ Android ฉันโพสต์คำถามในฟอรัมอื่นเกี่ยวกับ "สิ่งที่จะใช้: OpenGL หรือ Unity3d" พวกเขาเน้น Unity3D และใช้คุณสมบัติและเครื่องมือในตัวซึ่งฉันจะต้องเขียนรหัสด้วยตัวเองถ้าฉันต้องใช้ OpenGL แต่บางคนก็บอกว่าเกมที่ซับซ้อนส่วนใหญ่ต้องการเอ็นจิ้นกำหนดเอง ทำไมฉันถึงต้องใช้เอ็นจิ้นอย่าง Unity3D บน OpenGL
25 opengl  android  unity 

3
ฉันจะหมุนวัตถุโดยอิงจากอ็อฟเซ็ตของวัตถุอื่นได้อย่างไร?
ฉันมีแบบจำลอง 3 มิติของป้อมปืนที่หมุนรอบแกน Y ป้อมปืนนี้มีปืนใหญ่ที่อยู่กึ่งกลางของวัตถุ ฉันต้องการปืนใหญ่ไม่ใช่ป้อมปืนเพื่อเล็งไปที่เป้าหมายที่ระบุ อย่างไรก็ตามฉันสามารถหมุนป้อมปืนได้เท่านั้นและด้วยเหตุนี้ฉันจึงไม่ทราบว่าต้องใช้สมการใดเพื่อบรรลุเป้าหมาย ภาพต่อไปนี้แสดงให้เห็นถึงปัญหาของฉัน: หากฉันมีป้อมปืน "LookAt ()" เป้าหมายเลเซอร์ที่มาจากปืนใหญ่จะพลาดเป้าหมายที่กล่าวไปทั้งหมด ถ้านี่เป็นสถานการณ์จากบนลงล่างอย่างสมบูรณ์และปืนใหญ่ขนานกับป้อมปืนแล้วตรรกะของฉันบอกฉันว่าเป้าหมายปลอมควรอยู่ในตำแหน่งที่เท่ากับเป้าหมายจริงบวกกับออฟเซ็ตที่เท่ากับระหว่าง ป้อมปืนและปืนใหญ่ อย่างไรก็ตามในสถานการณ์จริงของฉันกล้องของฉันมีมุม60ºและปืนใหญ่มีการหมุนเล็กน้อย ภาพต่อไปนี้แสดงให้เห็นถึงสถานการณ์: ฉันไม่แน่ใจอย่างแน่นอนว่าทำไม แต่ถ้าฉันใช้การชดเชยแบบเดียวกันดูเหมือนว่าจะทำงานได้ในขณะที่เล็งไปที่ระยะทางจากป้อมปืน ตรรกะของฉันมีข้อบกพร่องหรือไม่ ฉันขาดพื้นฐานบางอย่างที่นี่หรือไม่? การแก้ไขขั้นสุดท้าย: โซลูชันที่ได้รับจาก @JohnHamilton อัพเดตล่าสุดแก้ไขปัญหานี้ได้อย่างแม่นยำ ตอนนี้ฉันได้ลบรหัสและรูปภาพที่ฉันใช้เพื่อแสดงการใช้งานที่ไม่ถูกต้องของฉัน

9
สถานที่ที่ดีที่สุดสำหรับการเรียนรู้วิธีเขียนเกมใน Unity3d [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังคำตอบที่จะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจเรียกร้องให้มีการถกเถียงอภิปรายโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน6 ปีที่ผ่านมา ที่ดีที่สุดสำหรับบทเรียนและแหล่งการเรียนรู้อื่น ๆ สำหรับ unity3d คืออะไร
25 unity 

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