‫สวัสดีและยินดีต้อนรับ.
‫ในการบรรยายนี้ เราจะตั้งค่าตัวจับเพื่อจับรูปปั้นการ์กอยล์ของเราและนำติดตัวไปกับเราต่อหน้าเรา
‫มาดูกันว่าเราทำอย่างไร
‫ถึงเวลาที่เราจะเริ่มเรียกส่วนประกอบการคว้านี้ที่ตำแหน่งด้วยการหมุนเวียน
‫อย่างที่ฉันพูดไปก่อนหน้านี้ จริงๆ แล้วมีสองส่วนในเรื่องนี้
‫เราจำเป็นต้องคว้าส่วนประกอบและหลังจากนั้นเราต้องกำหนดตำแหน่งเป้าหมายและการหมุนด้วยเพื่อให้เคลื่อนที่ไปรอบๆ
‫อย่างแรกเลยในฟังก์ชันการคว้า เราจะต้องจับตัวชี้ไปที่การจัดการทางฟิสิกส์ของเรา
‫ฉันจะคัดลอกบรรทัดจาก Begin Play และฉันจะเข้าไปที่ grabber และฉันจะใส่มันที่นี่
‫และเพื่อป้องกันตัวเองจากการเป็นโมฆะ
‫แล้วจะเกิดอะไรขึ้น?
‫อันที่จริงไม่มีอะไรที่เราอยากทำ
‫ถ้าเราไม่มีที่จับทางฟิสิกส์ เราก็จะคว้าอะไรไม่ได้
‫เราจึงใส่ทั้งเนื้อความของฟังก์ชัน grab นี้ลงใน if statement แต่นั่นอาจดูรกไปหน่อย
‫สิ่งที่เราทำได้แทนคือสิ่งที่เรียกว่าการกลับมาก่อนกำหนด
‫โดยพื้นฐานแล้วเราแค่พูดว่าถ้าฟิสิกส์จัดการได้
‫เท่ากับตัวชี้ค่าว่าง
‫คุณต้องใส่เครื่องหมายเท่ากับสองเท่าตรงนี้
‫อย่างอื่นเป็นหน้าที่
‫จากนั้นเราก็ลงไปจัดฟันและใส่กลับลงไปได้
‫สิ่งที่จะทำคือถ้าเรามีจุดว่างสำหรับจุดจับฟิสิกส์ มันจะย้อนกลับทันทีและไม่ดำเนินการกับฟังก์ชันที่เหลือ
‫ดังนั้นจึงปลอดภัยในส่วนที่เหลือของฟังก์ชันเพื่อใช้ฟิสิกส์ จัดการตามที่เราต้องการ
‫ดังนั้นเราจะทำอย่างนั้น
‫เรากำลังจะไปลงที่ที่เราโดน
‫ฉันคิดว่าเราไม่ต้องการข้อความบันทึกเหล่านี้อีกต่อไป
‫ดังนั้นฉันจะลบคำสั่ง alt
‫ฉันจะลบทุกอย่างออกจากเนื้อความของคำสั่ง if โดยพื้นฐานแล้วเราจะใช้ตัวจับของเรา
‫ดังนั้นเราจะทำองค์ประกอบจับลูกศรจับฟิสิกส์ที่ตำแหน่งด้วยการหมุน
‫จากนั้นเราต้องจัดเตรียมส่วนประกอบที่เราพยายามจะคว้าไว้
‫หากคุณได้ดู สิ่งที่คาดหวังคือองค์ประกอบดั้งเดิมของคุณ
‫มาดูกันว่าเรามีอะไรแบบนั้นในผลการตีของเราหรือไม่
‫ฉันจะไปที่หน้าเอกสารประกอบเพื่อมองหาองค์ประกอบดั้งเดิมของคุณและคุณจะเห็นว่าองค์ประกอบที่ได้รับจะส่งคืนองค์ประกอบดั้งเดิมที่สมบูรณ์แบบ
‫นั่นคือสิ่งที่เราต้องการ
‫ดังนั้นเราจะมองหาองค์ประกอบผลลัพธ์ของการเข้าชม dot get และนั่นจะให้สิ่งที่เราต้องการสำหรับอาร์กิวเมนต์แรก
‫ต่อไปเป็นชื่อ F ของกระดูก
‫ตอนนี้เราไม่ต้องการที่จะคว้าอะไรด้วยกระดูกชิ้นใดชิ้นหนึ่ง
‫จะเป็นกรณีนี้ถ้าเรามีโครงตาข่าย แต่เราไม่มี
‫เรามีสแตติกเมช ดังนั้นเราจึงใช้ชื่อ ขีดล่างไม่มี
‫และโดยทั่วไปแล้ว ด้วยชื่อ F ที่เรากำลังพูดถึงกระดูก สิ่งนี้เกิดขึ้นค่อนข้างมาก
‫ถ้าไม่อยากใส่อะไรเลย ให้ใช้ชื่อ ไม่ต้องขีดเส้นใต้
‫ตอนนี้เราต้องการตำแหน่งที่เราจะคว้ามันไว้
‫และเราได้บอกไปแล้วว่าเราได้ตรวจสอบเรื่องนี้แล้ว
‫มันคือจุดกระทบจุดกระทบผลลัพธ์จากนั้นหมุน ดี การหมุนปัจจุบันของส่วนประกอบนั้นจะทำ หรือการหมุนปัจจุบันของนักแสดง
‫แล้วแต่ว่าคุณต้องการอะไร
‫ดังนั้นผลลัพธ์ของการเข้าชมจึงได้รับส่วนประกอบ
‫เราจะคว้าผลการตีนั้นได้รับลูกศรดอทคอมโพเนนท์เพราะมันเป็นตัวชี้ให้หมุนองค์ประกอบเช่น
‫ตอนนี้เราสามารถใส่วงเล็บปิดในบรรทัดที่แยกจากกัน และฉันจะใส่เครื่องหมายอัฒภาคเพื่อจบประโยคนั้น
‫และนั่นน่าจะมีประสิทธิภาพในการจับส่วนประกอบของเรา
‫ตอนนี้ส่วนต่อไปของปริศนาอยู่ในองค์ประกอบติ๊กซึ่งเราต้องการใช้ที่จับทางฟิสิกส์อีกครั้ง
‫ตอนนี้ฉันกำลังจะคัดลอกโค้ด เพราะรู้ว่าการคัดลอกโค้ดไปยังสามตำแหน่งนั้นมากเกินไป และเราอาจต้องการคิดที่จะดึงมันออกมาเป็นฟังก์ชันเพื่อที่เราจะนำมาใช้ใหม่
‫แต่ส่วนประกอบไอดี เราจะใช้ที่จับทางฟิสิกส์ เราจะกลับมาก่อนกำหนดถ้าเราไม่สามารถจับที่จับทางฟิสิกส์ได้
‫แล้วสิ่งที่เราจะทำคือ เราจะพยายามตั้งสถานที่เป้าหมายนั้น
‫เรากำลังจะทำฟิสิกส์ จัดการลูกศร กำหนดตำแหน่งเป้าหมายและการหมุน
‫และลองมาคิดกันสักนิดเกี่ยวกับเรื่องนี้
‫ประเภทของสถานที่เป้าหมายที่เราอาจจะสนใจในการตั้งค่า?
‫โดยพื้นฐานแล้ว มันจะเหมือนกับที่เราทำกับจุดสิ้นสุด
‫เราจะใช้ตำแหน่งปัจจุบันของเรา แล้วเลื่อนออกไปในทิศทางไปข้างหน้าตามระยะทางที่กำหนด
‫ตอนนี้จะกำหนดค่าได้
‫คุณสามารถใช้ระยะคว้าสูงสุดได้ แต่ฉันพบว่าในทางปฏิบัติรู้สึกว่าอยู่ไกลเกินไป
‫ดังนั้นถ้าเราไปที่ grab a H เราจะสร้างคุณสมบัติการใช้งานใหม่ที่เรียกว่า Edit
‫Anywhere และมันจะเป็นทุ่นที่เรียกว่าระยะพัก
‫และผมจะตั้งค่านี้เป็น 200
‫ดังนั้นมันจะเข้าใกล้ผู้เล่นมากขึ้น
‫ตอนนี้ ถ้าเราเข้าสู่การคว้า CP เราสามารถไปที่ฟังก์ชันติ๊กของเราแล้วลองสร้างตำแหน่งเป้าหมายนี้
‫มันจะเป็นเวกเตอร์ F ที่เรียกว่าตำแหน่งเป้าหมาย
‫เราจะตั้งค่าให้เท่ากับตำแหน่งรับส่วนประกอบ บวกเวกเตอร์ไปข้างหน้าคูณด้วยระยะพัก
‫ดังนั้นเราจึงสามารถใช้เป็นที่ตั้งเป้าหมายได้
‫นั่นจะเป็นข้อโต้แย้งแรกของเรา จากนั้นเราต้องหมุนเป้าหมาย
‫สำหรับสิ่งนั้น ฉันจะใช้การหมุนของส่วนประกอบปัจจุบัน เพื่อที่เมื่อเรามองไปรอบๆ
‫เราจะหมุนวัตถุด้วยมุมมองของเรา เพื่อที่เราจะได้หมุนองค์ประกอบเพื่อให้ได้การหมุนของ
‫องค์ประกอบฉากจับปัจจุบัน
‫ทีนี้ลองใส่เครื่องหมายอัฒภาคต่อท้ายบรรทัดนั้นแล้วคอมไพล์ใหม่และดูว่ามันทำงานอย่างไร
‫ตอนนี้ หลังจากที่เราคอมไพล์สำเร็จแล้ว เรามาเลือกการ์กอยล์กัน และตรวจสอบให้แน่ใจว่าเราเปลี่ยนความคล่องตัวของมันจาก
‫START
‫ยึดติดกับการเคลื่อนที่ได้เพราะเราต้องการให้มันเคลื่อนที่ตามหลักฟิสิกส์ และทำให้แน่ใจว่ามันเป็นการจำลองฟิสิกส์
‫ไปที่หมวดฟิสิกส์แล้วตรวจสอบปุ่มฟิสิกส์จำลอง
‫มากดเล่นและลองหยิบมันขึ้นมา
‫ดังนั้นฉันคิดว่ามันกำลังเกิดขึ้นในขณะนี้ แต่ดูเหมือนว่าจะติดอยู่ในพื้น ดังนั้นจึงไม่เหมาะ
‫ลองยกขึ้นอีกนิดจะได้ไม่ติดพื้น
‫ปล่อยให้มันตกลงไปบนพื้นแบบนั้น แล้วลองหยิบมันขึ้นมาดู
‫ตอนนี้ดูเหมือนว่าจะติดอยู่ในพื้นอีกครั้ง ลองอีกครั้ง
‫ตกลง.
‫มันเลยไม่น่าเชื่อถือนิดหน่อย และบางครั้ง ถ้าคุณจับมันได้ทันที มันจะหยิบกอบลินขึ้นมาได้
‫และคุณสามารถหยิบมันขึ้นมาแบบนั้นได้
‫ฉันสังเกตเห็นว่าการหมุนไม่ถูกต้อง และนั่นเป็นเพราะฉันใช้สิ่งผิดๆ ในการจับองค์ประกอบฟิสิกส์
‫ฉันได้การหมุนของกอบลินแล้ว และตอนนี้เรากำลังพยายามคงการหมุนนั้นไว้
‫สิ่งที่ฉันจำเป็นต้องใช้จริง ๆ คือการหมุนที่เราใช้ในการเลือกการหมุนของตัวจับ
‫ไปข้างหน้าและเปลี่ยนสิ่งนั้นและคอมไพล์ใหม่แล้วเราจะกดปุ่มเล่นอีกครั้งแล้วลองคว้ามัน
‫ไปเลย
‫คราวนี้ฉันจับมันและได้การหมุนที่ถูกต้อง การหมุนที่แน่นอนของมัน
‫และคุณจะเห็นได้ว่ามันดูเหมือนกำลังถูกดึงด้วยสปริง
‫ถ้าฉันพยายามผลักมันผ่านกำแพง มันก็พยายามไม่ทะลุกำแพงให้มากที่สุดเท่าที่จะมากได้
‫ในที่สุดมันก็โผล่ทะลุกำแพง แต่มันพยายามสังเกตฟิสิกส์ขณะที่ฉันเคลื่อนที่ไปรอบๆ
‫ฉันเลยอยากท้าให้คุณลองดึงฟังก์ชันใหม่ที่เรียกว่า get Physics Handle ออกมา
‫มันจะเป็นส่วนตัว
‫ควรส่งคืน U
‫ฟิสิกส์จัดการองค์ประกอบและควรลบรหัสที่ซ้ำกันนี้เพื่อขอรับเจ้าของและค้นหาส่วนประกอบตามชั้นเรียน
‫คุณยังสามารถทำให้คอนเทนต์ดูว่าคุณทำได้และทำบันทึกได้หรือไม่
‫ถ้าเราไม่มีองค์ประกอบการจัดการทางฟิสิกส์ ให้บันทึกคำเตือนเพื่อให้มันปรากฏขึ้นและเรารู้ว่าเราได้ทำอะไรผิดพลาด
‫หยุดวิดีโอชั่วคราวและไปกันเลย
‫ตกลง.
‫ยินดีต้อนรับกลับ.
‫ก่อนอื่น เราไปที่ส่วนหัวของไฟล์ที่เราจะใส่สิ่งนี้ในส่วนส่วนตัว
‫แต่ภายใต้คุณสมบัติ Q ฉันจะให้มันส่งคืนองค์ประกอบการจัดการฟิสิกส์ U และใส่เครื่องหมายดอกจันที่นี่
‫เนื่องจากเราใช้ประเภทนี้ในส่วนหัว เราจึงต้องนำการรวมของเราออกแล้วตัดออกจากตัวจับ
‫ดังนั้นพวกเขาจึงรวมเกี่ยวกับการจัดการทางฟิสิกส์ เราต้องใส่ไว้ในตัวจับ h ซึ่งเราจะวางมันไว้เหนือตัวสร้าง
‫H นั่นคือสิ่งสุดท้ายในไฟล์ส่วนหัวของเราเสมอ
‫แล้วทำไมเราไม่ต้องมีไว้ใน CP ด้วยล่ะ?
‫ก็เพราะว่าเรากำลังรวมตัวจับ h.
‫ดังนั้นทุกอย่างที่เราใส่ใน grab a H จะอยู่ใน C p โดยอัตโนมัติเพื่อให้เราสามารถใส่รวมเข้าไปได้
‫ตอนนี้ เราสามารถลงไปถึงจุดที่เรากำลังกำหนดฟังก์ชันนี้ และเรียกมันว่าวงเล็บคู่รับตัวจัดการฟิสิกส์แบบนั้น
‫และฉันคิดว่านี่ควรจะเป็น const มันไม่ควรเปลี่ยนแปลงอะไรใน grabber ของเราเพื่อเรียกฟังก์ชันนี้
‫ลองไปที่ CP และไปที่ด้านล่างซึ่งฉันจะวางคำจำกัดความ ฉันจะติดเครื่องหมายทวิภาค
‫U เครื่องหมายทวิภาคที่ด้านหน้า แล้วฉันจะเอาอัฒภาค เพิ่มคู่ ของเครื่องมือจัดฟัน
‫และสิ่งที่เราอยากทำคือหาจุดที่เราข้ามเส้นนี้ไป แล้วเราจะตัดมันออก
‫แล้วแทนที่ด้วยฟิสิกส์
‫รับมืออย่างนั้น
‫จากนั้นใน get Physic handle เราสามารถส่งคืน get Owner find component ตามคลาส ฯลฯ
‫และตอนนี้ เราสามารถแทนที่สิ่งนี้ด้วย โดยที่เราทำในองค์ประกอบเห็บ เราได้รับการจัดการทางฟิสิกส์
‫มาแทนที่โค้ดเล็กน้อยนั้นด้วย get Physics handle
‫ตอนนี้มันเป็นรหัสเล็ก ๆ น้อย ๆ แทบจะไม่คุ้มค่าเลย แต่มันก็คุ้มค่าอย่างแน่นอนสำหรับการฝึกฝน
‫ณ จุดนี้และสำหรับความจริงที่ว่าเราอาจเพิ่มข้อความบันทึกตอนนี้และเริ่มเล่น
‫เราไม่จำเป็นต้องให้ฟิสิกส์จัดการเลย ดังนั้นฉันจะลบโค้ดนั้นออกที่นั่น
‫แต่สิ่งที่ฉันจะทำคือเพิ่มข้อความบันทึก
‫ดังนั้น เราจะสร้างตัวแปรเพื่อเก็บผลลัพธ์ของเราไว้ที่นี่ เพราะหากเรากลับมาแล้วลองพิมพ์ข้อความบันทึก
‫สิ่งนั้นจะไม่ทำงาน
‫เราจะมีองค์ประกอบการจัดการทางฟิสิกส์ใหม่ที่เรียกว่า ผลลัพธ์ เพราะนั่นคือสิ่งที่เราจะกลับไปจากที่นี่
‫และเราจะบอกว่าถ้าผลลัพธ์เท่ากับตัวชี้ null งั้น เราต้องให้คุณล็อกด้วยคำเตือน หรือที่จริงแล้ว ข้อผิดพลาดจริงๆ
‫และเราจะบอกว่า grab a ต้องการองค์ประกอบการจัดการฟิสิกส์ของ U แล้วต่อจากคำสั่ง if
‫สิ่งนี้จะเกิดขึ้น
‫ไม่ว่ามันจะเป็นโมฆะหรือไม่ เราจะส่งคืนผลลัพธ์
‫ลองมาคอมไพล์ดูก่อนว่าได้ผลไหม
‫ดูเหมือนว่าจะประสบความสำเร็จและฉันเห็นว่ามันต้องใช้งานได้เพราะเมื่อฉันคลิกซ้ายในฉากฉันได้รับสีน้ำเงินหรือลูกกลมดีบักที่ถูกวาดและพวกมันจะไม่ถูกวาดถ้าเราไม่ได้จับองค์ประกอบที่จับฟิสิกส์นั้น
‫.
‫สิ่งที่ดี
‫ดังนั้นในการบรรยายครั้งนี้ เราสามารถคว้ารูปปั้นการ์กอยล์ของเราได้โดยใช้ตัวจับ แม้ว่าบางครั้งอาจไม่น่าเชื่อถือสักเล็กน้อย
‫และเราจะจัดการเรื่องนี้ในการบรรยายต่อไป
‫แล้วเจอกันที่นั่น