‫เฮ้.
‫ยินดีต้อนรับกลับ.
‫เราพร้อมที่จะจบเกมของเรา ซึ่งหมายความว่ายังมีอีกไม่กี่สิ่งที่ต้องทำเพื่อขัดเกลาเกมของเราและทำให้มันอยู่ในสถานะที่เราพอใจ
‫เพื่อเตรียมพร้อมที่จะจบเกมนี้
‫เราเกือบเสร็จแล้ว
‫เราจะเพิ่มคุณสมบัติสองสามอย่าง
‫ฉันต้องการทำให้การเคลื่อนไหวของกล้องราบรื่นขึ้นเล็กน้อย เรามาเริ่มกันที่
‫ฉันยังสังเกตเห็นว่าหอคอยยังคงยิงขีปนาวุธหลังจากที่รถถังตาย ดังนั้นเราจึงสามารถแก้ไขโค้ดได้ง่ายเพื่อป้องกันไม่ให้เกิดขึ้น
‫และฉันจะไปดูปัญหาที่อาจเกิดขึ้นกับจุดวางไข่ของโพรเจกไทล์
‫มาเล่นและขัดเกลาเกมนี้กัน
‫สิ่งแรกที่ฉันอยากจะดูคือการเคลื่อนไหวของกล้อง
‫ดังนั้นถ้าฉันไปข้างหน้าและเล่นฉันจะแสดงให้คุณเห็นว่าฉันหมายถึงอะไร
‫เมื่อฉันเคลื่อนที่ไปรอบๆ คุณจะเห็นว่ากล้องเคลื่อนที่ตามการเคลื่อนไหวของเราเมื่อเราหัน และเมื่อเราเดินหน้าและถอยหลัง
‫กล้องก็จะตามไปโดยอัตโนมัติ
‫ตอนนี้ มีเคล็ดลับดีๆ ที่เราสามารถเพิ่มลงในกล้องนี้ได้ ซึ่งจะทำให้กล้องราบรื่นขึ้นเล็กน้อย
‫ไปข้างหน้าและเปิดถังบ่อ BP
‫ตอนนี้ใน BP Pond Tank ฉันจะเลือกส่วนประกอบสปริงอาร์ม
‫และถ้าฉันค้นหากล้องหน่วง ฉันจะเห็นที่นี่ในส่วนแล็ก มีช่องกาเครื่องหมายนี้เปิดใช้งานการหน่วงของกล้อง
‫ฉันจะตรวจสอบและเปิดใช้งานความล่าช้าในการหมุนกล้อง
‫ฉันจะตรวจสอบสิ่งนั้นด้วย
‫ตอนนี้ วิธีนี้ทำให้เรามีกล้องที่ล้าหลังและตามทันอย่างราบรื่น ซึ่งสร้างเอฟเฟกต์กล้องระดับมืออาชีพที่ดี
‫ไปข้างหน้าและกดเล่นและทดสอบสิ่งนี้
‫ดังนั้น สังเกตว่าขณะที่ฉันเคลื่อนที่ กล้องจะใช้เวลาช่วงสั้นๆ ในการติดตามขณะที่เรากำลังเคลื่อนที่
‫และเช่นเดียวกันเมื่อเราหมุน
‫มันเลยเหมือนมีความเฉื่อยเล็กน้อยและกล้องอยู่บนรางเลื่อนบางประเภทและมันหยุดช้า
‫ตอนนี้เราสามารถเลือกสปริงอาร์มและเปลี่ยนความเร็วแล็กของกล้องและความเร็วแล็กของการหมุนได้
‫ตัวอย่างเช่น ถ้าฉันใส่ค่านี้ด้วยค่าที่น้อยกว่า เช่น ห้าและห้าแทนที่จะเป็นสิบ ตอนนี้ มาดูกันว่าหน้าตาเป็นอย่างไร
‫ฉันกำลังเคลื่อนไหวและคุณจะเห็นว่ากล้องมีความล่าช้าเล็กน้อย
‫ทีนี้ เราสามารถเพิ่มหรือลดสิ่งนี้ได้ตามที่เห็นสมควร
‫นี่คือสิ่งที่คุณสามารถทดลองและค้นหาค่าที่เหมาะกับคุณได้
‫ที่นี่เรามีค่าเป็นสองและสำหรับฉันนั่นเป็นบิตที่ล่าช้ามากเกินไป
‫ดังนั้นฉันคิดว่าบางอย่างระหว่างห้าถึงสองจะได้ผลสำหรับฉัน
‫ถ้าคุณชอบคุณค่าแบบนี้ บางทีคุณอาจจะเก็บไว้ที่ 2 หรืออาจจะต่ำกว่านั้นก็ได้
‫แต่ฉันจะใส่สิ่งนี้ไว้ที่ค่า เช่น สี่สำหรับความเร็วแล็กของกล้อง และสี่สำหรับความเร็วแล็กของการหมุนกล้อง
‫เรามาดูกันว่ามันมีลักษณะอย่างไร
‫ขณะที่ฉันเคลื่อนไหว กล้องก็จะล้าหลัง
‫มีความล่าช้าของกล้องอย่างชัดเจน แต่ก็ไม่มากเกินไป
‫ฉันคิดว่ามันดูดีทีเดียว ดังนั้นฉันค่อนข้างพอใจกับมัน
‫รายการต่อไปของเราคือการยิงหอคอยหลังจากที่รถถังตายไปแล้ว
‫ให้ฉันไปข้างหน้าและแสดงให้คุณเห็นว่าฉันหมายถึงอะไร
‫เราจะไปที่นั่น.
‫รถถังเสียชีวิตและหอคอยยังคงยิงอยู่
‫นี่เป็นเพราะว่าถังยังคงมีอยู่
‫และตราบใดที่มันอยู่ในระยะยิง หอคอยก็จะยิงต่อไป
‫สิ่งนี้สามารถจัดการได้ง่ายโดยมีตัวแปรประเภทหนึ่งที่เราสามารถตรวจสอบเพื่อดูว่ารถถังตายหรือไม่
‫ดังนั้นฉันจะไปที่คลาสรถถังที่นี่และแทงค์ และฉันจะเพิ่มตัวแปรบูลีนที่เราสามารถตรวจสอบเพื่อดูว่ารถถังยังมีชีวิตอยู่หรือไม่
‫และฉันจะเปิดเผยสิ่งนี้ต่อสาธารณะ เนื่องจากเราวางแผนที่จะเข้าถึงจากนอกชั้นเรียน
‫ดังนั้นผมจะทำให้ตัวแปรนี้เป็นตัวแปร Bull ที่เรียกว่า Be Alive และผมจะตั้งค่าให้เท่ากับ true โดยค่าเริ่มต้น
‫ดังนั้นรถถังจะเริ่มต้นในสถานะมีชีวิต และเมื่อรถถังตาย การมีชีวิตจะถูกตั้งค่าเป็นเท็จ
‫และนั่นสามารถเกิดขึ้นได้ในรถถัง CP ในการจัดการการทำลายล้าง
‫ไปจัดการการทำลายล้างกันที่นี่
‫และหลังจากที่เราตั้งค่าคุณสมบัติอื่นๆ เหล่านี้แล้ว ผมจะตั้งค่า B ให้เท่ากับเท็จ
‫เนื่องจากเรากำหนดให้ B มีชีวิตเป็นเท็จ เราสามารถรู้ได้ว่ารถถังตายหรือไม่ จากนั้นเราก็สามารถป้องกันการยิงขีปนาวุธได้โดยการตรวจสอบบูลีนนี้
‫ไปที่ Tower Dot, CP และที่นี่เพื่อตรวจสอบสภาพไฟ
‫เราสามารถตรวจสอบให้แน่ใจว่ารถถังยังมีชีวิตอยู่ก่อนที่เราจะยิง
‫ก่อนอื่นฉันจะดูว่ารถถังถูกต้องหรือไม่
‫ฉันจะบอกว่าถ้าแทงค์มีค่าเท่ากับ null pointer ฉันก็จะกลับมาก่อนกำหนด
‫ด้วยวิธีนี้เราจึงรู้ว่า Tank จะใช้งานได้ จากนั้นในการตรวจสอบของเราเพื่อดูว่าเราอยู่ในระยะการยิงหรือไม่
‫ฉันจะเพิ่มและดูว่า Tank ยังมีชีวิตอยู่หรือไม่
‫ถ้าถัง.
‫มีชีวิตแล้วเราก็ยิงได้
‫ถ้าแทงค์ไม่รอด เราจะไม่ยิง
‫ตอนนี้ คุณอาจกำลังสงสัยว่าควรใส่ผลตอบแทนในบรรทัดเดียวเหมือนที่คุณเคยเห็นฉันทำในวิดีโอที่แล้วหรือไม่
‫และนี่เป็นโอกาสที่ดีที่จะได้พูดคุยเกี่ยวกับ Unreal Engines แนวทางปฏิบัติในการเขียนโปรแกรมที่ดีที่สุด และคำแนะนำต่างๆ
‫แนวทางปฏิบัติในการเข้ารหัสเอนจิ้น Unreal แนะนำให้คุณใช้เครื่องหมายวงเล็บปีกกากับส่วนเนื้อความสำหรับคำสั่ง if ทั้งหมดของคุณ
‫แม้แต่คำสั่งที่มีคำสั่งเดียว
‫และเหตุผลก็เพราะถ้าคุณวางแผนที่จะเพิ่มโค้ดหลายบรรทัดในสิ่งนี้ แสดงว่าคุณมีเนื้อหาอยู่แล้วที่นี่
‫และยังชัดเจนมากขึ้น
‫และนั่นก็นำฉันไปสู่อีกจุดหนึ่ง ซึ่งก็คือการใช้รถยนต์ของฉัน
‫ฉันใช้ auto ในคลาสโปรเจ็กไทล์สองสามครั้ง และถึงแม้ว่าวิธีนี้จะมีประสิทธิภาพ แต่ก็ไม่ชัดเจนนักว่าประเภทใดในแวบแรก
‫ซึ่งก็คือสาเหตุที่ไม่แนะนำให้ใช้ auto ในแนวทางปฏิบัติในการเข้ารหัสเครื่องยนต์ที่ไม่จริง
‫หากคุณต้องการใช้แนวปฏิบัติในการเข้ารหัสที่แนะนำของ Unreal Engine คุณสามารถแทนที่อินสแตนซ์ของ auto
‫เหล่านี้ด้วยประเภทจริงได้
‫ตัวอย่างเช่น ที่นี่ get instigator controller ส่งคืนคอนโทรลเลอร์ A เพื่อให้เราสามารถเปลี่ยนเป็นคอนโทรลเลอร์และนั่นคือตัวชี้
‫สิ่งนี้คุณสร้างความเสียหายประเภทสแตติกคลาสส่งคืนคลาส U เพื่อให้เราสามารถใช้คลาสของคุณที่นี่และแน่นอนรับเจ้าของที่นี่ส่งคืนนักแสดงเพื่อให้เราสามารถใช้นักแสดงแทนอัตโนมัติที่นี่และตอนนี้ถ้าคุณดูรหัสนี้เป็นจำนวนมาก
‫ชัดเจนยิ่งขึ้นว่าประเภทเหล่านี้คืออะไรในขณะที่การจัดเรียงอัตโนมัติจะปกปิดทุกอย่างและช่วยให้คุณขี้เกียจและไม่ต้องพิมพ์ประเภท
‫ตอนนี้บางครั้งฉันไม่แน่ใจว่านิพจน์ใหญ่ส่งคืนอะไร ดังนั้นฉันจะใช้ auto เพื่อดูว่าประเภทนั้นคืออะไร
‫จากนั้นฉันจะแทนที่ด้วยประเภทจริงในภายหลัง
‫นั่นเป็นอีกวิธีหนึ่งที่คุณสามารถใช้ auto เพื่อช่วยให้คุณเรียนรู้ประเภทที่ส่งคืนด้วยนิพจน์ที่ยาวและซับซ้อนเช่นนี้
‫เนื่องจากเราอยู่ในขั้นตอนการขัดเกลา ฉันจะแทนที่ auto ด้วยชื่อประเภทจริงที่นี่ในโพรเจกไทล์
‫ฉันจะไปที่ฐานจำนำในฟังก์ชันไฟที่เรามีโพรเจกไทล์นี้ และนี่ถูกส่งกลับจากนิพจน์ยาวขนาดใหญ่ที่นี่
‫นักแสดงวางไข่จะส่งคืนกระสุนปืนในกรณีนี้ ดังนั้นฉันสามารถแทนที่สิ่งนี้ด้วยกระสุนปืน
‫ตกลง.
‫นั่นจะเป็นการขัดเกลาโค้ดทางด้าน C++
‫ไปข้างหน้าและรวบรวมสิ่งนี้
‫และด้วยการคอมไพล์ที่ประสบความสำเร็จ ให้กลับไปที่บรรณาธิการแล้วเราจะตีกัน และให้มั่นใจว่าหอคอยเหล่านั้นจะหยุดยิงที่เราหลังจากที่เราตาย
‫มีตีหนึ่ง
‫มีอีกอัน และฉันกำลังรออยู่ และไม่เห็นโพรเจกไทล์อีกเลย
‫สมบูรณ์แบบ.
‫ตกลง.
‫ดังนั้นจุดสุดท้ายที่ฉันอยากจะกล่าวถึงก่อนที่เราจะสรุปก็คือจุดวางไข่ของโพรเจกไทล์
‫ทีนี้มาเลือกกันใน BP Pond Tank และตรวจสอบให้แน่ใจว่าอยู่ห่างจากถังซักพอสมควร
‫ก่อนที่เราจะทำอย่างนั้น ฉันจะวางมันไว้ใกล้ ๆ จริงๆ และแสดงให้คุณเห็นถึงปัญหาที่อาจเกิดขึ้น
‫ตอนนี้ ขณะที่ฉันเดินหน้าและคลิกปุ่มซ้ายของเมาส์ คุณจะเห็นว่าฉันไม่เห็นกระสุนปืน
‫อันที่จริงฉันไม่เห็นมันเลยเพราะมันอยู่ใกล้เกินไป
‫เรากำลังชนกันอยู่แล้ว
‫มันกำลังถูกทำลายก่อนที่มันจะทำอะไรได้
‫ดังนั้นตรวจสอบให้แน่ใจว่ามันอยู่ห่างจากถังพอสมควร
‫อย่างไรก็ตาม เรากำลังปล่อยควันออกมา ดังนั้นมันจึงดูเหมือนว่ามีควันตามหลังมัน
‫ดังนั้นสิ่งนี้จะยังดูสมจริงทีเดียว
‫มันดูดีมาก
‫และในขณะที่เราอยู่บนจุดเกิดของโพรเจกไทล์ อาจเป็นความคิดที่ดีที่จะไปดูป้อมปืน BP
‫และเลือกจุดเกิดโพรเจกไทล์ของมัน
‫และหากคุณมีปัญหาใดๆ ในการวางไข่ของขีปนาวุธจากป้อมปืน คุณอาจต้องการให้แน่ใจว่ามันอยู่ห่างจากกระบอกปืนของป้อมปืนพอสมควรเช่นกัน
‫ดังนั้นเราจึงมีมัน
‫เรามีเกมที่ใช้งานได้จริงและมันดูยอดเยี่ยม
‫เรามีความสามารถในการหมุนไปรอบ ๆ ในโลก เรามีความสามารถในการยิงขีปนาวุธและพวกมันระเบิดขึ้น
‫ถ้าเราชนหอคอย เราสามารถทำลายมันได้
‫ถ้าหอคอยมาชนเรา มันสามารถทำลายเราได้
‫เป็นแบบนั้น.
‫และเรามีเงื่อนไขชนะและแพ้ด้วยวิดเจ็ต HUD ที่แสดงบนหน้าจอและบอกเราว่าเราชนะหรือแพ้เกม
‫นี่จึงเป็นเรื่องที่ยอดเยี่ยม
‫และถ้าคุณต้องการจัดแพ็คเกจเกมนี้ คุณสามารถทำได้โดยไปที่ด้านบนสุดแล้วคลิกที่ไอคอนแพลตฟอร์มสำหรับ
‫Windows หากคุณใช้เครื่อง Windows หรือสำหรับ iOS หากคุณใช้ Mac เครื่อง แน่นอนว่าคุณมีตัวเลือกอื่นๆ
‫เหล่านี้
‫หากคุณต้องการจัดแพ็คเกจสำหรับแพลตฟอร์มอื่น เราขอแนะนำให้คุณหาข้อมูลทางออนไลน์เพื่อค้นหาแพลตฟอร์มต่างๆ และวิธีจัดแพ็คเกจสำหรับแพลตฟอร์มเหล่านั้น
‫ฉันใช้ Windows Machine ดังนั้นฉันจึงสามารถคลิกแพ็กเกจโปรเจ็กต์สำหรับ Windows ที่นี่ แล้วระบบจะถามฉันว่าต้องการบรรจุเกมไว้ที่ใด
‫ตอนนี้ฉันมีโครงการของฉันที่นี่ใน Tune Tanks
‫ฉันจะคลิกขวา สร้างโฟลเดอร์ใหม่ และฉันจะเรียกโครงสร้างนี้
‫โดยทั่วไปแล้วคุณจะวางโปรเจ็กต์แบบแพ็คเกจ
‫ดังนั้นฉันจะเลือกโฟลเดอร์นั้นและอนุญาตให้ Unreal Engine จัดแพ็คเกจเกมของฉัน
‫อาจต้องใช้เวลาสองสามนาที และเมื่อเสร็จแล้ว ฉันควรมีแพ็คเกจเกม
‫ตกลง.
‫ดังนั้นเมื่อฉันทำบรรจุภัณฑ์เสร็จแล้ว เราควรจะเห็นการสร้างสำเร็จในบันทึกผลลัพธ์ จากนั้นเราสามารถดูในโฟลเดอร์ที่เรากำหนดให้กับโครงการที่ทำแพ็คเกจของเรา
‫สำหรับฉัน มันจะเป็นโฟลเดอร์บิลด์นี้
‫ตอนนี้ฉันทำแพ็คเกจสี่หน้าต่าง ฉันจึงมีโฟลเดอร์ Windows และนี่คือถังปรับแต่งของฉัน dot xy
‫มันเป็นไฟล์ปฏิบัติการ
‫ฉันสามารถดับเบิลคลิกที่มันและนี่คือโครงการสุดท้ายของฉัน
‫ฉันสามารถยิง
‫ฉันหลบได้
‫ดูเหมือนว่าหอคอยของศัตรูของฉันสามารถยิงมาที่ฉันและฉันสามารถทำลายพวกมันได้
‫ใช่ ฉันสามารถทำลายพวกมันได้
‫พวกเขาสามารถทำลายฉันได้ ดูเหมือนว่า และฉันสามารถแพ้เกมนี้ได้
‫และแน่นอน ถ้าฉันมีทักษะมากกว่านี้ ฉันสามารถชนะเกมได้
‫และสำหรับความท้าทายสุดท้ายของคุณ ฉันจะมอบหมายให้คุณเพิ่มรสชาติของคุณเองให้กับเกม
‫ทำให้เกมนี้เป็นของคุณเอง
‫ค้นหาเสียงหรือเอฟเฟกต์ใหม่ ๆ หรือตาข่ายและสร้างหอคอยและรถถังที่ดูขี้ขลาด
‫เพิ่มหอคอยมากขึ้น อาจเพิ่มระดับทักษะที่แตกต่างกัน ทำให้หอคอยยากขึ้นและหนักขึ้นเมื่อคุณก้าวหน้าตลอดระดับของคุณ
‫อาจเพิ่มระดับรถถังให้ระดับที่คุณสามารถเพิ่มเมื่อคุณทำลายหอคอยมากขึ้นเรื่อย ๆ
‫บางทีคุณสามารถเพิ่มเรขาคณิตระดับใหม่และทำให้รถถังไต่ขึ้นทางลาดและพยายามทำลายรถถังในพื้นที่ที่เข้าถึงยาก
‫ความเป็นไปได้ไม่มีที่สิ้นสุด แต่ที่สำคัญที่สุดคือ ขอให้สนุก
‫ในขณะที่คุณกำลังพัฒนาเกมของคุณ
‫คุณจะไม่หยุดวิดีโอชั่วคราวสำหรับคำท้านี้
‫นี่จะเป็นสิ่งที่คุณสามารถทำได้จากจุดนี้เป็นต้นไปกับโครงการเกมของคุณ
‫ขอแสดงความยินดีด้วย
‫เราจบเกมของเรา
‫ฉันหวังว่าคุณจะสนุกกับส่วนนี้
‫ฉันสนุกมาก
‫นี่เป็นโครงการเกมที่ยอดเยี่ยมและคุณมาไกลแล้ว
‫คุณได้เรียนรู้ทักษะมากมายในส่วนนี้ของหลักสูตร ดังนั้นฉันหวังว่าคุณจะพร้อมที่จะก้าวไปสู่สิ่งที่น่าตื่นเต้นมากขึ้น
‫ขอบคุณมาก.
‫ฉันชื่อสตีเว่น แล้วพบกันใหม่