‫สวัสดีและยินดีต้อนรับ.
‫ในการบรรยายนี้ เราจะวางไข่ปืนไรเฟิลของเราที่รันไทม์จากคลาสตัวละครของเราในภาษา C++
‫มาดูวิธีทำกันเลยดีกว่า
‫ตกลง.
‫ดังนั้นเราจึงต้องการให้ปืนของเราวางไข่ในฐานะลูกของตัวละครมือปืน ประเด็นแรกคือการสามารถวางไข่นักแสดงคนนั้นจากภายในนักแสดงคนอื่น
‫เราจะทำสิ่งนี้ตอนรันไทม์
‫เราจะเริ่มเล่นกันก่อนเพราะนั่นคือวิธีที่คุณต้องทำ
‫เมื่อคุณวางไข่นักแสดง คุณต้องทำตอนรันไทม์
‫และวิธีที่เราจะทำสิ่งนี้คือ เราจะยึดครองโลกก่อน
‫รับโลกแล้วเราจะเรียกใช้ฟังก์ชันเกี่ยวกับ get world โดยวิธี world และระดับคำพ้องความหมาย
‫สิ่งที่เราทำจริง ๆ ที่นี่คือเรากำลังขึ้นสู่ระดับและพูดว่า เฮ้ ระดับ คุณสร้างในฐานะนักแสดงได้ไหม
‫เพราะนักแสดงทุกคนล้วนเป็นส่วนหนึ่งหรือมีชีวิตอยู่ในระดับหนึ่ง
‫ถ้าอย่างนั้นเรากำลังบอกว่า ได้โปรดวางไข่นักแสดงให้ฉันด้วย
‫และนี่คือตัวแสดงวางไข่ที่ใช้แม่แบบ
‫คุณสามารถพูดได้ว่าฉันต้องการนักแสดงที่ฉันจะวางไข่เป็นปืนประเภท A
‫และเพื่อให้ใช้งานได้ เราจำเป็นต้องมีการรวมแฮชบนนี้ สำหรับปืนดอท h
‫จากนั้นเราจะทำการโต้แย้งและอาร์กิวเมนต์ที่จะวางไข่นั้นแท้จริงแล้วสามารถเป็นประเภทคลาสได้
‫ดังนั้นโดยค่าเริ่มต้น มันจะไปข้างหน้าและวางไข่ใน C++
‫แต่ที่นี่เราต้องการวางไข่ลูกพิมพ์เขียวของปืนนี้
‫ดังนั้นเราจึงต้องคิดให้ออกว่ามันคืออะไรที่จะต้องเชื่อมต่อกับพิมพ์เขียว
‫ไม่สามารถเชื่อมต่อได้ที่นี่ใน C ++ อย่างน้อยก็ไม่ง่าย
‫สถานที่ที่ดีที่สุดที่จะทำคือในพิมพ์เขียว
‫ดังนั้นเราจะทำ alt oh เพื่อไปที่ไฟล์ส่วนหัวสำหรับปัญหาของเรากับตัวละคร
‫และเราจะเพิ่มคุณสมบัติใหม่ของคุณที่นี่
‫เพื่อให้เราสามารถกำหนดค่าคลาสที่เราควรจะชี้ไปเพื่อวางไข่นักแสดง
‫คลาสพิมพ์เขียวใดที่เราควรวางไข่จากตัวละครนักแม่นปืนคนนี้
‫เราจะให้มันเป็นค่าเริ่มต้นในการแก้ไขเท่านั้น y แก้ไขค่าเริ่มต้นเท่านั้นเพราะเราไม่ต้องการที่จะสามารถแก้ไขได้ในขณะใช้งานจริงเพราะมันจะทำให้เข้าใจผิดว่าคุณสามารถเปลี่ยนประเภทของปืนที่เราใช้
‫รันไทม์
‫ในขณะที่ Begin Play ถูกเรียกแล้วว่าปืนนั้นได้กำเนิดขึ้นแล้ว ดังนั้นมันจึงไม่ได้อัปเดตอะไรเลยจริงๆ
‫ดังนั้นเราจึงไม่ต้องการทำให้มันสามารถแก้ไขได้ เพื่อไม่ให้ผู้คนเข้าใจผิดเกี่ยวกับสิ่งที่สามารถทำได้
‫จากนั้นเราจะใช้แมโครที่เรียกว่าคลาสย่อย T ซึ่งคุณอาจหรือไม่เคยพบเจอมาก่อน
‫และคลาสย่อย DT ของเป็นเทมเพลต
‫เราใช้วงเล็บมุมเหล่านี้อีกครั้งและเราต้องการให้มันเป็นคลาสย่อยของปืน
‫และโดยพื้นฐานแล้วสิ่งนี้หมายความว่ามันทำให้ Blueprint จำกัดคลาสที่เราสามารถเลือกจากคลาสที่เป็นคลาสย่อยของคลาส
‫Gun C++ เท่านั้น
‫นี่จะไม่ใช่ตัวชี้เพราะเราไม่ได้ชี้ไปที่ตัวปืนจริง
‫สิ่งที่เราได้จากตัวแปรนี้คือตัวคลาสเอง
‫ในกรณีนี้ เป็นคลาสพิมพ์เขียว แต่ก็ยังเป็นคลาส
‫สิ่งที่เราอยากจะเรียกว่านี่คือคลาสปืน เพียงเพื่อให้ชัดเจนว่านี่ไม่ใช่ตัวปืนจริงๆ
‫เราต้องการทรัพย์สินอื่นที่นี่เพื่อเก็บปืน และนั่นจะไม่ใช่ค่าเริ่มต้นในการแก้ไข
‫โดยพื้นฐานแล้ว เราไม่ต้องการให้สิ่งนี้เป็นคุณสมบัติที่มองเห็นได้ แต่มันจะเป็นตัวชี้ปืน
‫A
‫ดูความแตกต่าง?
‫หนึ่งในนั้นคือซับคลาสของปืน อีกอันหนึ่งคือตัวชี้ปืน และอันนี้คือปืนจริง
‫นั่นคือเมื่อเราสร้างอินสแตนซ์ของคลาสแล้ว เราจะเก็บมันไว้ที่นั่น
‫ไปที่ CP Shooter ของเราและจบการเล่นเริ่มต้นที่เราวางไข่ของสิ่งต่าง ๆ ดังนั้นเราจะมีปืนเท่ากับปืนของนักแสดงวางไข่ในโลก
‫และข้อโต้แย้งที่เราจะพูดถึงในที่นี้คือคลาสปืน ซึ่งเราจะตั้งไว้ในพิมพ์เขียว
‫เลยลองมาเรียบเรียงกันดูนะครับ
‫อาจทำให้เราผิดพลาดได้บ้าง
‫มาดูกัน ฉันได้เปิดบันทึกข้อความพร้อมกับบันทึกการคอมไพล์ และนั่นเอง เราได้รับข้อผิดพลาดบางอย่างที่นี่ในไฟล์ส่วนหัวที่ระบุว่าไม่ได้ประกาศ
‫identifier เพราะเราต้องส่งต่อการประกาศปืน
‫ดังนั้นฉันจะทำสิ่งนี้ที่ด้านบนเพราะในสองแห่งที่ฉันจะเรียกว่าคลาส
‫ปืนแบบนั้น
‫และเป็นเพียงการเตือนความจำ การประกาศไปข้างหน้าเช่นนี้หมายความว่าเราสามารถลดเวลาในการรวบรวมของเราลงได้
‫โดยไม่รวมไฟล์ส่วนหัวจำนวนมากเกินไป
‫ลองคอมไพล์ใหม่ดูครับ
‫ดูเหมือนว่านั่นเป็นข้อผิดพลาดเพียงอย่างเดียว
‫ตอนนี้เรียบเรียงเรียบร้อยแล้ว
‫ไปข้างหน้าและกดเล่นและดูว่าเกิดอะไรขึ้น
‫ทางออก
‫ดูของเรา.
‫โดยพื้นฐานแล้วเราต้องการดูบันทึกข้อความซึ่งไม่ได้เปิดไว้
‫ไปที่หน้าต่างและเครื่องมือสำหรับนักพัฒนาและดูบันทึกผลลัพธ์และดูว่าเรามีข้อผิดพลาดใด ๆ ที่นี่หรือไม่
‫ใช่ ตัวแสดงการวางไข่ล้มเหลวเนื่องจากไม่ได้ระบุคลาส
‫แน่นอนว่าไม่ได้ระบุคลาสเพราะเรายังไม่ได้กำหนดค่าในพิมพ์เขียว
‫ดังนั้น ฉันจะให้ความท้าทายกับคุณในการต่อปืน ค้นหาคุณสมบัติในพิมพ์เขียวตัวละครของเรา
‫ตั้งค่าให้เป็นปืนที่ถูกต้อง และทดสอบว่ามันวางไข่
‫หยุดวิดีโอชั่วคราวแล้วไปกันเลย
‫เค ยินดีต้อนรับกลับ
‫ไปที่ตัวละครนักกีฬาของเรา BP และค้นหาคุณสมบัติที่ควรอยู่ในเส้นทางหรือชั้นเรียน
‫ค่าเริ่มต้นจะลงรายละเอียดและสนับสนุนตัวละคร
‫คุณสามารถเห็นได้ว่าเรามีอัตราการหมุนที่นี่ ซึ่งเราได้กำหนดค่าไว้ และเรามีคลาสปืนของเรา ซึ่งเป็นเมนูดรอปดาวน์ที่ช่วยให้ฉันเลือกระหว่างปืนที่เป็นปืน
‫C++
‫และนี่คือที่มาของหลักการตั้งชื่อของเรา
‫สิ่งที่นำหน้าด้วยขีดล่าง BP คือพิมพ์เขียว
‫ดังนั้นเราต้องการไรเฟิลขีดล่าง BP ของเรา เลือกคอมไพล์เซฟนั้น เข้าไปในฉากแล้วกดเล่น
‫หวังว่าเราจะไม่มีข้อผิดพลาดเกี่ยวกับการวางไข่ของปืน
‫ปืนควรจะวางไข่
‫ตกลง.
‫และเพื่อดูว่ามีหรือไม่ เราสามารถ f แปดและดูในโครงร่างโลก
‫ถ้าฉันทำให้โลกกว้างขึ้นอีกหน่อย ฉันสามารถค้นหาปืนไรเฟิลขีดล่างของ BP ได้
‫เย่.
‫เรามีไรเฟิลขีดเส้นใต้ของ BP ในขณะที่มันอยู่ในที่ห่างไกลและไม่ใช่ ID เด็กที่ถูกต้อง
‫ที่จะเป็นหัวข้อของการบรรยายต่อไป
‫แล้วเจอกันครับ