‫สวัสดีและยินดีต้อนรับ.
‫ในการบรรยายนี้ เราจะมาดูว่าเราจะสร้างโหนดใหม่ใน Blueprint จาก C++ ของเราได้อย่างไร
‫เพื่อให้เราสามารถเรียกใช้ฟังก์ชัน C++ จากภายใน Blueprint ได้
‫มาดูวิธีทำกันเลยดีกว่า
‫ตอนนี้ ฉันสามารถใช้พิมพ์เขียวเพื่อเรียกโหนดพิมพ์เขียวได้ แต่จริงๆ แล้วฉันต้องการเปิดใช้งานตัวจับของเราจากพิมพ์เขียวชิ้นนี้ที่นี่
‫ไม่ใช่พิมพ์สตริงออกมา
‫แล้วฉันจะทำอย่างนั้นได้อย่างไร?
‫โชคดีที่เราสามารถแสดงฟังก์ชันจากคลาส C++ ให้เป็นพิมพ์เขียวได้อย่างง่ายดาย
‫และวิธีที่เราทำมีดังนี้
‫เราจะไปสร้างฟังก์ชันสาธารณะใหม่
‫ดังนั้นฉันจะไปที่ส่วนสาธารณะของฉันภายใต้องค์ประกอบติ๊ก
‫และที่นี่ฉันจะสร้างฟังก์ชันใหม่ด้วยประเภท void return ที่เรียกว่า release
‫ดังนั้นเราจะทำ grab ในภายหลัง แต่เราเพิ่งจะเรียกใช้ฟังก์ชัน release สำหรับตอนนี้
‫ฉันจะทำให้สิ่งนี้พร้อมใช้งานใน Blueprint ได้อย่างไร
‫ผมต้องทำให้มันเป็นฟังก์ชัน U
‫ดังนั้นคุณจึงมีคุณสมบัติสำหรับตัวแปร
‫หน้าที่ของคุณนั้นเทียบเท่ากับการทำให้ฟังก์ชันนั้นมองเห็นได้โดยทั่วไปในดินแดนแห่งพิมพ์เขียว
‫แต่เราไม่ได้หยุดเพียงแค่นั้น เช่นเดียวกับคุณสมบัติใหม่
‫เราต้องทำให้มันแก้ไขได้ทุกที่ที่นี่ด้วยฟังก์ชัน u เราต้องทำให้มันเป็นพิมพ์เขียวที่เรียกใช้งานได้ และตามที่ชื่อแนะนำ
‫หมายความว่าตอนนี้ฟังก์ชันนี้กลายเป็นโหนดที่พิมพ์เขียวสามารถเข้าถึงได้
‫ไปที่การคว้า CP และสร้างการนำไปใช้สำหรับสิ่งนี้
‫มันจะเป็นโมฆะส่งคืนประเภท
‫มันจะเป็นยู
‫Grabber, ทวิภาค, การปล่อยโคลอน, ไม่มีพารามิเตอร์
‫และเราจะใส่เนื้อความของฟังก์ชัน ซึ่งฉันจะติด u เข้าสู่ระบบ และฉันจะให้ข้อความ
‫ปล่อยตัวจับเช่นนั้น จากนั้นเราจะคอมไพล์และส่งเสียงบี๊บกลับมา
‫ผู้เล่น ฉันจะลบโหนดสตริงการพิมพ์และฉันจะลากออกจาก release ที่นี่และฉันจะค้นหา
‫release เป็นฟังก์ชันในนี้
‫ตอนนี้เราไปดูรอบๆ กันสักหน่อย
‫ไม่มีอะไรแสดงขึ้นในขณะนี้เพราะฉันต้องทำสิ่งนี้บนตัวจับ
‫ลองนำองค์ประกอบ grabber มาลากลงในกราฟเหตุการณ์เพื่อสร้างตัวแปร grabber จากนั้นลากออกจากส่วนนี้และค้นหาการเปิดตัว
‫ตอนนี้คุณสังเกตเห็นว่าไม่มีอะไรเกิดขึ้นในกรณีนี้เช่นกัน
‫และนั่นเป็นเพราะว่าเราใช้ live coding และบางครั้งสิ่งที่คอมไพล์ด้วย live coding
‫จะไม่แสดงในโปรแกรมแก้ไข
‫สิ่งที่เราต้องทำคือปิดตัวแก้ไข ปิดหน้าต่างเขียนโค้ดแบบสด จากนั้นในโค้ด
‫Visual Studio กด shift ควบคุม B และสร้างโดยใช้ตัวแก้ไข Crypt Raider ชนะ 64 Development Build
‫รอให้สำเร็จแล้วเปิดโปรแกรมแก้ไขใหม่จากไฟล์โครงการใหม่
‫ตอนนี้ถ้าเราเปิดเครื่องเล่น BP ของเราอีกครั้งและตอนนี้ลากตัวจับออกไป เราจะค้นหาการปล่อยตัว
‫คุณจะเห็นได้ว่าขณะนี้มีโหนดที่เรียกว่า release
‫และที่จริงทั้งหมดที่ทำคือจะเรียกว่า C++
‫คุณจะได้เห็นว่าคุณสามารถใช้ Blueprint และ C++ ร่วมกันอย่างใกล้ชิดด้วยวิธีนี้ได้อย่างไรโดยเปิดเผยสิ่งต่าง
‫ๆ C++ ในโลกของ Blueprint
‫ตอนนี้ฉันกำลังจะเชื่อมต่อพินการรีลีสของฉันกับรีลีสโหนด
‫เรากำลังจะไปในดันเจี้ยนของเรา และเรากำลังจะตีเล่น
‫และตอนนี้ถ้าฉันคว้าแล้วปล่อย คุณจะไม่เห็นอะไรเลย เพราะมันอยู่ในบันทึกผลลัพธ์
‫ให้เปิดล็อกเอาท์พุตและเชื่อมต่อเข้ากับเลย์เอาต์แล้วกดเล่นอีกครั้ง
‫และตอนนี้เมื่อเราคว้าแล้วปล่อย คุณจะเห็นว่ามีข้อความสั้นๆ อยู่ที่นั่น
‫มันเลื่อนผ่านไปเร็วมากเพราะทุก ๆ ขีดที่เรากำลังทำสิ่งนี้โดนรูปปั้นสถานะการ์กอยล์
‫แต่ถ้าคุณหยุดและมองย้อนกลับไปในบันทึก คุณจะเห็นข้อความว่า ตัวจับที่ปล่อยออกมา
‫ดังนั้นโค้ด C++ ของเราจึงถูกดำเนินการ
‫ตกลง ตอนนี้ฉันต้องการให้คุณย้ายโค้ดการกวาดของเราไปที่ฟังก์ชันคว้า
‫คุณกำลังจะสร้างฟังก์ชันการคว้าและเรียกมันจากพิมพ์เขียว
‫คุณจะทำแบบเดียวกับที่ฉันเพิ่งใช้ฟังก์ชันรีลีส
‫แต่เมื่อคุณสร้างเนื้อความของฟังก์ชัน grab แทนที่จะพิมพ์อะไร
‫ให้ย้ายโค้ดการกวาดนั้นและคำสั่ง if และตัวแปรการเตรียมทั้งหมดจาก TIC เพื่อไม่ให้มันทำ
‫ทุกครั้งที่เราติ๊กเมื่อเราเรียกใช้ฟังก์ชัน grab นั้น เมื่อเรากดปุ่มเมาส์ลงหรือกดทริกเกอร์บนคอนโทรลเลอร์ของเรา
‫ดังนั้นให้คอมไพล์ใหม่และตรวจสอบบันทึกเพื่อให้แน่ใจว่าจะเกิดขึ้นเมื่อคุณกดปุ่มเท่านั้น
‫หยุดวิดีโอชั่วคราวและไปกันเลย
‫ยินดีต้อนรับกลับ.
‫ไปที่ C++ ของเราและไปที่ไฟล์ส่วนหัวของเรา
‫ฉันจะปิดหน้าต่างคอมไพล์ที่นี่และเหนือรุ่น
‫ฉันจะสร้างพิมพ์เขียวฟังก์ชัน U ใหม่ที่เรียกว่า callable ซึ่งจะกลายเป็นโมฆะที่เรียกว่า grab
‫และเราจะนำไปใช้ใน C ++
‫กลับกลายเป็นความว่างเปล่าอีกครั้ง
‫คุณคว้าเครื่องหมายทวิภาค วงเล็บทวิภาคแล้วจัดฟัน
‫และฉันจะย้ายโค้ดทั้งหมดนี้ออกจากองค์ประกอบ TIC เพราะเรากำลังตั้งค่าเวกเตอร์เริ่มต้นและสิ่งดีๆ
‫ทั้งหมดนั้น
‫ลงไปให้สุดแล้วตัดออกแล้ววางลงใน grab แทนในที่ที่ควรจะเป็น
‫ไม่เป็นไร
‫ตอนนี้เรามาดูกันว่าการเข้ารหัสแบบสดจะทำให้เกิดฟังก์ชั่นในเครื่องเล่น BP หรือไม่
‫ไปที่เครื่องเล่นเสียงบี๊บ ลบสตริงการพิมพ์ของเราแล้วลากออกไป
‫หยิบโหนดที่เรามีและดูว่าเราสามารถหาฟังก์ชันคว้าได้หรือไม่
‫โอเค คราวนี้ฟังก์ชั่นการคว้าก็พร้อมให้เราใช้
‫ที่ที่ดี
‫ตอนนี้ มาต่อกับพินการดำเนินการที่กดแล้ว ไปที่ดันเจี้ยนของเรา กดปุ่มเล่น และตรวจดูให้แน่ใจว่าเราเลื่อนลงไปที่ด้านล่างของบันทึกผลลัพธ์
‫คลิกขวาที่วิวพอร์ตของฉันแล้วมองไปรอบๆ จากนั้นฉันจะกดปุ่มซ้าย
‫มันบอกว่าไม่มีนักแสดงคนไหนโดนแล้วจึงปล่อยตัวคว้าทันที ดังนั้นจึงไม่มีนักแสดงคนใดโดน
‫แล้วฉันก็ปล่อยกุญแจ ไม่มีการไขว่คว้า
‫ถ้าฉันขึ้นไปบนการ์กอยล์ ฉันจะดูมัน
‫ฉันกดลงไปและมันบอกว่านักแสดงตีรูปปั้นกากอย จากนั้นฉันสามารถปล่อยตัวจับได้
‫ตอนนี้ เรามีสถาปัตยกรรมที่เหมาะสม เพื่อที่จะคว้าการ์กอยล์นี้
‫ต่อไป เราต้องจัดการกับส่วนฟิสิกส์ของการตั้งค่านี้
‫เจอกันใหม่ตอนหน้าค่ะ