‫สวัสดี
‫ยินดีต้อนรับ.
‫ในการบรรยายนี้ เราจะทำให้ตัวจับมีความน่าเชื่อถือมากขึ้น
‫และเราจะทำให้เป็นไปได้ที่จะวางองค์ประกอบที่คว้าไว้เพื่อให้เราสามารถโยนมันทิ้งไปและโดยทั่วไปมีประโยชน์มากขึ้นเล็กน้อย
‫มาดูวิธีการทำกัน
‫เหตุผลที่เราไม่สามารถหยิบการ์กอยล์นี้ได้บ่อยครั้งก็เพราะว่าส่วนประกอบที่จำลองฟิสิกส์เพื่อประสิทธิภาพจะเข้าสู่โหมดสลีปเมื่อพวกมันหยุดนิ่งเป็นระยะเวลาหนึ่ง
‫และนั่นคือสิ่งที่เราเห็น
‫การจำลองฟิสิกส์ของการ์กอยล์นี้กำลังจะเข้าสู่โหมดสลีป และจะไม่ถูกปลุกเมื่อเราติดมันด้วยที่จับทางฟิสิกส์ของเรา
‫ดังนั้นสิ่งที่เราต้องเรียนรู้ที่จะทำคือปลุกมันขึ้นมาเมื่อเราตีมันด้วยรอยทรงกลม
‫ตอนนี้ ไปดูเอกสารประกอบเบื้องต้นของคุณที่เราเคยเห็นกัน
‫องค์ประกอบดั้งเดิมของคุณคือสิ่งที่ส่งคืนโดยผลลัพธ์ Hit ของเรา แต่จริงๆ แล้วองค์ประกอบดั้งเดิมคืออะไร
‫ดังนั้นในเอกสารประกอบจึงกล่าวไว้ว่าองค์ประกอบดั้งเดิมคือองค์ประกอบฉากที่มีหรือสร้างรูปทรงเรขาคณิตบางประเภทและแสดงผลหรือใช้เป็นข้อมูลการชนกัน
‫โดยทั่วไปแล้ว องค์ประกอบดั้งเดิมคือสิ่งที่สามารถจำลองฟิสิกส์ได้
‫ดังนั้นเราจึงสามารถคาดหวังว่าจะพบวิธีการจำลองทางฟิสิกส์ที่นี่
‫และสิ่งที่ผมจะมองหาคือฟังก์ชันที่มีคีย์เวิร์ด wake อยู่ในนั้น
‫เราจะตรวจสอบฟังก์ชันบางอย่างจนกว่าจะพบฟังก์ชันที่ระบุว่า Wake all ร่างกายที่แข็งกระด้าง
‫วัตถุแข็งเป็นคำศัพท์ทางฟิสิกส์สำหรับวัตถุที่จำลองฟิสิกส์
‫จึงเห็นว่ามีความเป็นโมฆะ
‫ประเภทการส่งคืนไม่มีอาร์กิวเมนต์ใดๆ
‫ดังนั้นเราควรเรียกสิ่งนี้ว่าเมื่อเราพยายามแนบมัน
‫ดังนั้นถ้าเราไปคว้า CP ภายในคำสั่ง if เราไปถึงองค์ประกอบนี้แล้ว เราก็กำลังจะคว้ามัน
‫สิ่งแรกที่เราต้องทำคือ เรามาสร้างตัวแปรเพื่อเก็บองค์ประกอบดั้งเดิมของคุณ
‫ดังนั้นเราจะมีตัวชี้องค์ประกอบดั้งเดิมของคุณที่เรียกว่าชุดองค์ประกอบการตี ซึ่งเท่ากับองค์ประกอบการรับจุดของผลลัพธ์
‫จากนั้นใช้ตัวชี้องค์ประกอบ Hit นั้น เราสามารถลูกศรปลุกวัตถุแข็งทั้งหมด จากนั้นใส่วงเล็บและเครื่องหมายอัฒภาคต่อท้าย
‫ดังนั้นนี่ควรจะทำให้ส่วนประกอบนั้นเตะ ปลุกมันขึ้นมาเพื่อให้มันตอบสนองต่อการจัดการทางฟิสิกส์
‫ตอนนี้เรามาแทนที่ตำแหน่งที่เราทำ Hit แล้ว
‫อย่ารับส่วนประกอบในการเรียกที่จับฟิสิกส์ของเราเพื่อคว้าตำแหน่งส่วนประกอบเพราะตอนนี้เรามีตัวแปรสำหรับสิ่งนั้นแล้วมาคอมไพล์ใหม่เมื่อเสร็จแล้ว
‫ไปข้างหน้าตีเล่นและปล่อยให้การ์กอยล์นั่งบนพื้นเล็กน้อยตอนนี้และปล่อยให้มันเข้านอนแล้วลองหยิบมันขึ้นมา
‫และคุณจะสังเกตเห็นว่าเราไม่มีปัญหาในการหยิบมันขึ้นมา ปล่อยให้มันนอนราบกับพื้น อะไรก็ได้
‫มันจะไม่เป็นไรและปลุกร่างกายที่แข็งทื่อของฟิสิกส์เหล่านั้น และเริ่มจำลองพวกมันเพื่อที่จะสามารถยกและคว้ามันได้
‫ตอนนี้ คุณอาจสังเกตเห็นว่าขณะนี้เราไม่สามารถปล่อยที่จับฟิสิกส์ได้ ดังนั้นนั่นจะเป็นความท้าทายของคุณในการทำเช่นนี้ในฟังก์ชันการปลดปล่อย
‫ดังนั้นคุณจะเรียกองค์ประกอบการปลดปล่อยบนที่จับฟิสิกส์นั้น
‫นั่นคือฟังก์ชันที่มีอยู่ในตัวชี้ที่จับฟิสิกส์
‫คุณจะต้องตรวจสอบก่อนว่าเรามีส่วนประกอบที่ถูกจับหรือไม่
‫ดังนั้นหากคุณได้รับส่วนประกอบการคว้าที่ส่งคืนตัวชี้ไปยังส่วนประกอบการคว้า จุดนั้นจะถือเป็นโมฆะหากตัวจับฟิสิกส์ไม่ได้จับอะไรเลย
‫ดังนั้นคุณสามารถใช้สิ่งนั้นเพื่อตรวจสอบว่าเรามีอะไรอยู่หรือไม่และปล่อยเฉพาะในกรณีที่เรากำลังคว้าอะไรบางอย่างอยู่
‫และเป็นโบนัส คุณสามารถดูว่าเราตั้งเป้าหมายได้อีกครั้งหรือไม่
‫เฉพาะในกรณีที่เรากำลังคว้าอะไรบางอย่าง แต่ดูวิดีโอและไปกันเลย
‫ยินดีต้อนรับกลับ.
‫เลยเข้าไปหยิบถ้วยกัน
‫ไปที่ฟังก์ชั่นการปล่อยและลบบันทึกการวางจำหน่าย
‫และในที่นี้เราจะใส่คำสั่ง if และเราจะบอกว่าถ้า และตอนนี้ เราจำเป็นต้องได้รับการจัดการทางฟิสิกส์ของเรา
‫อย่างแรกเลย ให้คุณทำฟิสิกส์จัดการตัวชี้องค์ประกอบ ซึ่งเราจะเรียกการจัดการทางฟิสิกส์และตั้งค่าให้เท่ากับการจัดการทางฟิสิกส์
‫แล้วเราจะบอกว่าถ้าตัวจัดการฟิสิกส์เท่ากับตัวชี้ว่าง เราต้องการไปข้างหน้าและกลับมาเพราะเราจะทำอะไรไม่ได้
‫ปล่อยอะไรเลย
‫ถ้าเราไม่มีการจัดการฟิสิกส์เลย เราต้องการตรวจสอบว่าขณะนี้เรากำลังถืออะไรกับการจัดการฟิสิกส์ของเราอยู่หรือไม่
‫ดังนั้น ถ้า, ถ้า, ถ้าลูกศรจับทางฟิสิกส์ได้จับองค์ประกอบในวงเล็บไม่เท่ากับตัวชี้ null แล้วภายในเนื้อความของนี่ถ้าคำสั่งหมายความว่าเรามีบางอย่างที่จับได้อยู่ในขณะนี้
‫ดีแล้ว เราจะทำส่วนประกอบการปล่อยลูกศรจัดการฟิสิกส์ ซึ่งกำลังจะปล่อยมันไปตามที่ชื่อจะแนะนำ
‫และสิ่งหนึ่งที่ฉันไม่ได้ทำในโค้ดนี้ แต่น่าจะคุ้มค่าที่จะเพิ่มเข้าไปในโค้ดของคุณ ก่อนที่เราจะปล่อยส่วนประกอบ
‫มันคุ้มค่าที่จะดำเนินการต่อและเรียกรับส่วนประกอบแล้วเพิ่มส่วนที่อ่อนแอทั้งหมดลงไปเหมือนที่เราทำ
‫ก่อนที่เราจะคว้าส่วนประกอบ
‫เพราะถ้าเราปลูกเป็นส่วนประกอบและไม่เคลื่อนไหวสักระยะหนึ่งก็อาจหลับไปได้เช่นกัน
‫แล้วปล่อยไปก็ไม่เกิดผลอะไร
‫ดังนั้นสิ่งนี้จึงคุ้มค่าที่จะเพิ่มเพราะมันจะจับกรณีมุมนั้นและเราไม่ต้องการกำหนดตำแหน่งเป้าหมายในขีดถ้าเรามีที่จับทางฟิสิกส์ที่ไม่ได้คว้าอะไรเลย
‫ในองค์ประกอบติ๊กของเรา เราจะใส่คำสั่ง if ที่จะเหมือนกันทุกประการ
‫จะบอกว่าลูกศรจับฟิสิกส์ จับองค์ประกอบไม่เท่ากับตัวชี้ค่าว่าง
‫จากนั้นในเนื้อความของคำสั่ง if เราจะใส่การคำนวณตำแหน่งเป้าหมายและตำแหน่งเป้าหมายที่ตั้งไว้ในการจัดการทางฟิสิกส์นั้นด้วย
‫ลองคอมไพล์ใหม่แล้วลองทำดู
‫ไปกดเล่นกันได้เลย
‫และลองคว้าการ์กอยล์
‫แล้วถ้าฉันปล่อยเมาส์ มันก็ตกลงไปที่พื้นอีกครั้ง
‫และดูเหมือนว่าจะไม่ได้รับผลกระทบจากการตื่นหรือหลับ
‫ดูเหมือนว่าเราจะปลุกมันขึ้นมาไม่ว่าเราจะหยิบมันขึ้นมาทุกครั้งหรือไม่ก็ตาม
‫ดูเหมือนว่าจะทำงานได้ตรงตามที่ฉันต้องการ
‫มันไม่ติดขัด
‫มันรู้สึกถูกต้อง
‫สิ่งเดียวที่แปลกเล็กน้อยคือเมื่อฉันเดินเข้าไปในนั้น คุณจะเห็นว่ามันกระวนกระวายแปลกๆ
‫เพราะมันชนกับเครื่องเล่นจริงๆ
‫ตอนนี้ เราสามารถแก้ไขปัญหานี้เพียงเล็กน้อยโดยไปที่การ์กอยล์ของเราในบานหน้าต่างรายละเอียด เลือกหมวดหมู่ทั้งหมด
‫เลื่อนลงมาที่การชนกัน และดูการตั้งค่าล่วงหน้าของการชนกันแบบกำหนดเองของเราและลงในการตอบสนองของออบเจกต์
‫เราจะเห็นข้อมูลเพิ่มเติมเกี่ยวกับเรื่องนี้ในภายหลัง
‫มีการตอบสนองวัตถุจำนำ
‫โดยพื้นฐานแล้วจะบอกว่า ฉันควรจะชนกับเบี้ยหรืออะไร?
‫การตอบสนองของฉันควรเป็นอย่างไรต่อจำนำ?
‫ผมจะตั้งให้ทับซ้อนกับตัวจำนำ
‫และนั่นหมายความว่าถ้ามันชนกับฉัน มันก็จะไม่สนใจมันเลย
‫แล้วอีกอย่างที่เราต้องทำคือ เพราะจริงๆ แล้ว มันประกอบด้วยสแตติกเมช 2 อัน พวกมันมีการตั้งค่าการชนกันของมันเอง
‫ฉันจะลงไปที่เนินดิน
‫นั่นคือสิ่งที่อยู่ใต้การ์กอยล์
‫และตรงนี้ ผมจะลดความซับซ้อนของสิ่งต่างๆ
‫ฉันจะทำส่วนเนินดินไม่ให้ชนกัน
‫ดังนั้นฉันจะเปลี่ยนเป็นค่าที่ตั้งไว้ล่วงหน้าไม่มีการชนกัน
‫จากนั้นฉันจะไปข้างหน้าและตีเล่นคว้าการ์กอยล์จากพื้น
‫และตอนนี้ คุณจะเห็นได้ว่าตอนที่ฉันวิ่งด้วย ไม่มีข้อผิดพลาดแปลกๆ
‫ใดๆ เลย เพราะมันไม่ได้พยายามชนกับตาข่ายของผู้เล่น
‫สิ่งที่ดี
‫ในการบรรยายครั้งนี้ เราได้เรียนรู้วิธีทำให้การคว้านมีความน่าเชื่อถือมากขึ้น และเราจะปล่อยส่วนประกอบการคว้านได้อย่างไร
‫สิ่งที่ดี
‫เจอกันใหม่ตอนหน้าค่ะ