‫สวัสดีและยินดีต้อนรับ.
‫ในการบรรยายนี้ เราจะตั้งค่าการติดตามเส้นเพื่อที่เราจะสามารถยิงไปที่กำแพงและเห็นจุดดีบักเหล่านี้ปรากฏขึ้น
‫และเรากำลังจะทำสิ่งนี้โดยใช้ฟังก์ชันการติดตามบรรทัดใหม่ตามแชนเนล และเราจะดูว่าทำไมเราจึงใช้การติดตามบรรทัดนั้นตามประเภทอ็อบเจ็กต์
‫ซึ่งเป็นสิ่งที่เราเคยใช้มาก่อน
‫มาดูวิธีทำกันเลยดีกว่า
‫ย้อนกลับไปในการหลบหนีของอาคาร เราใช้การลากเส้น และเราใช้ฟังก์ชันนี้ที่นี่ การติดตามเส้นตามประเภทวัตถุ
‫และนี่คือสิ่งที่เราต้องการใช้หรือไม่?
‫อะไรคือความแตกต่างระหว่างการติดตามบรรทัดตามประเภทอ็อบเจ็กต์และพี่น้องที่ใกล้เคียงกันมาก
‫ซึ่งเป็นการติดตามบรรทัดตามแชนเนล
‫ประเภทอ็อบเจ็กต์บอกว่า ฉันต้องการค้นหาผ่านบรรทัดนี้ และดูว่าฉันพบอ็อบเจ็กต์ที่ตรงกับประเภทนี้หรือไม่
‫ในตัวฉัน ฉันเชื่อว่าสิ่งที่เราใช้ในการสร้างการหลบหนี เป็นอะไรที่เหมือนกับวัตถุประเภทฟิสิกส์ และนั่นก็เยี่ยมมาก
‫มันจะกระทบกับวัตถุทางฟิสิกส์
‫แต่ถ้าคุณตัดสินใจกะทันหันว่าคุณต้องการอย่างอื่นที่จะตีลูก จะไม่เหลือที่ว่างให้ตัวเลือกมากนัก
‫ดังนั้นแชแนลจึงดีกว่าเพราะว่าช่วยให้เราสามารถกำหนดแชนเนลที่กำหนดเองของเราแล้วกำหนดว่าออบเจกต์ประเภทใดที่โปร่งใสสำหรับแชนเนลนั้นและออบเจกต์ใดบ้างที่บล็อก
‫ดีมากเพราะสิ่งที่เราต้องการจะทำคือ โอเค บางทีสิ่งที่บุชไม่สามารถปิดกั้นกระสุนได้ ในขณะที่กำแพงจะปิดกั้นกระสุน
‫แต่จะไม่ได้รับความเสียหายใดๆ แต่นั่น เราสามารถจัดการได้ในภายหลัง
‫ช่องทางคือเส้นทางที่เราจะลงไป และเราสามารถค้นหาวิธีการที่ถูกต้องได้ที่นี่โดยทำการควบคุม
‫ปล. และอีกอย่าง มีเกร็ดเล็กๆ น้อยๆ พิเศษนี้ที่ผมเพิ่งเรียนรู้ไปคือ ถ้าคุณใช้สัญลักษณ์
‫ACT คุณสามารถค้นหาสัญลักษณ์ภายในไฟล์นี้ หรือแม้แต่ไฟล์อื่นๆ ได้ แต่ถ้าคุณเปิดไฟล์ไว้ มันจะเร็วกว่ามาก
‫.
‫จากนั้นคุณสามารถทำอะไรบางอย่าง เช่น การติดตามเส้น และคุณจะเห็นว่ามีรายการของสัญลักษณ์ทั้งหมดที่เป็นฟังก์ชันหรือคลาสหรือตัวแปร
‫และเราสามารถค้นหาบรรทัดนั้น การติดตาม บรรทัดทดสอบ การติดตาม ทีละช่องตามประเภทวัตถุ
‫เราต้องการการติดตามหนึ่งบรรทัดแรก แชนเนล BI เดี่ยว ซึ่งจะมีพารามิเตอร์เอาต์สำหรับสิ่งที่เราตี
‫จุดเริ่มต้น จุดสิ้นสุด ช่องทางการติดตามการชนจะมาถึงจุดนั้นในเวลาเพียงเล็กน้อย และจากนั้นพารามิเตอร์การสืบค้นบางรายการที่มีค่าเริ่มต้นบางอย่าง
‫ดังนั้นเราจึงไม่ต้องกังวล
‫เพียงสองสามสิ่งแรกเหล่านั้น Outhit Start, End และ Trace Channel คือสิ่งที่เราต้องการกังวล
‫มาตั้งค่าช่อง Trace กัน
‫เราจะไปที่การตั้งค่าและการตั้งค่าโครงการสำหรับสิ่งนี้
‫แล้วเราก็มองหาบริเวณที่เกิดการชนกันใต้เครื่องยนต์
‫และใต้นี้ คุณจะเห็นว่าเรามีช่องออบเจ็กต์และช่องติดตาม
‫ช่องออบเจ็กต์เป็นอีกวิธีหนึ่งในการพูดออบเจ็กต์ประเภทต่างๆ
‫ดังนั้น ถ้าคุณต้องการรวมทั้งชุดเริ่มต้นของอ็อบเจ็กต์ เช่น เบี้ยและของแบบนั้น ถ้าคุณต้องการหมวดหมู่ใหม่ของอ็อบเจ็กต์
‫คุณสามารถลงเส้นทางช่องอ็อบเจ็กต์ได้
‫แต่ร่องรอยทำให้คุณสามารถกำหนดปลายด้านตรงข้ามของสเปกตรัม ซึ่งก็คือ ฉันมีกระสุน
‫วัตถุอะไรที่มันชนได้?
‫เราจะไปตามเส้นทางนี้ เพิ่มช่องทางการติดตามใหม่ และเราจะเรียกหัวข้อย่อยนี้
‫และการตอบสนองเริ่มต้นจะเป็น
‫บล็อก ซึ่งโดยพื้นฐานแล้วหมายความว่าทุกประเภทวัตถุกำลังจะไป
‫BLOCK เว้นแต่ว่าตอนนี้เราจะระบุเป็นอย่างอื่น เราสามารถดำเนินการต่อและยอมรับสิ่งนี้ และเราสามารถดูค่าที่ตั้งไว้ล่วงหน้าของเราได้ที่นี่
‫ถ้าเราขยายออกไป ค่าที่ตั้งไว้จะแสดงให้คุณเห็นว่าเรามีหลายอย่างที่เราสามารถใช้ได้
‫สิ่งที่เราพูดได้ เราต้องการให้สิ่งนี้เป็นตัวแสดงทางฟิสิกส์ ซึ่งในกรณีนี้คือประเภทวัตถุ
‫ซึ่ง จะเป็นสิ่งที่เป็นช่องวัตถุที่กำหนดไว้ล่วงหน้าจะเป็นวัตถุฟิสิกส์
‫แต่ถ้าเราขยายเรื่องนี้ออกไป คุณจะเห็นว่าปฏิกิริยาของมันเป็นอย่างไรต่อร่องรอยประเภทต่างๆ ที่นี่
‫ดังนั้นเราจึงมีกล้องประเภทการติดตาม การมองเห็นสัญลักษณ์แสดงหัวข้อย่อยของเรา มันบล็อกสิ่งเหล่านี้ทั้งหมด และจากนั้นก็มีประเภทวัตถุ
‫นั่นคือวิธีที่มันโต้ตอบทางฟิสิกส์อย่างชาญฉลาดกับวัตถุอื่นๆ เช่น เบี้ยและยานพาหนะ เป็นต้น นั่นไม่ใช่วิธีที่มันโต้ตอบกับการติดตามบรรทัดตามวัตถุ
‫ค่อนข้างจะสับสนและเคยสับสนมาก่อน
‫ดังนั้นประเภทการติดตามจึงเป็นสิ่งที่น่าสนใจ และเราสามารถไปดูที่นี่ได้ และเห็นว่าไม่ควรตั้งค่าการชนกันเพื่อไม่ให้ชนกัน
‫เรามาทำให้กระสุนของเราไม่ชนกันด้วย
‫ดังนั้นเพียงแค่แทนที่ค่าที่ตั้งไว้บางส่วนเพื่อให้สัญลักษณ์แสดงหัวข้อย่อยของเราทำงานตามที่เราคาดไว้ ตัวอย่างเช่น ทับซ้อนกันทั้งหมด
‫ควรทับซ้อนกับสัญลักษณ์แสดงหัวข้อย่อย
‫และอาจมองข้ามกำแพงที่มองไม่เห็นและไดนามิกของผนังที่มองไม่เห็นเพื่อจุดประสงค์ของสัญลักษณ์แสดงหัวข้อย่อยของเรา
‫เช่นเดียวกับไดนามิกที่นี่
‫คุณจะเห็นได้ว่าโดยพื้นฐานแล้วเรากำลังลงเอยด้วยบางสิ่งที่ค่อนข้างคล้ายกับการติดตามการมองเห็น
‫แต่เหตุผลที่ต้องแยกมันออกคือ เราอาจต้องการสร้างความแตกต่างเล็กน้อย เช่น อย่างที่คุณเห็น คุณไม่สามารถมองทะลุพุ่มไม้นี้ได้
‫แต่คุณสามารถยิงทะลุพุ่มไม้ได้
‫สิ่งเหล่านี้หมายความว่าการมีช่องทางการติดตามของเราเองนั้นสะดวกจริงๆ
‫ตอนนี้ เราต้องการใช้ช่องทางการติดตามนี้ในโค้ด และมันค่อนข้างแปลกที่เราต้องทำสิ่งนี้เพราะมี
‫enum ตรงนี้ ช่องการชนกันของ E และถ้าเราไปที่คำจำกัดความของ F12 คุณจะเห็น มีมากมายสำหรับสิ่งที่กำหนดไว้ล่วงหน้า,
‫โลกคงที่ -- ทัศนวิสัย ฯลฯ ข้างล่างนี้ แต่ยังมีช่องการติดตามเครื่องยนต์อีกจำนวนมาก
‫หนึ่ง สอง และ Game Trace Channel ที่หนึ่ง สอง สาม เป็นต้น
‫ที่กำหนดไว้ล่วงหน้า
‫อันไหนของเรานี่?
‫รู้ไหม เราไม่มีกระสุนอยู่ที่นี่
‫เราต้องใช้ช่องทางการติดตามเกมอย่างใดอย่างหนึ่งเหล่านี้
‫ดังนั้นจึงค่อนข้างสับสนเล็กน้อย
‫อันไหน?
‫วิธีที่คุณทำคือไปที่โฟลเดอร์โปรเจ็กต์และไปที่ config
‫และสิ่งที่เราต้องการคือ INI เริ่มต้นของเครื่องยนต์ และเราต้องการเปิดสิ่งนั้นในโปรแกรมแก้ไขข้อความ
‫ดังนั้นคุณจึงสามารถทำได้ในข้อความใดก็ได้ที่คุณชอบ
‫ฉันชอบลากมันลงในโค้ด Visual Studio เพื่อให้โค้ด Visual Studio เป็นโค้ดที่เปิดขึ้นมา
‫และในที่นี้เราต้องการมองหาสัญลักษณ์แสดงหัวข้อย่อยของเราเป็นหลักและดูว่าได้รับมอบหมายให้ทำอะไร
‫และฉันคิดว่าบรรทัดแรกที่นี่บอกเราว่าช่องที่ได้รับคือเกม Trace Channel
‫one
‫มหัศจรรย์.
‫นั่นคือสิ่งที่เราจะใช้เมื่อเราทำการติดตามเส้นของเรา
‫เรามาเริ่มสร้างโครงสร้างของการติดตามเส้นนี้กัน
‫สิ่งแรกที่เราต้องการคือจุดเริ่มต้น
‫เรามีสิ่งนั้นอยู่แล้ว
‫นั่นคือตำแหน่งของวิวพอร์ตของเรา
‫เรายังต้องการจุดปลายสำหรับการติดตามเส้นของเราซึ่งคำนวณได้ยากกว่าเล็กน้อย
‫เรามาสร้างเวกเตอร์ F ที่จุดสิ้นสุดของเรากัน แล้วเราจะคำนวณโดยใช้จุดหยุด
‫บวกการหมุนคูณด้วยปริมาณ ระยะทางที่เราอยากหายไป
‫ไม่ใช่การหมุน แต่เวกเตอร์ที่ชี้ไปในทิศทางของการหมุนจะรู้สึกสับสนเล็กน้อย
‫แต่ที่จริงแล้ว ถ้าคุณทำเวกเตอร์การหมุน นี่จะให้เวกเตอร์ที่ชี้ไปในทิศทางของการหมุนนี้
‫เป็นการทำสิ่งที่ตรงกันข้ามกับสิ่งที่เราทำในพิมพ์เขียวแอนิเมชั่นเพื่อให้ได้การหมุนจากเวกเตอร์
‫นี้ไปในทางอื่น
‫เรากำลังจะทำตำแหน่งบวกเวกเตอร์การหมุนนี้ แล้วเราต้องการช่วงสูงสุดเป็นหลัก
‫ฉันจะแนะนำคุณสมบัติใหม่ที่นี่ ทำให้มันแก้ไขได้ทุกที่ และมันจะเป็นทุ่นที่เรียกว่า
‫Max Range อย่างนั้น
‫และเราสามารถตั้งค่าเริ่มต้นเป็นช่วงสูงสุด 10,000 หรือหนึ่งพันช่วง
‫มันจะเป็นประมาณ 100 เมตร ขอโทษนะ ประมาณสิบเมตร
‫และเราจะไปที่เวกเตอร์การหมุน คูณด้วยช่วงสูงสุด
‫นั่นก็คือเวกเตอร์ที่เราได้รับจากการหมุนนั้น จะเป็นขนาดหนึ่ง
‫การคูณมันด้วยช่วงสูงสุดจะทำให้มันเป็นเวกเตอร์ของขนาด ไม่ว่าช่วงสูงสุดจะเป็นเท่าใด
‫จากนั้นเราเพิ่มสิ่งนั้นที่ด้านบนของตำแหน่งเพื่อให้ได้จุดสิ้นสุด
‫อย่ากังวลถ้าคุณไม่ทำตามคณิตศาสตร์นั้น 100%
‫สิ่งสำคัญคือนี่คือวิธีที่เราต้องการไปยังจุดสิ้นสุดของเรา
‫จากนั้นฉันจะใส่ a to do line ในนี้เพื่อเพิ่มในการติดตามบรรทัด และเราจะลบกล้องดีบัก
‫draw debug นี้ออก เพราะฉันต้องการสร้างตัวช่วยดีบัก draw debug ตัวอื่นที่นี่
‫ฉันต้องการวาดจุดดีบักซึ่งคุณสามารถหาได้ที่นี่
‫มันยึดครองโลก รับตำแหน่ง ขนาด และสี
‫และไม่ว่าจะขัดขืนหรือไม่ เราก็อยากให้มันปรากฏให้เห็นบ่อยๆ
‫ดังนั้นเราควรจะทำอะไรบางอย่างตามแนวเหล่านี้ได้
‫มาดูกัน วาดจุดดีบั๊ก แล้วเราจะสร้างโลกขึ้นมาทันที จากนั้นเราจะเริ่มด้วยตำแหน่งของวิวพอร์ตของเราแทน
‫เช่นเดียวกับการทดสอบเพื่อดูว่าจุดดีบักการวาดทำงานอย่างไร
‫ขนาดเพื่อให้เป็นสีแดงและทำให้การคงอยู่เป็นจริง
‫จากนั้นเราจะไปที่ทุนสำหรับเซมิโคลอนและดูว่าสิ่งนี้ทำงานเป็น Hit คอมไพล์โอเวอร์ในเครื่องยนต์หรือไม่และมาเล่นกัน
‫ตอนนี้ถ้าผมยิงและขยับถอยหลังเล็กน้อย คุณจะเห็นว่ามีจุดอยู่ที่นั่น
‫อย่างไรก็ตาม มันเล็กมากและมองเห็นได้ยากจริงๆ
‫พวกมันจะเพิ่มเป็น 20 แทน
‫มาดูกันดีกว่าว่า
‫รวบรวมและเล่น
‫ใช่.
‫ตอนนี้ฉันเห็นจุดที่ชัดเจนมาก
‫ดังนั้นถึงเวลาแล้วที่ความท้าทายของคุณในการติดตามบรรทัดตามช่องทาง
‫เราเคยทำกับประเภทออบเจ็กต์มาก่อนแล้ว ดังนั้นหวังว่าเราจะคาดการณ์ได้ว่าเป็นทีละแชนเนล
‫ดังนั้นให้ใช้ตำแหน่งและจุดสิ้นสุดที่เรากำหนดไว้เป็นจุดเริ่มต้นและจุดสิ้นสุด
‫ตรวจสอบความสำเร็จของผลลัพธ์ในการสร้างคำสั่ง if
‫ดังนั้น รับเฉพาะพารามิเตอร์ out หรือรับพารามิเตอร์ของผลลัพธ์ของ Hit และวาดเฉพาะจุดดีบั๊กเท่านั้น
‫หากเราบรรลุเป้าหมายและจำไว้ว่าเรากำลังใช้ช่องนั้นที่เราพบในไฟล์ dot
‫INI เช่นกัน
‫ดังนั้นให้หยุดวิดีโอชั่วคราวและดูว่าคุณสามารถจัดเรียงพารามิเตอร์และอาร์กิวเมนต์เหล่านั้นทั้งหมดลงในการติดตามเส้นได้หรือไม่
‫และรับการวาดจุดดีบั๊กที่เรากดด้วยการติดตามเส้นของเรา
‫ในขั้นตอนนี้ เราไม่ได้ทำอะไรที่ฉลาด เช่น ละเลยนักแสดงของผู้เล่น
‫ดังนั้นการติดตามสายของคุณอาจจบลงที่ผู้เล่นและไม่เป็นไรสำหรับความท้าทายนี้
‫หยุดวิดีโอชั่วคราว
‫ไปกันเถอะ
‫ตกลง.
‫ยินดีต้อนรับกลับ.
‫เลยดำดิ่งลงไปเลย
‫เราจะไปเอาโลกก่อน และทำลูกศรไปที่นั้น
‫เราจะไปทำการติดตามบรรทัดทีละช่อง
‫จากนั้นเราจะต้องการผลการตี
‫ดังนั้นพารามิเตอร์ของเรา เราต้องประกาศโครงสร้างผลลัพธ์ของ Hit ก่อนเพื่อส่งผ่านเป็นพารามิเตอร์ออก
‫มันจะเรียกมันว่า hit และกำลังจะส่งผ่านเป็นอาร์กิวเมนต์แรกที่นี่
‫แล้วเราต้องการสถานที่
‫และเราต้องการจุดจบ
‫แล้วไงต่อ?
‫อะไรจะเกิดขึ้นต่อไป?
‫ช่องชน E และช่องชนกัน
‫มันจะเป็นช่องทางการชนกันของ E
‫โคลอน
‫แล้วมันก็ควรจะเป็น e c เราพูดว่าอะไรนะ?
‫มาดูในเครื่องยนต์เริ่มต้นกัน
‫ช่องทางการติดตามเกม e cc ช่องใดช่องหนึ่งเป็นช่องที่มีการกำหนดค่าเริ่มต้นเป็น
‫มีข้อโต้แย้งเพิ่มเติมที่เราต้องการหรือไม่?
‫ไปกันเลย
‫เรามีพารามิเตอร์การชนกันซึ่งถูกตั้งค่าเริ่มต้นไว้
‫ไม่เลย เราไม่ต้องการอะไรในนี้
‫แล้วสิ่งที่เราทำได้คือเราต้องการผลลัพธ์บูลีนสำหรับสิ่งนี้
‫ดังนั้นความสำเร็จของบี
‫และฟังดูมีประโยชน์มาก
‫มันไม่ประสบความสำเร็จเหรอ?
‫สมมติว่าถ้าจะประสบความสำเร็จ
‫เราจะต้องการวาดจุดดีบั๊กนั้น
‫ดังนั้นเราจะย้ายสิ่งนี้ลง
‫ฉันสามารถทำได้ด้วย Alt จากนั้นลูกศรจะเลื่อนเส้นไปรอบๆ แบบนี้ จากนั้นฉันสามารถเยื้องมันด้วยตัวควบคุมและวงเล็บเหลี่ยมด้านขวาบนแป้นพิมพ์ของคุณ
‫ซึ่งจะทำให้ดูเหมือนเป็นเช่นนั้น
‫และตอนนี้ แทนที่จะเป็นตำแหน่ง ซึ่งเป็นจุดเริ่มต้น เราต้องการตำแหน่งที่เข้าชมจริงๆ
‫ก็จะได้ตำแหน่ง hit dot แบบนั้น
‫และดูเหมือนว่าฉันไม่มีอัฒภาคที่ท้ายบรรทัดนี้
‫มาสร้างมันกันเถอะ
‫เมื่อรวบรวมแล้ว มาตีเล่น ไปในโลกแล้วลองยิงที่กำแพงของเรา
‫ไปเลย
‫คุณจะเห็นได้ว่าเรามีจุดหนึ่งปรากฏขึ้นบนกำแพงตรงที่ที่ฉันยิง
‫ฉันสามารถทำได้หลายครั้ง
‫ดูเหมือนว่าจะตีถ้าฉันไปไกลจากกำแพง มันไม่โดนเลยเพราะระยะสูงสุดของเราค่อนข้างสั้น
‫และคุณจะเห็นว่าเมื่อผมอยู่ในขอบเขตสูงสุด มันจะพุ่งชนและดึงจุด
‫จึงเป็นความท้าทายที่สำเร็จลุล่วงไปด้วยดี
‫ขณะนี้เราสามารถแสดงและลากเส้นไปยังจุดใดจุดหนึ่งได้
‫ขั้นตอนต่อไปคือการทำให้สิ่งนั้นแสดงเอฟเฟกต์อนุภาคจริง ๆ ซึ่งจะเจ๋งกว่าการวาดจุดดีบั๊กสำหรับสิ่งนั้น
‫เจอกันใหม่ตอนหน้าค่ะ