‫เฮ้.
‫ยินดีต้อนรับกลับ.
‫ตอนนี้เรารู้แล้วว่าเราต้องได้รับผลการตีภายใต้เคอร์เซอร์
‫เราจะพูดถึงวิธีการทำงานและความหมายในวิดีโอนี้อีกเล็กน้อย
‫เป้าหมายของเราคือเพื่อให้ได้ผลลัพธ์ของการโจมตีภายใต้เคอร์เซอร์และแสดงตำแหน่งนี้ และเราสามารถทำได้โดยการวาดทรงกลมดีบัก
‫เราจะได้เรียนรู้วิธีการทำเช่นนั้นเช่นกัน
‫มาพูดถึงสิ่งที่เรียกว่าผลการตีกัน
‫ในเกมมักจะต้องการทำอะไรแบบนี้
‫เราจะมีจุดในอวกาศ
‫เราจะเรียกจุดนี้ว่าจุดเริ่มต้น และมีเวกเตอร์ประเภท F แล้วเราจะมีตำแหน่งสิ้นสุด
‫นี่จะเป็นจุดในช่องว่างของเวกเตอร์ประเภท F ด้วย
‫สมมติว่าเราต้องการวาดเส้นที่มองไม่เห็นจากจุดเริ่มต้นไปยังจุดสิ้นสุด
‫และในขณะที่เราวาดเส้นนี้ เราต้องการดูว่ามีวัตถุใดๆ อยู่ระหว่างตำแหน่งเริ่มต้นและจุดสิ้นสุดหรือไม่
‫ทีนี้ ถ้ามี เส้นนี้ที่เราวาดในอวกาศจะชนวัตถุนั้น
‫บนพื้นผิว เมื่อสิ่งนี้เกิดขึ้น เราเรียกสิ่งนี้ว่าเหตุการณ์ที่เกิดขึ้น
‫เมื่อเราวาดเส้นที่มองไม่เห็นแบบนี้ เรียกว่าการลากเส้น
‫และเมื่อเราตีบางสิ่ง เราบอกว่า เรามีการตีตามรอย
‫ตอนนี้ หากเราพบบางสิ่งและได้รับเหตุการณ์ Hit การสืบค้นกลับจะเก็บข้อมูลในโครงสร้างที่เรียกว่าผลลัพธ์ของ
‫Hit
‫ประเภทของมันคือผลการตี F
‫ตอนนี้ โครงสร้างผลลัพธ์ของ Hit F มีตัวแปรที่เก็บข้อมูลเกี่ยวกับเหตุการณ์ Hit
‫รวมถึงตำแหน่ง Hit เป็นเวกเตอร์ f ในอวกาศและนักแสดงที่เราตี ท่ามกลางข้อมูลอื่นๆ
‫ตอนนี้ เมื่อเราดำเนินการติดตามเส้น เราทำโดยการระบุช่องทางการชนกัน
‫โดยปกติเราจะเลือกช่องสัญญาณที่เรียกว่าการมองเห็น
‫มี enum ที่เรียกว่า E Collision Channel และใน enum นี้มีค่าคงที่ enum ที่เรียกว่าการมองเห็น
‫XY
‫นี่เป็นหนึ่งในพารามิเตอร์ที่เราระบุเมื่อดำเนินการติดตามบรรทัด
‫ตอนนี้ หากเราระบุช่องทางการมองเห็น นั่นหมายความว่าวัตถุที่ถูกตั้งค่าให้ปิดกั้นช่องทางการมองเห็นในการตั้งค่าการชนกันของพวกมันจะบันทึกเหตุการณ์การชน
‫ออบเจ็กต์ใดๆ ที่ไม่ได้ตั้งค่าให้ปิดกั้นช่องทางการมองเห็นจะไม่สร้างเหตุการณ์ Hit
‫ตอนนี้เราต้องการผลลัพธ์การติดตามใต้เคอร์เซอร์
‫ลองนึกภาพว่าเรามีหน้าจออยู่ที่นี่ และนี่คือเคอร์เซอร์ของเราในตอนนี้
‫ที่ส่วนปลายของเคอร์เซอร์ เรามีจุดบนหน้าจอเมื่อเราใช้ฟังก์ชันเพื่อรับผลการตีภายใต้เคอร์เซอร์
‫สิ่งที่เกิดขึ้นคือเรามีกล้องของเราและอาจเห็นวัตถุบางอย่างในโลกเช่นพื้นที่นี่
‫และเรากำลังดำเนินการตามรอยเส้นจากกล้องที่จุดบนหน้าจอที่สัมพันธ์กับตำแหน่งเคอร์เซอร์ของเรา
‫และเรากำลังถ่ายภาพเส้นตามรอยออกไปสู่โลก
‫และหากเราโจมตีสิ่งใดสิ่งหนึ่ง เราจะสร้างเหตุการณ์ของ Hit และจัดเก็บข้อมูลในโครงสร้างผลลัพธ์ของ Hit
‫ลองหาวิธีที่เราสามารถทำได้
‫ฉันอยู่ที่นี่ในรถถัง CP และสิ่งที่ฉันต้องการทำคือรับผลการตีภายใต้เคอร์เซอร์ทุกเฟรม ซึ่งหมายความว่าเราต้องการฟังก์ชันติ๊ก
‫อีกครั้ง เราจะกลับไปที่ฐานและค้นหาฟังก์ชันติ๊กที่นี่
‫ตอนนี้เราไม่ได้ใช้มันเพื่ออะไรในการจำนำพื้นฐาน ดังนั้นเราจึงสามารถย้ายฟังก์ชันนี้ไปยังคลาสรถถังได้เหมือนกับที่เราทำกับ
‫Begin Play
‫ดังนั้นฉันจะเน้นการประกาศฟังก์ชันพร้อมกับความคิดเห็นและคัดลอก
‫และหลังจากนั้น ฉันจะลบส่วนนี้ทั้งหมด สาธารณะ และทั้งหมด จากนั้นฉันจะกลับไปที่ Tank
‫H และในส่วนสาธารณะ ฉันจะวางการประกาศฟังก์ชันติ๊ก
‫ตอนนี้เราไม่ได้ใช้มันในการจำนำฐาน ดังนั้นฉันจะลบฟังก์ชันติ๊กออกจากฐานรอง
‫CP ตอนนี้มันหายไปจากฐานจำนำ
‫ตอนนี้เราได้ประกาศเจตนาไว้ที่นี่แล้ว แต่เราต้องกำหนดฟังก์ชันในถังด้วย
‫CP ฉันจะทำมันที่นี่ในถัง DHCP ใต้การตั้งค่าส่วนประกอบอินพุตของผู้เล่น
‫เราจะบอกว่า ขีดเป็นโมฆะ
‫ต้องใช้ทุ่นลอยที่เรียกว่าเดลต้าไทม์
‫และมีร่างกายของเรา
‫อีกครั้ง เราต้องการถังก่อนฟังก์ชันติ๊ก พร้อมกับตัวดำเนินการความละเอียดขอบเขต
‫และเรายังต้องเรียกซูเปอร์ติ๊กและผ่านในเวลาเดลต้า
‫ดังนั้นเราจึงมีเครื่องหมายในคลาสรถถัง
‫สิ่งที่เราต้องการทำคือรับผลการตีภายใต้เคอร์เซอร์
‫นี่คือวิธีที่เราทำ
‫ฟังก์ชั่นที่เราจะใช้นั้นมีอยู่บนตัวควบคุมของผู้เล่นที่เรียกว่า get hit result ภายใต้เคอร์เซอร์
‫เรากำลังพูดถึงเรื่องนี้
‫นี่คือไวยากรณ์
‫มันใช้ช่องทางการติดตาม
‫จำไว้ว่าเราต้องระบุช่องทางการติดตามและเราจะใช้การมองเห็น
‫ตอนนี้เรามีพารามิเตอร์อินพุตเพิ่มเติมสองตัว
‫อย่างแรกคือบูลที่เรียกว่า B trace complex
‫เราจะพูดถึงความหมายในอีกสักครู่
‫และพารามิเตอร์อินพุตที่สามคือผลลัพธ์การตี F
‫ตอนนี้ฉันจะคลิกที่ผลลัพธ์การตี F เพื่อดูประเภทนี้ในเอกสารประกอบ
‫และถ้าฉันเลื่อนลงมา เราจะเห็นตัวแปรบางตัว
‫หนึ่งในนั้นเรียกว่านักแสดงและมีคำอธิบายว่า Actor Hit by the Trace
‫นอกจากนี้เรายังมีการโจมตีการบล็อก B ซึ่งระบุว่าการชนนี้เป็นผลมาจากการชนกันของการบล็อกหรือไม่
‫ท่ามกลางตัวแปรอื่นๆ เรามีสิ่งต่างๆ เช่น จุดกระทบ
‫นี่คือสถานที่ในอวกาศที่เราชนอะไรบางอย่างจริงๆ
‫ทำไมเราไม่ลองเรียกใช้ฟังก์ชันนี้ดูล่ะ
‫อันดับแรก เราต้องการผู้เล่น ผู้ควบคุม และด้วยสิ่งที่เราทำที่นี่และเริ่มเล่น เรามีผู้เล่น ผู้ควบคุม
‫ผู้อ้างอิง
‫ตอนนี้สิ่งแรกที่เราควรทำคือตรวจสอบว่าผู้อ้างอิงตัวควบคุมผู้เล่นนั้นถูกต้องหรือไม่
‫เราสามารถส่งตัวชี้ไปยังคำสั่ง if ได้เสมอ
‫มันจะคืนค่าเป็น จริง หากตัวชี้เองไม่ใช่ตัวชี้ว่าง
‫หากเป็นตัวชี้ค่าว่าง มันจะคืนค่าเท็จในคำสั่ง if และเราจะไม่มีวันไปถึงด้านในของคำสั่ง
‫if
‫เป็นความคิดที่ดีเสมอที่จะตรวจสอบพอยน์เตอร์ของเราและตรวจสอบให้แน่ใจว่าไม่มีค่าว่างก่อนที่เราจะใช้งาน
‫ตอนนี้เรากำลังจะรับผู้เล่น ผู้อ้างอิงคอนโทรลเลอร์ และเราจะใช้ตัวดำเนินการลูกศรเพื่อเรียกใช้ฟังก์ชัน
‫รับผลการตีภายใต้เคอร์เซอร์
‫ตอนนี้เราจะเห็นป๊อปอัปว่าเรามีพารามิเตอร์อินพุตสามตัว
‫ที่แรกก็คือ Trace Channel
‫เราจะใช้ EA Collision Channel และหากเราพิมพ์เครื่องหมายทวิภาคสองตัว เราก็จะได้ดรอปดาวน์ที่แสดงค่าคงที่
‫enum ที่แตกต่างกันทั้งหมดใน EA Collision Channel enum
‫เราต้องการใช้การมองเห็น ดังนั้นเราจะพิมพ์การมองเห็น XY เพื่อระบุว่าเรากำลังใช้ช่องทางการมองเห็น
‫ตอนนี้พารามิเตอร์ถัดไปเรียกว่า B Trace Complex และเราจะส่งต่อค่าเท็จในสิ่งนี้
‫ตอนนี้เราจะหารือกันในอีกไม่กี่นาทีว่าสิ่งนี้หมายความว่าอย่างไร
‫แต่สำหรับตอนนี้เราจะใช้เท็จ
‫สำหรับพารามิเตอร์ที่สาม เราต้องการผลลัพธ์ของ Hit
‫นี่คือโครงสร้างของผลลัพธ์การตีประเภท F
‫ตอนนี้ หากคุณวางเมาส์เหนือสิ่งนี้ คุณจะเห็นว่าผลลัพธ์การตี F ถูกส่งผ่านเป็นข้อมูลอ้างอิงตามที่ระบุโดยโอเปอเรเตอร์อ้างอิงที่ดูเหมือนเครื่องหมายและ
‫โดยปกติแล้ว เมื่อคุณส่งบางสิ่งเข้ามาเพื่อเป็นข้อมูลอ้างอิง ก็จะเป็นการอ้างอิงต้นทุน ซึ่งหมายความว่าฟังก์ชันจะไม่สามารถเปลี่ยนแปลงได้
‫แต่ในที่นี้ เรากำลังส่งผ่านผลการตี F เป็นข้อมูลอ้างอิงที่ไม่ใช่ const
‫นี่เป็นคำแนะนำโดยทั่วไปว่าฟังก์ชันได้รับการออกแบบมาเพื่อเปลี่ยนพารามิเตอร์อินพุตนี้โดยตรง
‫สิ่งที่ได้รับผลการตีภายใต้เคอร์เซอร์คือการกรอกตัวแปรเหล่านั้นในผลลัพธ์ของ Hit ด้วยข้อมูลเกี่ยวกับผลลัพธ์ของ
‫Hit
‫ซึ่งหมายความว่าเราต้องผ่านหนึ่งในผลลัพธ์ของ f hit เหล่านี้
‫เราจะสร้างตัวแปรโลคัลที่นี่ใน if check ของผลการตีประเภท F
‫และเราสามารถเรียกผลลัพธ์ของ Hit นี้และเราสามารถส่งผ่าน N นี้เป็นพารามิเตอร์อินพุตที่สามได้
‫ตอนนี้ หลังจากที่เราเรียกใช้ฟังก์ชันนี้แล้ว ผลลัพธ์ของ Hit นี้จะเต็มไปด้วยข้อมูลเกี่ยวกับการติดตามบรรทัดนี้
‫ตัวอย่างเช่น เราสามารถเข้าถึงผลการตี dot actor เพื่อรับนักแสดงที่ถูก hit หรือ dot impact point เพื่อให้ได้จุดในช่องว่างที่เรามีเหตุการณ์
‫Hit
‫ดังนั้นผลลัพธ์ของ Hit คือสิ่งที่เราจะใช้เพื่อรับข้อมูลเกี่ยวกับการติดตามบรรทัด
‫บ่อยครั้ง เป็นเรื่องดีที่จะเห็นผลลัพธ์ของการติดตามเส้น
‫เราสามารถเห็นภาพผลลัพธ์ของการติดตามเส้นได้อย่างง่ายดายโดยการวาดทรงกลมดีบัก
‫Debug Sphere เป็นรูปร่างง่ายๆ ที่เราวาดในอวกาศ และเหมาะสำหรับการแสดงตำแหน่ง และเราใช้สิ่งเหล่านี้เมื่อทำการดีบัก
‫เราไม่ได้ใช้ debug spheres ในเกม shift
‫มาดูกันว่าเราจะวาด Debug Sphere ได้อย่างไร
‫ต่อไปนี้คือเอกสารประกอบสำหรับฟังก์ชันที่เรียกว่า draw debug sphere
‫มันมีอยู่ในตัวช่วยดีบักการวาด
‫ดังนั้นเราจึงสามารถคัดลอกส่วนหัวนี้และรวมไว้ทุกที่ที่เราต้องการเรียกการดีบักการวาดทรงกลม
‫ตอนนี้ดูพารามิเตอร์อินพุตทั้งหมด
‫ประการแรก มันต้องใช้โลกในลักษณะที่รู้ว่าโลกใดที่จะดึงทรงกลมเข้ามา
‫มันใช้เวกเตอร์ F สำหรับจุดศูนย์กลางของทรงกลมและทุ่นสำหรับรัศมี
‫ต้องใช้ N 32 สำหรับจำนวนเซ็กเมนต์สำหรับทรงกลมนั้น
‫ยิ่งมีเซกเมนต์มาก ยิ่งทรงกลมยิ่งใช้สี F
‫วิธีนี้จะทำให้รู้ว่าควรวาดทรงกลมนี้ด้วยสีใด
‫ต้องการทราบว่าคุณต้องการเส้นถาวรหรือไม่
‫กล่าวอีกนัยหนึ่งบรรทัดควรหายไปทันทีหรือควรคงอยู่?
‫ถ้าพวกมันยังคงอยู่ มันก็ต้องการทราบอายุขัยของทรงกลม
‫เมื่อใดควรหยุดวาดทรงกลม
‫ถ้าคุณไม่วาดเส้นต่อเนื่อง สมมติว่าคุณต้องการวาดมันในกรอบเดียว จากนั้นคุณจะต้องส่งค่าลบเข้ามาตลอดอายุขัย
‫ตอนนี้พารามิเตอร์สองตัวสุดท้ายเป็นทางเลือก ดังนั้นเราจะทำให้มันง่ายโดยพูดถึงพารามิเตอร์เจ็ดตัวแรกเท่านั้น
‫เรามาดูกันว่ามันทำงานอย่างไร
‫ตอนนี้ฉันกำลังจะวาด debug sphere ที่ด้านบนสุด ฉันจะรวมตัวช่วยดีบักการวาดด้วย
‫นั่นคือที่ที่ประกาศฟังก์ชันการดีบักทรงกลมการวาดนี้
‫ตอนนี้ ลงไปเพื่อเริ่มเล่นและเพียงแค่วาดทรงกลมดีบั๊กเพื่อดูว่ามันทำงานอย่างไร
‫ผมจะเรียก draw debug sphere และ
‫พารามิเตอร์อินพุตแรกคือโลกใหม่
‫เราสามารถรับโลกของเราได้ตลอดเวลาโดยเรียก Get World, Get World Returns ตัวชี้โลกใหม่ไปยังโลกปัจจุบันของเรา
‫เพื่อให้เป็นไปตามอินพุตแรก
‫ต่อไป เราต้องการเวกเตอร์ f สำหรับจุดศูนย์กลางของทรงกลม
‫ตอนนี้เรากำลังเรียกสิ่งนี้และเริ่มเล่น เพื่อที่ฉันจะได้เรียกตำแหน่งนักแสดง และนี่จะได้รับตำแหน่งของบ่อเลี้ยงของเรา
‫เนื่องจากเราอยู่ในคลาสรถถัง
‫ตอนนี้ฉันจะยกทรงกลมขึ้นเล็กน้อย
‫ผมจะบวกเวกเตอร์ F ที่มีศูนย์จุด F สำหรับ x ศูนย์จุด F สำหรับ Y และบอกว่า 200 F สำหรับ
‫Z
‫ตอนนี้ฉันจะใส่พารามิเตอร์อินพุตเหล่านี้แต่ละตัวในบรรทัดของตัวเอง
‫ดังนั้นจึงชัดเจนว่าเรากำลังส่งอะไรไปในแต่ละอินพุต
‫ข้อมูลที่ป้อนที่สองจะได้รับนิพจน์นี้ ซึ่งก็คือตำแหน่งของนักแสดง บวกกับเวกเตอร์ที่ชี้ขึ้นด้านบนด้วยความยาว
‫200
‫การเพิ่มเวกเตอร์สองตัวนี้เข้าด้วยกันจะทำให้ตำแหน่งของถังที่ยกขึ้นในแกน Z เพิ่มขึ้น 200
‫หน่วย
‫ทีนี้ พารามิเตอร์อินพุตถัดไป มันจะเป็นรัศมีของทรงกลม
‫ฉันจะเลือก 100 F เพื่อให้เราเห็นว่าทรงกลมดีบักที่มีรัศมี 100 เป็นอย่างไร
‫ถัดไปคือจำนวนเซ็กเมนต์
‫ฉันจะเลือก 12
‫เราจะดูว่ามีลักษณะอย่างไร
‫ตอนนี้สำหรับสี F มีคลาสสี F และมีหลายสีในตัว เช่น สีแดง
‫สำหรับบูลีนที่เรียกว่าเส้นถาวร B ฉันจะเลือกจริง
‫และสำหรับพารามิเตอร์อินพุตถัดไป เรามีการแจ้งเตือนตลอดอายุการใช้งาน
‫มีค่าเริ่มต้นเป็นลบหนึ่ง
‫นั่นหมายความว่าโดยค่าเริ่มต้น มันจะวาดทรงกลมดีบักสำหรับเฟรมเดียว
‫แต่ฉันจะผ่านใน 30 F เพื่อให้เราได้ทรงกลมเป็นเวลา 30 วินาที และฉันสามารถข้ามพารามิเตอร์สองตัวสุดท้ายได้
‫นี่คือการเรียกฟังก์ชันของเราเพื่อวาด debug sphere
‫ลองรวบรวมสิ่งนี้และดูว่ามีลักษณะอย่างไร
‫โอเค ฉันกลับมาที่บรรณาธิการแล้ว
‫ฉันจะเปิดหน้าต่างที่สองเพื่อให้เราเห็นสิ่งนี้แบบเต็มหน้าจอ
‫ฉันสามารถไปที่พอร์ตมุมมองหน้าต่างและเลือกวิวพอร์ตที่สองและตอนนี้ฉันเห็นหน้าต่างที่สองนี้
‫อาจไม่เต็มหน้าจอเมื่อเปิดขึ้น แต่คุณสามารถขยายให้ใหญ่สุดได้เสมอ
‫จากที่นี่ฉันสามารถเล่นเกมด้วย alt p
‫ตอนนี้ตรวจสอบออก
‫นี่คือขอบเขตการดีบักของเรา
‫สังเกตว่ามันไม่กลมอย่างสมบูรณ์
‫เราเลือก 12 สำหรับจำนวนเซ็กเมนต์
‫ยิ่งคุณเลือกเซกเมนต์มากเท่าใด ยิ่งต้องใช้เส้นมากเท่านั้นในการวาดทรงกลม
‫ทีนี้ นี่คือทรงกลมที่มีรัศมี 100
‫มันค่อนข้างใหญ่ และศูนย์กลางของทรงกลมอยู่ที่ตำแหน่งของรถถัง บวกกับ 200 หน่วยขึ้นไปในอากาศ
‫นี่คือวิธีที่เราสามารถวาด Debug Sphere ได้
‫ดังนั้นความท้าทายของคุณคือการวาดทรงกลมดีบักโดยใช้ผลลัพธ์การติดตามใต้เคอร์เซอร์ของเรา
‫ดังนั้นให้วาด debug sphere ในคำสั่ง if ใหม่ที่เรากำลังตรวจสอบว่าผู้อ้างอิงคอนโทรลเลอร์ของผู้เล่นไม่เป็นโมฆะหรือไม่
‫ตอนนี้ใช้ผลการตีของเรา รับจุดกระทบจากผลการตี และใช้เป็นศูนย์สำหรับลูกโลก
‫ตอนนี้สำหรับพารามิเตอร์อินพุตบรรทัดถาวรให้ใช้ false และสำหรับช่วงเวลาให้ใช้ค่าลบ
‫และสิ่งนี้จะส่งผลให้เกิดการวาดทรงกลมสำหรับเฟรมเดียว ซึ่งไม่เป็นไรเพราะเรากำลังเรียกสิ่งนี้ว่าทุกๆ
‫เฟรมภายในฟังก์ชัน tic
‫ดังนั้นหยุดวิดีโอชั่วคราวและวาดทรงกลมแก้ไขข้อบกพร่องในฟังก์ชันขีด
‫ตกลง.
‫ดังนั้นฉันกลับมาที่นี่ในแทงค์
‫ตอนนี้ ฉันมีฟังก์ชัน draw debug sphere ที่เรียกใช้ที่นี่ และเริ่มเล่น เพื่อที่ฉันจะได้คัดลอกและลบมันออกจาก
‫start play และเราจะกลับไปติ๊กที่นี่ใน if statement ของเรา และฉันก็แค่ จะวางที่นี่และเราจะเปลี่ยนพารามิเตอร์อินพุตบางส่วน
‫ประการหนึ่ง เรากำลังเปลี่ยนตำแหน่งสำหรับจุดศูนย์กลางของทรงกลม
‫เราจะใช้ผลการตี
‫ฉันจะบอกว่า hit ผล dot impact point
‫สำหรับรัศมี ผมขอย่อให้เล็กกว่านี้หน่อย
‫มาทำให้ถึง 25 กันเถอะ
‫ไม่เป็นไร.
‫ถ้าคุณไม่ทำอย่างนั้น ฉันแค่ทำสิ่งนี้
‫ทรงกลมจึงไม่ใหญ่มาก
‫ตอนนี้ พารามิเตอร์ตัวที่สองถึงตัวสุดท้ายที่เรากำลังส่งผ่านคือสำหรับบรรทัดถาวร
‫ฉันจะส่งผ่านเป็นเท็จและในช่วงเวลาแทนที่จะเป็น 30 วินาที ฉันจะใช้ค่าลบหนึ่งจุด
‫F
‫ด้วยวิธีนี้เราจะได้ทรงกลมสำหรับเฟรมเดียว ซึ่งก็ไม่เป็นไร อีกครั้ง เรากำลังเรียกสิ่งนี้ในฟังก์ชันติ๊ก
‫ดังนั้นเราจะเรียกสิ่งนี้ว่าทุกๆ เฟรม
‫ไปข้างหน้าและรวบรวมสิ่งนี้
‫ตอนนี้กลับมาอยู่ในบรรณาธิการ
‫ถ้าผมกดเล่นตอนนี้ลองดูนี่
‫ฉันมีทรงกลมดีบักและกำลังถูกวาดที่จุดกระทบสำหรับการติดตามเส้นใต้เคอร์เซอร์
‫ตอนนี้เราสามารถย้ายสิ่งนี้ขึ้นไปบนกำแพงและบนวัตถุอื่น ๆ และร่องรอยก็กระทบกับวัตถุเหล่านี้เพราะถูกตั้งค่าให้ปิดกั้นช่องทางการมองเห็น
‫สุดๆไปเลยตอนนี้
‫ฉันสัญญาว่าเราจะหารือเกี่ยวกับการติดตามที่ซับซ้อนและการติดตามอย่างง่าย
‫ฉันจะแสดงบางอย่างให้คุณเห็นในขณะที่เรากำลังเล่นเกม
‫คลิกในวิวพอร์ตเพื่อให้เราควบคุมฝ่ามือของเรา
‫ตอนนี้กดปุ่มตัวหนอนและพิมพ์คำสั่งคอนโซลแสดงการชนกัน
‫ตอนนี้อาจดูบนหน้าจอของฉันไม่ง่ายนัก แต่คุณสามารถเห็นบนหน้าจอของคุณได้อย่างแน่นอน
‫สังเกตการชนกันของเบี้ยของเรา
‫ไม่เพียงแต่เราจะเห็นแคปซูลเท่านั้น แต่เรายังเห็นปริมาณการชนรอบถังและตาข่ายของป้อมปืนอีกด้วย
‫นี่เป็นการชนกันแบบธรรมดา
‫ผมขอแสดงให้คุณเห็นแบบด่วนๆ ว่าเราจะเห็นการชนกันแบบง่ายๆ ตรงไหน
‫ฉันจะเข้าไปในสินทรัพย์และตาข่าย และถ้าฉันดับเบิลคลิกที่ พูด ฐานรถถังที่นี่ เรากำลังดูการชนกันที่ซับซ้อน
‫ถ้าฉันคลิกที่ไอคอนแสดงนี้ที่ด้านบนและเลือกการชนกันแบบซ้อน ฉันจะเห็นรูปหลายเหลี่ยมทั้งหมดในการชนกันแบบซับซ้อนและมีหลายรูปหลายเหลี่ยม
‫หากฉันคลิกไอคอนแสดงอีกครั้ง และคราวนี้ทำเครื่องหมายที่ช่องทำเครื่องหมายถัดจาก Simple Collision สังเกตว่ามีโวลุ่มการชนกันอีก
‫สิ่งนี้เรียกว่าเปลือกชนและมีรูปทรงน้อยกว่ามาก
‫มีรูปหลายเหลี่ยมจำนวนน้อยกว่าที่มีปริมาตรการชนกันนี้
‫นี่คือสิ่งที่เอ็นจิ้นฟิสิกส์ใช้ในการตรวจจับการทับซ้อนในเหตุการณ์การชน
‫ถ้ามันใช้การชนกันที่ซับซ้อน มันจะต้องมีการคำนวณมากกว่านี้มาก
‫นี่คือเหตุผลที่เรามีปริมาณการชนแบบธรรมดา ดังนั้นประสิทธิภาพจะดีกว่ามากเมื่อทำการติดตามเส้น
‫หากเราติดตามการชนแบบธรรมดาแทนที่จะเป็นการชนกันที่ซับซ้อน
‫ตอนนี้เราได้ผลลัพธ์ของ Hit ที่อยู่ใต้เคอร์เซอร์แล้ว
‫กว่าจะไปถึงที่นั่นได้ต้องใช้ความพยายามบ้าง แต่ตอนนี้เรามีแล้ว และเราได้พิสูจน์แล้วโดยแสดงตำแหน่งนี้ด้วยทรงกลมแก้ไขข้อบกพร่อง
‫นี่เป็นวิธีที่ดีในการยืนยันว่าการติดตามของเราทำงาน
‫ตอนนี้เรารู้ว่ามันใช้งานได้แล้ว เราก็สามารถใช้ตำแหน่งนั้นเพื่อหมุนป้อมปืนบนรถถังของเราได้
‫และเราจะทำอย่างนั้นในวิดีโอหน้า
‫เจอกันเร็วๆนี้ครับ