‫สวัสดีและยินดีต้อนรับ.
‫ในการบรรยายนี้ เราจะดูฟังก์ชันพิเศษที่เรียกว่า constructor ที่ช่วยให้เราสามารถกำหนดค่าเริ่มต้นให้กับคุณสมบัติในชั้นเรียนของเรา
‫และเราจะเห็นเมื่อมีการเรียกในตัวแก้ไข
‫ลองดำน้ำในและหา
‫ด้วยองค์ประกอบทริกเกอร์นี้ ฉันต้องการเพิ่มฟังก์ชันองค์ประกอบติ๊กที่นี่ เพื่อให้เราสามารถตรวจสอบว่าส่วนประกอบใด
‫ซึ่งนักแสดงรายอื่นกำลังทับซ้อนองค์ประกอบทริกเกอร์นี้ และเราสามารถเปิดใช้งานได้หากเป็นนักแสดงประเภทที่เหมาะสม
‫ปัญหาคือ เราจะดูว่าปัญหาคืออะไร
‫มาลองใช้ฟังก์ชันติ๊กกัน
‫ถ้าเราไปที่การคว้า H เพื่อดูว่าการประกาศฟังก์ชันองค์ประกอบติ๊กควรเป็นอย่างไร
‫มันจะต้องอยู่ในส่วนสาธารณะ
‫มันเป็นโมฆะเสมือน องค์ประกอบติ๊ก เวลาเดลต้า
‫มีพารามิเตอร์มากมาย ดังนั้นลองคัดลอกดู
‫ไปที่ส่วนหัวขององค์ประกอบติ๊ก เพิ่มเข้าไปใต้การเริ่มต้นเล่นของเรา จากนั้นเราจะคัดลอกคำจำกัดความนั้น
‫นำไปใช้ในองค์ประกอบทริกเกอร์ของเรา
‫CP และสิ่งหนึ่งที่เราจะสังเกตได้คือ มีคำสำคัญสองสามคำที่เราสามารถลบออกได้
‫เราสามารถลบคีย์เวิร์ดเสมือนได้
‫โดยทั่วไปเป็นกฎที่เราสามารถปฏิบัติตามได้
‫นอกจากนี้เรายังสามารถลบคำสำคัญแทนที่
‫สิ่งเหล่านี้ไม่จำเป็นต้องอยู่ในไฟล์ C++
‫เราต้องเพิ่มชื่อคลาส
‫ดังนั้นคุณทริกเกอร์องค์ประกอบทวิภาค
‫โคลอน
‫จากนั้นเราเปลี่ยนเครื่องหมายอัฒภาคด้วยเครื่องหมายวงเล็บ และเราจำเป็นต้องเรียกส่วนประกอบเครื่องหมายขีดสุด
‫เนื่องจากเป็นการโทรที่ค่อนข้างยาว ฉันจะคัดลอกจาก CP ของเราแล้ววางลงในอันนี้
‫ตอนนี้สิ่งที่กำลังทำอยู่ก็คือการเรียกฟังก์ชันองค์ประกอบเห็บของพาเรนต์เป็นหลัก
‫ดังนั้นพาเรนต์ในกรณีนี้จึงเป็นองค์ประกอบกล่องของเรา
‫ดังนั้นจึงเป็นเรื่องสำคัญที่จะเรียกในกรณีที่มีฟังก์ชันที่จำเป็นต้องใช้และเปิดใช้งานเพื่อให้ส่วนประกอบนี้ทำงานได้
‫หากเราไม่ทำอย่างนั้น เรากำลังหลีกเลี่ยงฟังก์ชันการทำงานใดๆ นั้นและสิ่งต่างๆ ที่อาจเสียหายได้
‫สำคัญมากที่ต้องจำไว้เสมอว่าต้องโทรหา super เมื่อเราใช้งาน start, play และ tick
‫component
‫ตอนนี้ ให้คัดลอกข้อความบันทึกของเราจาก Begin Play และใส่ไว้ในองค์ประกอบติ๊ก
‫และแทนที่จะบอกว่าบันทึกคอมโพเนนต์การทำเครื่องหมายและบอกว่าองค์ประกอบการติ๊กกำลังทำเครื่องหมายที่นี่และเราจะดำเนินการต่อและคอมไพล์และดูว่าเห็บนั้นใช้งานได้จริงหรือไม่เมื่อคอมไพเลอร์เสร็จสิ้น
‫ไปกันเถอะ กดปุ่มเล่นเปิดเอาต์พุตของเรา บันทึกและ.
‫อืม ดูเหมือนจะไม่มีอะไรเกิดขึ้นตอนนี้
‫เหตุผลก็คือการเพิ่มประสิทธิภาพอย่างชาญฉลาด ส่วนประกอบส่วนใหญ่จะปิดโดยอัตโนมัติและไม่เป็นจริง
‫ดังนั้นนักแสดงมักจะเปิดใช้งานโดยค่าเริ่มต้น แต่ส่วนประกอบมักจะปิด
‫ที่จริงแล้ว หากเราดูองค์ประกอบอื่นๆ ที่เรามี เช่น การเคลื่อนไหวที่เรารู้ว่าการติ๊กใช้ได้ผล
‫คุณจะเห็นว่าที่ด้านบนสุดของไฟล์มีสิ่งนี้อยู่
‫คุณย้ายฟังก์ชันและมีองค์ประกอบหลักที่ติ๊ก dot B สามารถขีดเท่ากับ true ได้หากคุณไม่ได้ตั้งค่าคุณสมบัตินี้ในคลาส
‫ดังนั้นนี่คือคุณสมบัติของคลาสที่เป็นคุณสมบัติของติ๊กองค์ประกอบหลักแบบคลาสสิกและเป็นโครงสร้างที่มีคุณสมบัติ
‫B ที่สามารถขีดได้ภายในนั้น
‫สิ่งที่เรากำลังทำอยู่นี้คือ เรากำลังตั้งค่าเริ่มต้นนี้ในคลาสผู้เสนอญัตติเมื่อเราสร้างมันขึ้นมา
‫นั่นคือสิ่งที่เป็นฟังก์ชันนี้
‫มันถูกเรียกว่า constructor และมันเป็นฟังก์ชั่นที่ถูกเรียกเมื่อใดก็ตามที่เราสร้างองค์ประกอบผู้เสนอญัตติใหม่เพื่อตั้งค่าเริ่มต้นโดยอัตโนมัติ
‫เราสามารถตั้งค่าเริ่มต้นบางส่วนในไฟล์ส่วนหัวเหมือนที่เราทำกับควรจะย้ายเวลา
‫แต่ทางเลือกอื่นที่จะทำในไฟล์ส่วนหัวก็คือ เราสามารถตั้งค่าคุณสมบัติเหล่านี้ในตัวสร้างได้
‫ตอนนี้ ฉันต้องการให้คุณสังเกตไวยากรณ์ที่นี่ เราไปในการย้ายไฟล์ส่วนหัว
‫คุณจะเห็นว่า Constructor มีชื่อเหมือนกับคลาส
‫ดังนั้นผู้เสนอญัตติของคุณจึงเป็นชื่อคลาสสำหรับองค์ประกอบผู้เสนอญัตติของเราและตัวสร้างนั้นเรียกอีกอย่างว่าผู้เสนอญัตติคุณ
‫ไม่มีประเภทการส่งคืนเช่นกัน
‫ไม่มีเหตุผลที่จะส่งคืนสิ่งใดเพราะเรากำลังสร้างวัตถุใหม่
‫เรากำลังทำให้คลาสนี้เกิดขึ้น
‫ทั้งหมดที่เราต้องการคือการเข้าถึงคุณสมบัติของคลาสนี้ และสังเกตว่ามันถูกตั้งค่าเป็นสาธารณะ
‫ดังนั้นมันจึงอยู่ในส่วนสาธารณะของคำจำกัดความคลาสของเรา
‫ดังนั้นฉันอยากจะท้าให้คุณเปิดใช้งานการติ๊กสำหรับตัวคุณเอง
‫ดังนั้น คุณจะสร้างคอนสตรัคเตอร์ในส่วนหัวและจำไว้ว่า syntax ที่เราเคยเห็นทั้งใน
‫Mover H และ grab ของ H คุณจะเปิดใช้งานการติ๊กอย่างที่เราเห็นอีกครั้ง ในองค์ประกอบอื่นๆ เหล่านั้นในไฟล์
‫CP
‫ดังนั้นคุณสามารถคัดลอกวิธีการทำ
‫คุณสามารถล็อกจากคอนสตรัคเตอร์ได้เช่นกันเพื่อลองดูว่าจะมีการเรียกเมื่อใด
‫เหมือนเริ่มเล่น?
‫หรือถูกเรียกก่อนเริ่มเล่นหรืออะไร?
‫ไปและหยุดวิดีโอและได้ไป
‫เคย์.
‫ยินดีต้อนรับกลับ.
‫เราจะไปที่องค์ประกอบตรีโกณฯ ซึ่งจะสร้างส่วนสาธารณะขึ้นใหม่ที่นี่
‫เรากำลังจำโคลอนในตอนท้าย แล้วเราต้องเรียกมันว่าเหมือนกับคลาสเดียวกันทุกประการ
‫นั่นไม่ใช่องค์ประกอบทริกเกอร์
‫ไม่ใช่คุณทริกเกอร์ แต่เป็นองค์ประกอบทริกเกอร์แบบเต็ม
‫แล้วเราไม่มีอาร์กิวเมนต์ใดๆ กับคอนสตรัคเตอร์นี้ เราจึงใส่วงเล็บว่าง แล้วใส่เครื่องหมายอัฒภาคต่อท้ายบรรทัด
‫ตอนนี้เราสามารถไปที่ไฟล์ CPP และเราสามารถดำเนินการได้ที่นี่
‫อีกครั้ง เราไม่ต้องการประเภทการส่งคืน
‫ดังนั้นมันจึงเป็นเพียงแค่คุณทริกเกอร์องค์ประกอบทวิภาค ทวิภาค คุณทริกเกอร์คอมโพเนนต์ซ้ำ ๆ เล็กน้อย แต่นั่นเป็นวิธีการทำงาน
‫จากนั้นเราใส่วงเล็บปีกกาและที่นี่เราสามารถทำโค้ดการตั้งค่าของเราเพื่อกำหนดค่าเริ่มต้นให้กับอินสแตนซ์ของคลาสได้
‫ดังนั้นหากเราไปที่การคว้า CPP และดูว่ามันกำลังทำอะไรอยู่ คุณจะเห็นว่ามีองค์ประกอบหลักที่ขีดจุด
‫B ที่สามารถขีดได้เท่ากับจริง
‫เลยพิมพ์ออกมา
‫ขีดองค์ประกอบหลักจุด B สามารถขีดได้
‫B เป็นเพียงคำนำหน้าที่เรามักใช้เมื่อสิ่งที่มีชุดประเภทบูลีนเท่ากับจริงด้วยตัวพิมพ์เล็ก t
‫ดังนั้น เนื่องจากการเปลี่ยนแปลงใน Constructor ไม่ได้ถูกเผยแพร่อย่างถูกต้องใน Live Coding เสมอไป ฉันจะปิดตัวแก้ไข
‫ฉันจะสร้างใหม่จากภายในรหัส Visual Studio จากนั้นฉันจะเปิดใหม่จากไฟล์โครงการของสหภาพยุโรป
‫เมื่อเสร็จแล้ว ฉันจะไปต่อและกดเล่น ดูบันทึกผลลัพธ์ของเรา และแน่นอนว่าเราจะเห็นว่าองค์ประกอบทริกเกอร์กำลังฟ้องอยู่
‫ดังนั้นฉันจะลบข้อความบันทึกนั้นออกเพราะมันน่ารำคาญและปิดบันทึกผลลัพธ์ในโค้ด
‫Visual Studio ลบข้อความบันทึกนี้ในองค์ประกอบการทำเครื่องหมาย
‫เราจะเห็นว่ามันใช้งานได้แล้ว
‫และสิ่งที่เราอยากทำคือทำบันทึกในตัวสร้างของเรา
‫ลองทำบันทึกใหม่ว่ากำลังสร้าง ดูว่าตอนนี้การเข้ารหัสแบบสดสามารถรับมันได้หรือไม่ จากนั้นเราจะไปที่บันทึกผลลัพธ์ของเราและดูทันที
‫ไม่มีอะไรปรากฏขึ้นที่นี่
‫ถ้าฉันไปข้างหน้าและกดเล่น ฉันจะดูบันทึกผลลัพธ์ของฉัน
‫ฉันเห็นข้อความบันทึกว่าองค์ประกอบทริกเกอร์ยังมีชีวิตอยู่และทราบล่วงหน้านาน
‫ที่จริงแล้ว คุณจะเห็นได้ว่ากำลังสร้างหนทางข้างหน้า เมื่อมันเป็นเพียงการสร้างโลก
‫มันเริ่มสร้างเร็วมากก่อนที่จะเริ่มเล่นเพราะเราต้องเตรียมโลกทั้งใบให้พร้อมก่อนที่เราจะเริ่มเล่น
‫มันเลยเกิดขึ้นเมื่อเรากดเล่น แต่จริงๆ แล้ว มันเกิดขึ้นในตัวแก้ไขด้วย
‫ดังนั้น ถ้าฉันเลือกนักแสดงที่นี่ แล้วเพิ่มส่วนประกอบเข้าไปและเพิ่มทริกเกอร์ของเรา ให้ดูบันทึกผลลัพธ์ของฉัน
‫จากนั้นคุณจะเห็นข้อความการสร้างถูกพิมพ์ออกมาจริง
‫ดังนั้นเราจึงต้องระวังสิ่งที่เราทำใน Constructor ของเรา เพราะมันจะถูกเรียกจริงๆ ว่าโค้ด C++ จะถูกเรียกเมื่อเราแก้ไข
‫ไม่ได้แม้แต่เล่นเกมของเรา
‫วัตถุเหล่านี้กำลังถูกสร้างขึ้นและดังนั้นจึงจำเป็นต้องเรียกตัวสร้าง
‫ฉันจะดำเนินการต่อและลบทริกเกอร์อีกครั้งและล้างข้อมูลเล็กน้อยโดยลบข้อความบันทึกการสร้างของเราและข้อความบันทึกการเริ่มเล่นของเราด้วย
‫สิ่งที่ดี
‫ดังนั้นในการบรรยายนี้ เราได้เห็นวิธีที่เราสามารถตั้งค่าคอมโพเนนต์ของเราเองเพื่อให้เกือบจะเหมือนกับที่สร้างในเทมเพลตสำหรับคอมโพเนนต์ฉากและคอมโพเนนต์
‫ACT เราได้เห็นวิธีใช้คอนสตรัคเตอร์เพื่อกำหนดค่าเริ่มต้นให้กับ คุณสมบัติในชั้นเรียนของเรา
‫เจอกันใหม่ตอนหน้าค่ะ