‫สวัสดีและยินดีต้อนรับ.
‫ในการบรรยายนี้ เราจะเชื่อมต่อระบบสุขภาพของเรากับพิมพ์เขียวแอนิเมชั่น เพื่อที่ฉันจะได้ยิงตัวละครนี้ไปจนกว่าเขาจะตาย
‫มาดูกันว่ามันทำงานอย่างไร
‫ดังนั้นเราจึงต้องการให้บูลีนนี้ในพิมพ์เขียวแอนิเมชั่นถูกตั้งค่าโดยอัตโนมัติจากการเล่นเกมของเรา
‫และถ้าเราดูกราฟเหตุการณ์ของเราแล้วดูว่าปัจจุบันนี้ทำงานอย่างไร คุณสมบัติอื่นๆ แบบนี้
‫เช่น รับความเร็ว แอ็คทีฟ แปลง เราจะไปที่การจำนำ และเรากำลังใช้ฟังก์ชันรับ
‫ทุกครั้งที่เราต้องการอัปเดตแอนิเมชั่นของเรา
‫ดังนั้นเราจึงต้องการติดตามในรูปแบบนี้ที่เราจะไปหาว่าผู้เล่นของเราตายหรือไม่
‫ในการทำเช่นนั้น เราจำเป็นต้องเปิดเผยฟังก์ชันการทำงานบางอย่าง ฟังก์ชันที่เรียกใช้ได้จาก C++ ของเรา
‫ลองไปที่ C++ และดูว่ามีอะไรบ้าง
‫เราจึงสามารถสร้างฟังก์ชันสาธารณะได้ แต่นั่นไม่ได้ทำให้สามารถเข้าถึงได้โดยไม่จำเป็น
‫ในการเข้าใช้งาน เราจำเป็นต้องมีฟังก์ชัน U ซึ่งทำให้มองเห็นได้สำหรับพิมพ์เขียวและเปิดระบบเครื่องมือส่วนหัว
‫แต่เราต้องก้าวไปอีกขั้นหนึ่งมากกว่าแค่มีมันเป็นหน้าที่ของคุณ
‫ดังนั้นเราจึงเริ่มต้นด้วยมาโครฟังก์ชันของคุณ แต่เราต้องการให้พิมพ์เขียวเรียกได้
‫นั่นคือตัวเลือกที่เราสามารถใช้พิมพ์เขียว callable
‫อย่างไรก็ตาม มีอีกตัวเลือกหนึ่งที่แทนที่พิมพ์เขียวหรือบอกเป็นนัยว่าเป็นพิมพ์เขียวที่เรียกได้และนั่นก็เป็นพิมพ์เขียวบริสุทธิ์
‫ตอนนี้เราจะเห็นความแตกต่างระหว่าง blueprint pure และ Blueprint ที่สามารถเรียกได้ในเวลาเพียงไม่กี่วินาที
‫แต่แค่รู้ว่าถ้าคุณใช้ Blueprint Pure มันก็ทำแบบเดียวกับ Blueprint Callable แล้วก็บางอัน
‫ดังนั้นจึงทำได้มากกว่า Blueprint callable เล็กน้อย
‫แล้วสิ่งที่เราต้องการคือฟังก์ชันที่คืนค่าบูลีนที่ระบุว่าตัวละครนี้ตายหรือไม่
‫ที่จะเป็นประโยชน์ให้เราได้รู้
‫และสุดท้าย เราต้องการให้สิ่งนี้เป็นฟังก์ชันสำหรับสมาชิกในคอนเสิร์ต
‫แล้วทำไมถึงอยากเป็นคอนเสิร์ตล่ะ?
‫เพราะเมื่อเราเรียกใช้ฟังก์ชันนี้ เราไม่ได้คาดหวังว่ามันจะเปลี่ยนสถานะของนักกีฬาเป็นตัวละคร
‫ดังนั้นเราจึงพูดได้อย่างปลอดภัยว่านี่ควรเป็นงานคอนเสิร์ต
‫และที่จริงแล้ว คอนเสิร์ตและพิมพ์เขียวล้วนมักจะไปด้วยกันเพราะพิมพ์เขียวบริสุทธิ์หมายความว่าถ้าเราเข้าไปในพิมพ์เขียวใด
‫ๆ เราก็สามารถดูโหนดบริสุทธิ์ได้
‫อันนี้รับแปลงร่าง
‫นั่นเป็นโหนดบริสุทธิ์
‫Get velocity คือ pure node set speed ไม่ใช่ pure node.
‫คุณเห็นสิ่งที่อาจเชื่อมโยงสิ่งเหล่านี้เข้าด้วยกันหรือไม่?
‫สิ่งที่เกี่ยวกับสิ่งเหล่านี้ทำให้สิ่งนี้ไม่บริสุทธิ์และสิ่งนี้บริสุทธิ์?
‫โดยทั่วไปแล้ว มันคือความจริงที่ว่ามีพินการประหารชีวิต
‫โหนดบริสุทธิ์คือโหนดที่ไม่มีพินการดำเนินการ
‫และมักจะปลอดภัยที่จะบอกว่าบางสิ่งไม่มีพินการดำเนินการเมื่อไม่มีผลกระทบใดๆ กับสิ่งที่เรียกเฉพาะกับผลลัพธ์เท่านั้น
‫โดยพื้นฐานแล้ว นี่หมายความว่าไม่ว่าเราจะเรียกใช้ฟังก์ชันนี้กี่ครั้ง ก็จะให้ผลลัพธ์เหมือนเดิมเสมอ
‫มันจะมีผลเช่นเดียวกันกับโปรแกรมเสมอ
‫มันเป็นหน้าที่บริสุทธิ์
‫มันไม่เปลี่ยนแปลงอะไรเมื่อมีการเรียก
‫ดังนั้นมันจึงเหมือนกับค่าคงที่ แม้ว่ามันจะแข็งแกร่งขึ้นเล็กน้อยเพราะสิ่งที่มันพูดไม่ใช่แค่ว่ามันไม่ได้เปลี่ยนแปลงอะไรที่นี่ในตัวละครของนักกีฬา
‫แต่มันไม่ได้เปลี่ยนอะไรทั่วโลก สถานะใด ๆ ที่ใดก็ได้
‫หยุดเต็มที่
‫อินพุตเดียว เอฟเฟกต์เดียวที่มีคือเอาต์พุตที่สร้าง
‫นั่นคือเหตุผลที่เราเลือกที่จะทำให้พิมพ์เขียวนี้บริสุทธิ์
‫มันไม่จำเป็นต้องใช้พินการดำเนินการ ซึ่งทำให้ดีกว่ามากในพิมพ์เขียว
‫และมันก็เป็นการแสดงออกถึงความจริงที่ว่าเราไม่ได้ทำการเปลี่ยนแปลงใด ๆ กับสถานะของเกมของเราเมื่อเราเรียกใช้ฟังก์ชันนี้
‫ไปข้างหน้าและพยายามสร้างการใช้งานสำหรับสิ่งนี้
‫อันที่จริง ฉันจะปล่อยให้การใช้งานนั้นขึ้นอยู่กับคุณว่าเป็นความท้าทาย และเราจะพูดถึงเรื่องนี้ในกราฟแอนิเมชัน
‫ขออภัย กราฟเหตุการณ์ของพิมพ์เขียวแอนิเมชัน
‫เราจะทำสิ่งนี้โดยมีชุดใหม่ตรงนี้
‫เราต้องการตั้งค่า is dead boolean variable ในตอนท้าย และเราต้องการหาเจ้าของโรงรับจำนำ และเราต้องการที่จะแคสต์เพราะมันจะต้องเป็นตัวละครที่ยิงปืนเพื่อให้สิ่งนี้เป็นคุณสมบัติที่ตายแล้ว
‫ดังนั้นเราจึงต้องการแคสต์ไปที่ และในกรณีนี้ ฉันต้องการแคสต์ไปยังตัวละคร C++
‫Shooter เพราะฉันไม่ต้องพูดจนสุดความสามารถว่านี่เป็นเวอร์ชันพิมพ์เขียวอย่างแน่นอน
‫เพราะฟังก์ชันใหม่นี้มีอยู่ใน ระดับ C++
‫ดังนั้นเราจะไปข้างหน้าและโยน
‫ถ้าเราประสบความสำเร็จในการคัดเลือกนักแสดง เราจะตั้งค่าคุณสมบัติ is dead
‫และขอผมใส่โหนดเปลี่ยนเส้นทางที่นี่เพื่อทำให้พิมพ์เขียวของเราดูดีขึ้นนิดหน่อย
‫แล้วสิ่งที่เราต้องการจะทำคือใช้การอ้างอิงตัวละครของเกมยิงปืนนี้
‫ตอนนี้เราได้โยนมันให้กับตัวละครมือปืน เรารู้ว่ามันควรจะมีคุณสมบัติตายตัว
‫ดังนั้นเราควรจะทำอย่างนั้นได้
‫เมื่อคุณคอมไพล์และใช้งานได้แล้ว คุณจะได้รับคุณสมบัตินี้เป็น dead property และตั้งค่าไว้ที่นี่
‫ถึงเวลาท้าทายของคุณในการคำนวณว่าเราตายหรือไม่
‫ดังนั้นส่งคืนบูลีนที่ถูกต้องจากฟังก์ชัน is dead ของเรา
‫นั่นคือขั้นตอนแรก
‫คุณอาจต้องการใช้ความไม่เท่าเทียมกันบางอย่างกับตัวแปรด้านสุขภาพของเรา จากนั้นจึงเชื่อมโยงตัวแปรของเรา
‫ตัวแปรตายคือตัวแปรตายในพิมพ์เขียวแอนิเมชั่นที่เราทำได้ไม่ถึง
‫เราแค่ต้องการให้เรารวบรวมโดยพื้นฐานจากการทำสิ่งนั้น
‫หยุดวิดีโอชั่วคราวและจัดเรียงข้อมูลนั้น
‫ตกลง.
‫ยินดีต้อนรับกลับ.
‫ไปที่โค้ดกันก่อนเลย
‫อย่างตรงไปตรงมา ผมจะคืนค่านิพจน์ที่คืนค่าบูลีน
‫เลยอยากบอกว่า สุขภาพน้อยกว่าหรือเท่ากับศูนย์ ในกรณีไหนที่เราตายจริง ๆ ?
‫ง่ายพอๆ กับการแสดงออกของฟังก์ชัน
‫ไปข้างหน้าและสร้างสิ่งนั้น
‫และเมื่อคอมไพล์เสร็จแล้ว เราก็สามารถเข้าไปที่ Unreal และเชื่อมต่อมันได้
‫ลากจาก as Shooter ไปที่ตัวละคร เราเป็นโหนด เราจะมีการอ้างอิงตัวละครของ Shooter ที่นี่ ดังนั้นเราจึงต้องการทำคือ
‫Dead ให้เรา นี่คือฟังก์ชั่นที่ตายแล้ว คุณจะเห็นได้ว่ามันไม่มีพินสำหรับการดำเนินการ เพราะมันบริสุทธิ์
‫จากนั้นเรานำบูลีนนี้ออกจากนั้นและโยงมันเข้ากับตัวแปรตายตัวของเรา
‫และตอนนี้ถ้าเราเล่นต่อ เราควรจะสามารถฆ่าตัวละครนั้นในโลกนี้ได้
‫เราจะยิงเขาจนกว่าสุขภาพของเขาจะลดลงเหลือศูนย์
‫และที่นั่นคุณไป
‫อนิเมชั่นได้ฆ่าเขาเรียบร้อยแล้ว