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

C # เป็นภาษาการเขียนโปรแกรมที่มีการจัดการพิมพ์อย่างรุนแรงรวบรวมขยะที่สร้างโดย Microsoft ร่วมกับแพลตฟอร์ม. NET

3
วิธีการนำการจัดการข้อความไปใช้อย่างเหมาะสมในระบบเอนทิตีที่อิงองค์ประกอบเป็นหลัก
ฉันกำลังใช้ชุดตัวเลือกของระบบเอนทิตีที่มี: ระดับ Entityที่มีน้อยกว่าประชาชนที่ผูกส่วนประกอบเข้าด้วยกัน กลุ่มของคลาสคอมโพเนนต์ที่ไม่มี "ตรรกะของคอมโพเนนต์" ซึ่งเป็นข้อมูลเท่านั้น กลุ่มของคลาสระบบ (aka "ระบบย่อย", "ผู้จัดการ") สิ่งเหล่านี้ทำการประมวลผลตรรกะเอนทิตีทั้งหมด ในกรณีพื้นฐานส่วนใหญ่ระบบจะทำซ้ำรายการของเอนทิตีที่พวกเขาสนใจและดำเนินการกับแต่ละรายการ วัตถุชั้น MessageChannelที่ใช้ร่วมกันโดยระบบเกมทั้งหมด แต่ละระบบสามารถสมัครสมาชิกเพื่อรับฟังข้อความบางประเภทและยังสามารถใช้ช่องทางในการส่งข้อความไปยังระบบอื่น ๆ ตัวแปรเริ่มต้นของการจัดการข้อความระบบมีดังนี้: เรียกใช้การอัปเดตในแต่ละระบบเกมตามลำดับ หากระบบทำบางสิ่งบางอย่างกับองค์ประกอบและการกระทำนั้นอาจเป็นที่สนใจของระบบอื่น ๆ ระบบจะส่งข้อความที่เหมาะสม (ตัวอย่างเช่นการเรียกระบบ messageChannel.Broadcast(new EntityMovedMessage(entity, oldPosition, newPosition)) เมื่อใดก็ตามที่มีการย้ายเอนทิตี) แต่ละระบบที่สมัครรับข้อความที่ระบุจะได้รับวิธีการจัดการข้อความ หากระบบกำลังจัดการเหตุการณ์และตรรกะการประมวลผลเหตุการณ์ต้องการข้อความอื่นที่จะเผยแพร่ข้อความจะได้รับการถ่ายทอดทันทีและวิธีการประมวลผลข้อความอีกสายหนึ่งถูกเรียก ตัวแปรนี้ก็โอเคจนกระทั่งฉันเริ่มปรับระบบตรวจจับการชนกันให้เหมาะสม (มันช้าลงจริงๆเมื่อจำนวนของเอนทิตีเพิ่มขึ้น) ในตอนแรกมันแค่วนซ้ำเอนทิตีแต่ละคู่โดยใช้อัลกอริทึมแรงเดรัจฉานอย่างง่าย จากนั้นฉันก็เพิ่ม "ดัชนีเชิงพื้นที่" ที่มีตารางของเซลล์ที่เก็บเอนทิตีที่อยู่ภายในพื้นที่ของเซลล์ที่เฉพาะเจาะจงจึงอนุญาตให้ทำการตรวจสอบเฉพาะเอนทิตีในเซลล์ข้างเคียง ทุกครั้งที่เอนทิตีย้ายระบบการชนจะตรวจสอบว่าเอนทิตีชนกับบางสิ่งในตำแหน่งใหม่หรือไม่ หากเป็นเช่นนั้นการชนจะได้รับการตรวจพบ และถ้าทั้งสองหน่วยงานชนกันเป็น "วัตถุทางกายภาพ" (ทั้งคู่มีองค์ประกอบ RigidBody และตั้งใจที่จะผลักกันออกไปเพื่อไม่ให้ครอบครองพื้นที่เดียวกัน) ระบบแยกตัวแข็งโดยเฉพาะขอให้ระบบการเคลื่อนไหวย้ายหน่วยงานไปบางส่วน ตำแหน่งเฉพาะที่จะแยกพวกเขา สิ่งนี้จะทำให้ระบบการเคลื่อนที่ส่งข้อความแจ้งเตือนเกี่ยวกับตำแหน่งเอนทิตีที่เปลี่ยนไป ระบบตรวจจับการชนหมายถึงการตอบสนองเพราะมันต้องการที่จะอัพเดทดัชนีอวกาศ ในบางกรณีมันทำให้เกิดปัญหาเนื่องจากเนื้อหาของเซลล์ (รายการทั่วไปของวัตถุเอนทิตีใน C #) …

6
วิธีเก็บข้อมูลแผนที่ 2D ที่ไม่มีขีด จำกัด หรือไม่?
ฉันมี platformer 2D ที่สามารถจัดการชิ้นส่วนที่มีขนาด 100 ถึง 100 แผ่นในขณะนี้พิกัดก้อนจะถูกเก็บไว้เป็นเวลานานดังนั้นนี่เป็นข้อ จำกัด เพียงแผนที่เท่านั้น (maxlong * maxlong) ทุกตำแหน่งเอนทิตี้และอื่น ๆ นั้นเกี่ยวข้องกับชิ้นงานดังนั้นจึงไม่มีข้อ จำกัด ปัญหาที่ฉันมีคือวิธีจัดเก็บและเข้าถึงชิ้นส่วนเหล่านี้โดยไม่ต้องมีไฟล์นับพัน แนวคิดใดสำหรับรูปแบบการเก็บถาวร HD แบบเร็วและราคาต่ำกว่าที่ไม่ต้องการเปิดทุกอย่างพร้อมกัน?
29 xna  2d  c#  maps  platformer 

1
จัดวางโมเดลเพื่อเผชิญหน้ากับเป้าหมาย
ฉันมีสองวัตถุ (เป้าหมายและผู้เล่น) ทั้งสองมีตำแหน่ง (Vector3) และการหมุน (Quaternion) ฉันต้องการให้เป้าหมายหมุนและหันไปทางขวาที่โปรแกรมเล่น เป้าหมายเมื่อมีบางสิ่งบางอย่างควรยิงไปที่ผู้เล่น ฉันได้เห็นตัวอย่างของการเล่น slerping กับผู้เล่นมากมาย แต่ฉันไม่ต้องการการหมุนแบบเพิ่มขึ้นดีฉันคิดว่ามันจะโอเคตราบใดที่ฉันสามารถทำให้ slerp เป็น 100% และตราบใดที่มันใช้งานได้จริง FYI - ฉันสามารถใช้ตำแหน่งและการหมุนเพื่อทำสิ่งอื่นมากมายและมันใช้งานได้ดีมากยกเว้นชิ้นสุดท้ายที่ฉันไม่สามารถหาได้ ตัวอย่างโค้ดทำงานในคลาสของเป้าหมาย, ตำแหน่ง = ตำแหน่งเป้าหมาย, Avatar = ผู้เล่น แก้ไข ตอนนี้ฉันใช้รหัส c # ของ Maik ที่เขาให้มาและใช้งานได้ดี!
28 xna  c#  3d  models  quaternion 

10
ใน Pong คุณจะคำนวณทิศทางของลูกบอลได้อย่างไรเมื่อมันกระดอนจากไม้พาย?
ฉันพยายามที่จะสรุปปัญหาของ Hello World-y ในการพัฒนาเกม ฉันได้สร้างเกม TicTacToe ใน XNA แล้วฉันเดาว่าขั้นตอนต่อไปจะเป็นโคลนการฝ่าวงล้อม โปรดจำไว้ว่าฉันไม่มีความรู้เกี่ยวกับการเขียนโปรแกรมเกมหรือแม้แต่คณิตศาสตร์ที่ฉันควรนำไปใช้กับที่ไหน นั่นเป็นเหตุผลที่ฉันถามคำถามนี้ คำถาม: ฉันจะทราบได้อย่างไรว่าลูกบอลควรตีกลับอย่างไรเมื่อมันกระทบกับไม้พายที่ด้านล่างของหน้าจอ ฉันคิดว่ามันจะเป็นเช่น: จับความเร็วและมุมจากลูกบอลที่เข้ามา ตรวจจับตำแหน่งที่สัมผัสกับแถบ (ซ้ายสุด, ขวาสุด, กึ่งกลาง) และตามที่ให้ความเร็วสูงขึ้นหากสัมผัสบริเวณด้านนอก นี่คือที่ฉันติดอยู่ ฮิฮิ. ข้อมูลเชิงลึกใด ๆ ฉันรู้ว่านี่ไม่ใช่คำถามประเภทคำตอบที่ตรงไปตรงมา แต่ฉันแน่ใจว่ามันเป็นปัญหาที่ทุกคนเผชิญ ฉันกำลังอ่านหนังสือLinear Algebraที่แนะนำบนเว็บไซต์นี้ แต่ฉันก็ยังไม่รู้ว่าควรสมัครที่นี่หรือไม่
28 xna  c#  2d  mathematics  physics 

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 

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

3
มีฟังก์ชั่นไซน์ที่เร็วกว่านี้ไหม?
ฉันกำลังทำงานเกี่ยวกับการสร้างเสียง perlin 3d ไลบรารี C # Math ดูเหมือนว่าเกินความจำเป็นสำหรับสิ่งที่ฉันต้องการเนื่องจากฟังก์ชั่นส่วนใหญ่ใช้การคิดแบบสองครั้ง ฉันใช้ Math.Sin () ในหลายแห่งเพื่อสร้างเสียง ไม่มีใครรู้ถึงฟังก์ชั่นไซน์ที่เร็วกว่านี้ไหม?
25 xna  c#  mathematics 

4
ฉันจะสร้างเกมใน Unity ด้วยการใช้เครื่องมือแก้ไขภาพขั้นต่ำ / ไม่ใช้งานได้อย่างไร
ฉันต้องการเขียนเกมทั้งหมดใน C # ในการค้นหาเครื่องมือของฉันฉันพบ Unity3D แต่บทเรียนและเอกสารประกอบทั้งหมดพูดถึงตัวแก้ไขภาพและ Unity IDE ที่คุณคลิกและชี้ไปรอบ ๆ เพื่อสร้างฉากและสคริปต์ ฉันไม่ต้องการทำเช่นนั้น ฉันชอบการครอบคลุมโค้ดแบบเต็มมากกว่านักออกแบบที่แยกแยะสิ่งต่าง ๆ ออกไปจากฉัน ฉันต้องการเขียนโค้ด C # บริสุทธิ์ตั้งแต่เริ่มต้นหรือหากต้องการสคริปต์ Unity เป็นการเพิ่มเติม ฉันไม่พบคำอธิบายหรือเอกสารเกี่ยวกับการทำเช่นนั้น ฉันจะสร้างเกมโดยใช้ Unity และใช้การแก้ไขแบบขั้นต่ำ (หรือไม่ใช้) ได้อย่างไร
24 c#  unity 

7
ฉันจะหลีกเลี่ยงการแต่งงานคับใน Unity ได้อย่างไร
เมื่อหลายปีก่อนฉันเริ่มทำงานกับ Unity และฉันยังคงต่อสู้กับปัญหาของสคริปต์คู่ที่แน่น ฉันจะจัดโครงสร้างรหัสของฉันเพื่อหลีกเลี่ยงปัญหานี้ได้อย่างไร ตัวอย่างเช่น: ฉันต้องการมีระบบสุขภาพและความตายในสคริปต์แยกต่างหาก ฉันต้องการมีสคริปต์การเดินที่สามารถเปลี่ยนได้ที่แตกต่างกันซึ่งทำให้ฉันสามารถเปลี่ยนวิธีการที่ตัวละครของผู้เล่นถูกย้าย (การควบคุมแรงเฉื่อยทางฟิสิกส์เช่นในมาริโอเมื่อเทียบกับการควบคุมที่กระตุกอย่างรวดเร็วเช่นใน Super Meat Boy) สคริปต์สุขภาพจำเป็นต้องมีการอ้างอิงถึงสคริปต์แห่งความตายเพื่อที่จะสามารถเปิดใช้วิธีการ Die () เมื่อสุขภาพของผู้เล่นถึง 0 สคริปต์ความตายควรมีการอ้างอิงถึงสคริปต์การเดินที่ใช้เพื่อปิดการเดินบนความตาย (ฉัน เหนื่อยกับซอมบี้) ฉันจะตามปกติสร้างการเชื่อมต่อเช่นIWalking, IHealthและIDeathเพื่อที่ฉันสามารถเปลี่ยนองค์ประกอบเหล่านี้ที่ราชประสงค์โดยไม่ทำลายส่วนที่เหลือของรหัสของฉัน PlayerScriptDependancyInjectorฉันจะมีพวกเขาตั้งขึ้นโดยสคริปต์แยกวัตถุเล่นพูด บางทีนั่นอาจจะมีสคริปต์สาธารณะIWalking, IHealthและIDeathคุณลักษณะเพื่อให้การอ้างอิงที่สามารถตั้งค่าโดยนักออกแบบระดับจากการตรวจสอบโดยการลากและวางสคริปต์ที่เหมาะสม นั่นจะทำให้ฉันสามารถเพิ่มพฤติกรรมให้กับวัตถุเกมได้อย่างง่ายดายและไม่ต้องกังวลกับการพึ่งพารหัสฮาร์ดโค้ด ปัญหาใน Unity ปัญหาที่อยู่ในความสามัคคีฉันไม่สามารถสัมผัสอินเตอร์เฟซในการตรวจสอบและถ้าผมเขียนตรวจสอบของตัวเองอ้างอิงเคยได้รับต่อเนื่องและเป็นจำนวนมากของการทำงานที่ไม่จำเป็น นั่นเป็นเหตุผลที่ฉันทิ้งไว้กับการเขียนรหัสคู่แน่น Deathสคริปต์ของฉันแสดงการอ้างอิงถึงInertiveWalkingสคริปต์ แต่ถ้าฉันตัดสินใจว่าฉันต้องการให้ผู้เล่นควบคุมตัวละครให้แน่นฉันไม่สามารถลากและวางTightWalkingสคริปต์ได้ฉันต้องเปลี่ยนDeathสคริปต์ ที่ดูด ฉันสามารถจัดการกับมันได้ แต่วิญญาณของฉันร้องไห้ทุกครั้งที่ฉันทำอะไรแบบนี้ ทางเลือกที่ต้องการไปยังอินเตอร์เฟสใน Unity คืออะไร? ฉันจะแก้ไขปัญหานี้ได้อย่างไร ฉันพบสิ่งนี้แต่มันบอกสิ่งที่ฉันรู้แล้วและมันไม่ได้บอกวิธีทำใน Unity! สิ่งนี้จะกล่าวถึงสิ่งที่ควรทำไม่ใช่วิธีการที่มันไม่ได้แก้ไขปัญหาการมีเพศสัมพันธ์อย่างแน่นหนาระหว่างสคริปต์ โดยรวมแล้วฉันรู้สึกว่ามันถูกเขียนขึ้นสำหรับผู้ที่มาที่ Unity ด้วยพื้นหลังการออกแบบเกมที่เพิ่งเรียนรู้วิธีเขียนโค้ดและมีทรัพยากรน้อยมากใน Unity สำหรับนักพัฒนาทั่วไป มีวิธีมาตรฐานในการจัดโครงสร้างโค้ดของคุณใน Unity หรือฉันต้องหาวิธีการของตัวเอง?
24 c#  unity  scripting 

7
การคำนวณแรงโน้มถ่วงแบบมัลติเธรด 2D
ฉันกำลังสร้างเกมสำรวจอวกาศและตอนนี้ฉันเริ่มทำงานกับแรงโน้มถ่วง (ใน C # กับ XNA) แรงโน้มถ่วงยังคงต้องการการปรับแต่ง แต่ก่อนที่ฉันจะทำได้ฉันต้องจัดการกับปัญหาด้านประสิทธิภาพด้วยการคำนวณทางฟิสิกส์ของฉัน นี่คือการใช้วัตถุ 100 รายการโดยปกติแล้วการแสดงผล 1,000 รายการโดยไม่มีการคำนวณทางฟิสิกส์ได้ดีกว่า 300 FPS (ซึ่งเป็นฝา FPS ของฉัน) แต่วัตถุใด ๆ ที่มากกว่า 10 หรือมากกว่านั้นจะนำเกมมาด้วย เข่าเมื่อทำการคำนวณทางฟิสิกส์ ฉันตรวจสอบการใช้เธรดของฉันและเธรดแรกกำลังฆ่าตัวเองจากงานทั้งหมดดังนั้นฉันจึงคิดว่าฉันต้องทำการคำนวณทางฟิสิกส์ในเธรดอื่น อย่างไรก็ตามเมื่อฉันพยายามเรียกใช้เมธอดการอัปเดตของคลาส Gravity.cs ในเธรดอื่นแม้ว่าเมธอดการอัปเดตของ Gravity จะไม่มีอะไรอยู่เกมยังคงลดเหลือ 2 FPS Gravity.cs public void Update() { foreach (KeyValuePair<string, Entity> e in entityEngine.Entities) { Vector2 Force = new Vector2(); foreach …

3
UnityEngine.Random และ System.Random แตกต่างกันอย่างไร
ความแตกต่างระหว่างนี้คืออะไร int randomNumber = UnityEngine.Random.Range(0, 10); และนี่ // on top of the class private System.Random _rnd = new System.Random(); // inside a methode of the same class int randomNumber = _rnd.Next(0, 10); ฉันรู้ว่าSystem.Randomจะต้องมีการเริ่มต้นด้านบนของชั้นเรียนของคุณโดยUnityEngine.Randomไม่จำเป็นต้องมี ฉันรู้ว่ายังSystem.Randomทำงานร่วมกับ "นาฬิกา" ฝึกงานและหมายเลข "สุ่ม" จะขึ้นอยู่กับที่ คำถามของฉันตอนนี้มีความแตกต่างอื่น ๆ ระหว่างUnityEngine.RandomและSystem.Randomกับรหัสแม่มดจะดีกว่าที่จะใช้สำหรับโครงการความสามัคคี?
24 unity  c#  random 

3
วิธีที่ดีที่สุดในการจัดเก็บตัวแปรทั่วทั้งเกม
ฉันมีหน้าจอตัวเลือกสำหรับสิ่งต่าง ๆ เช่นความยากลำบากความละเอียดเต็มหน้าจอ ฯลฯ แต่ฉันพยายามหาวิธีที่ดีที่สุดในการจัดเก็บ / รับตัวแปรเหล่านี้ในเวลาทำงาน ขณะนี้ฉันได้ใช้Constantsคลาสที่มีGameOptionenums ทั้งหมดแต่ฉันจะเลือกค่าเริ่มต้นสำหรับตัวเลือกทั้งหมดเหล่านี้ได้อย่างไร นอกจากนี้ฉันจะรับ Enum ที่เลือกในปัจจุบันได้อย่างไร เกี่ยวกับความละเอียดโดยเฉพาะฉันได้ตัดสินใจที่จะเก็บค่า แต่ฉันไม่แน่ใจว่าจะได้รับค่าเริ่มต้นหรือค่าที่เก็บไว้ในปัจจุบัน ทิศทางใดก็จะดี ขอบคุณ! :) namespace V1.test.RPG { public class GameOptions { public enum Difficulty { EASY, MEDIUM, HARD } public enum Sound { ON, QUIET, OFF } public enum Music { ON, QUIET, OFF } public enum …
23 c#  2d 

6
มีการออกแบบอะไรบ้างสำหรับระบบเอนทิตีที่อิงส่วนประกอบที่ใช้งานง่าย แต่ยังยืดหยุ่นได้
ฉันได้รับความสนใจในระบบเอนทิตีที่อิงองค์ประกอบอยู่พักหนึ่งแล้วอ่านบทความที่นับไม่ถ้วนในเกม (เกม InsomiacมาตรฐานEvolve Your Hierarchy , T-Machine , Chronoclast ... เพื่อชื่อไม่กี่คน) พวกเขาดูเหมือนจะมีโครงสร้างด้านนอกของสิ่งที่ชอบ: Entity e = Entity.Create(); e.AddComponent(RenderComponent, ...); //do lots of stuff e.GetComponent<PositionComponent>(...).SetPos(4, 5, 6); และถ้าคุณนำความคิดของข้อมูลที่ใช้ร่วมกัน (นี่คือการออกแบบที่ดีที่สุดที่ฉันเคยเห็นมาในแง่ของการไม่ทำซ้ำข้อมูลทุกที่) e.GetProperty<string>("Name").Value = "blah"; ใช่มันมีประสิทธิภาพมาก อย่างไรก็ตามการอ่านหรือเขียนนั้นไม่ใช่วิธีที่ง่ายที่สุด มันรู้สึกว่าเป็น clunky และทำงานกับคุณ โดยส่วนตัวฉันต้องการทำสิ่งที่ชอบ: e.SetPosition(4, 5, 6); e.Name = "Blah"; แม้ว่าแน่นอนว่าหนทางเดียวที่จะได้รับการออกแบบนั้นกลับมาอยู่ในเอนทิตี -> NPC-> ศัตรู -> FlyingEnemy-> FlyingEnemy- ด้วย …


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