‫เฮ้.
‫ยินดีต้อนรับกลับ.
‫ตอนนี้ เราได้สร้างฐานแล้ว -- คลาส C++
‫ในวิดีโอนี้ เราจะมาจากคลาสนั้นเพื่อสร้างคลาสย่อยใหม่ตามฐาน --
‫มาพูดคุยกันว่าทำไมเราถึงต้องการทำสิ่งนั้น
‫เรามีฐาน -- คลาสนี้ และเรารู้ว่าเราจะมีคลาสที่แตกต่างกันสองคลาสที่มาจากฐาน
‫--
‫เราจะมีถังของเราและเราจะมีหอคอย
‫ตอนนี้ ฐาน - ประกอบด้วยตาข่าย แคปซูล และจุดวางไข่
‫และนี่คือสิ่งที่ทั้งรถถังและหอคอยสามารถสืบทอดได้
‫แต่รถถังและหอคอยนั้นจะมีฟังก์ชั่นการใช้งานที่แตกต่างกันออกไป
‫ประการหนึ่ง รถถังของเราจะเคลื่อนที่ไปทั่วโลกและจะถูกควบคุมโดยผู้เล่นด้วย
‫จึงต้องกำหนดค่าให้รับข้อมูลจากแป้นพิมพ์และเมาส์
‫ในทางกลับกันหอคอยกำลังจะนั่งอยู่ที่นั่น
‫ไม่จำเป็นต้องป้อนข้อมูลใด ๆ จากผู้เล่นเนื่องจากการกระทำทั้งหมดจะถูกควบคุมโดยรหัส
‫ดังนั้นเนื่องจากรถถังและหอคอยจะมีพฤติกรรมแตกต่างกัน เราจะใช้การสืบทอดเพื่อสร้างคลาสย่อยของฐาน
‫เพื่อให้เราสามารถสืบทอดสิ่งที่พวกเขามีเหมือนกัน และเพิ่มคุณสมบัติเหล่านั้นให้กับแต่ละคลาส ซึ่งจะแตกต่างกัน
‫เรากลับมาที่นี่ในเครื่องมือแก้ไข และฉันจะไปที่คลาส C++ โฟลเดอร์ Tune
‫Tank ที่เรามีคลาสพื้นฐานของเรา และนี่จะเป็นคลาสที่เราได้รับ
‫ตอนนี้ เราสามารถคลิกขวาและเลือก create C++ class ที่ได้มาจาก base --
‫ลองเลือกสิ่งนั้นและฉันจะอนุญาตให้มันติดคลาสนี้ในโฟลเดอร์ slash tune tanks ที่มาเดียวกันกับฐาน
‫--
‫และสำหรับชื่อนี้ ผมจะเรียกมันว่าแทงค์
‫ดังนั้นคลาสรถถังของเราจะเป็นคลาสสำหรับรถถังจริงของเรา -- ที่เรากำลังควบคุมและเคลื่อนที่ไปทั่วโลก
‫มาคลิกสร้างชั้นเรียนกันเถอะ
‫โอเค เราได้คอมไพล์แล้ว และโค้ด vs ได้เปิดขึ้นพร้อมกับไฟล์รถถังใหม่ของเรา และเรายังมี Tank CP ด้วย
‫ตอนนี้สิ่งเหล่านี้ค่อนข้างเปลือยเปล่า
‫ไม่มีอะไรที่นี่จริงๆ แต่ถึงแม้ว่าเราจะมองไม่เห็นมัน แต่เราได้สืบทอดบางสิ่งจากฐาน
‫-- คลาส
‫เรามีส่วนประกอบเหล่านั้นที่เราได้เพิ่มเข้ากับฐาน --
‫แม้ว่าสิ่งเหล่านี้จะเป็นตัวแปรส่วนตัว แต่ก็ยังมีอยู่ในคลาสนี้
‫ตอนนี้เราได้สร้างคลาสรถถังแล้ว มาพูดถึงสองสามเรื่องกัน
‫รถถังจะต้องการที่ป้อมปืนจะไม่
‫เนื่องจากเราจะควบคุมรถถัง เราจึงต้องหาวิธีโฟกัสไปที่รถถังในขณะที่มันหมุนไปรอบๆ
‫ระดับ
‫ในภาพนี้ นี่คือส่วนประกอบของกล้อง
‫เป็นคลาส C ++ เป็นส่วนประกอบกล้องของคุณ
‫และเส้นสีแดงนี้เรียกว่าส่วนประกอบสปริงอาร์ม และคลาส C++ คือส่วนประกอบสปริงอาร์มของคุณ
‫การเพิ่มองค์ประกอบเหล่านี้ใน a -- ทำให้เราเห็น -- จากมุมมองของกล้อง
‫และถ้าติดกล้องและแขนสปริงเข้ากับ -- ในทางใดทางหนึ่ง พวกเขาจะตาม --
‫ไปทั่วโลก
‫กลับมาที่นี่ในเครื่องมือแก้ไข ถ้าเรากลับไปที่โฟลเดอร์ -- และเปิดถัง BP เราสามารถคลิกที่วิวพอร์ตเพื่อให้เห็นทุกอย่าง
‫จากนั้นเราก็สามารถเลือกแคปซูลคอมพ์แล้วคลิกเพิ่มแล้วเลือกสปริงอาร์ม
‫นี่คือส่วนประกอบแขนสปริง
‫ดูเหมือนเส้นสีแดง
‫เมื่อเลือกส่วนประกอบสปริงอาร์มแล้ว เราก็สามารถเพิ่มส่วนประกอบอื่นและเลือกกล้องได้
‫เมื่อเราเพิ่มกล้องที่ติดเข้ากับสปริงอาร์มแล้ว ตอนนี้เรามีวิธีมองจากมุมมองของกล้องเมื่อเราเริ่มควบคุม
‫--
‫ตอนนี้แขนสปริงมีประโยชน์มาก
‫มันมีความยาวแขนเป้าหมายนี้ และหากคุณปรับมัน คุณจะเห็นว่ากล้องปรับพร้อมกับแขนสปริง
‫นี่เป็นวิธีควบคุมว่ากล้องอยู่ห่างจาก --
‫ดังนั้นนี่คือสิ่งที่เราต้องการในคลาสของเราอย่างแน่นอน แต่เราจะเพิ่มจากด้าน
‫C++ แทนที่จะเพิ่มที่นี่ในพิมพ์เขียว
‫ดังนั้นฉันจะลบสิ่งเหล่านั้น
‫สำหรับความท้าทายของคุณ ฉันอยากให้คุณเพิ่มบางสิ่งในคลาสรถถัง
‫ประการแรก เราต้องการส่วนประกอบสปริงอาร์มและส่วนประกอบกล้อง ดังนั้นให้สร้างตัวแปรเหล่านี้และกำหนดให้เป็นตัวชี้
‫ไปข้างหน้าและสร้างส่วนสาธารณะและส่วนตัวแล้วใส่ตัวแปรเหล่านี้ในส่วนส่วนตัว
‫ตอนนี้เราต้องการสิ่งเหล่านี้เพื่อเป็นคุณสมบัติของ U ดังนั้นให้มาโครคุณสมบัติและเติมมาโครเหล่านั้นด้วยตัวระบุที่เหมาะสมตามสิ่งที่คุณได้เรียนรู้ในการบรรยายครั้งก่อน
‫ตอนนี้ เมื่อคุณสร้างตัวแปรเหล่านี้แล้ว ให้สร้างคอนสตรัคเตอร์และวางไว้ในส่วนสาธารณะและกำหนดไว้ในไฟล์
‫CP จากนั้นภายในคอนสตรัคเตอร์ก็สร้างส่วนประกอบกล้องและสปริงอาร์มของเราโดยใช้การสร้างออบเจ็กต์ย่อยเริ่มต้น
‫ตรวจสอบให้แน่ใจว่าใช้ไฟล์แนบการตั้งค่าเพื่อแนบส่วนประกอบเหล่านี้กับบางสิ่ง
‫เราต้องการให้ส่วนประกอบสปริงอาร์มของเราติดอยู่กับส่วนประกอบรูท
‫ดังนั้น ให้ใช้องค์ประกอบรูทและตั้งค่าสิ่งที่แนบมากับกล้อง และติดเข้ากับแขนสปริงสำหรับกล้อง
‫คุณสามารถอ้างอิงกลับไปที่ฐาน -- คลาส
‫เตือนตัวเองว่าโค้ดดูเหมือนทำสิ่งเหล่านี้อย่างไร
‫ไปข้างหน้าและหยุดวิดีโอชั่วคราวและเพิ่มสิ่งเหล่านี้ในคลาสรถถัง
‫ไม่เป็นไร.
‫ดังนั้นเราจึงอยู่ที่นี่ในถัง
‫ตอนนี้ สิ่งแรกก่อน.
‫ฉันต้องการมีส่วนสาธารณะและส่วนส่วนตัว
‫ดังนั้นส่วนส่วนตัวจะเป็นที่ที่เราเพิ่มส่วนประกอบใหม่ทั้งสองนี้
‫เราต้องการส่วนประกอบสปริงอาร์ม U ซึ่งจะเป็นตัวชี้ และเราสามารถเรียกสปริงอาร์มนี้ได้
‫และเรายังต้องการส่วนประกอบกล้องใหม่ และเราจะเรียกกล้องนี้ว่า
‫ไม่เป็นไร.
‫หากชื่อของคุณแตกต่างกันเล็กน้อย
‫ตอนนี้ ทันที ฉันเห็นข้อผิดพลาด IntelliSense ที่นี่ ซึ่งหมายความว่าฉันจะต้องส่งต่อประกาศเหล่านี้
‫ดังนั้นฉันจะใช้คลาสที่มีสปริงอาร์มและคลาสพร้อมกล้อง
‫และตอนนี้สิ่งเหล่านี้ได้รับการประกาศล่วงหน้า
‫ตอนนี้เราต้องการคุณสมบัติใหม่ของเรา
‫มาเพิ่มมาโครคุณสมบัติใหม่กัน
‫และภายในมาโครคุณสมบัติเราต้องการตัวระบุบางตัว
‫สิ่งเหล่านี้จะมองเห็นได้ทุกที่เนื่องจากเราเห็นว่าส่วนประกอบจำเป็นต้องมองเห็นได้ทุกที่เพื่อให้เราสามารถปรับพารามิเตอร์ในแผงรายละเอียดได้
‫ตอนนี้ ฉันไม่เห็นความจำเป็นเร่งด่วนในการดูกราฟเหตุการณ์ ดังนั้นฉันไม่คิดว่าเราต้องการพิมพ์เขียวอ่าน
‫เขียน หรือพิมพ์เขียวแบบอ่านอย่างเดียว
‫ไม่เป็นไร.
‫ถ้าคุณเพิ่มพวกเขา ฉันจะทิ้งมันเดี๋ยวนี้
‫ฉันจะให้หมวดหมู่เหล่านี้
‫และเนื่องจากสิ่งเหล่านี้เป็นส่วนประกอบ ฉันจะติดมันไว้ในหมวดหมู่ส่วนประกอบของเรา ร่วมกับส่วนประกอบอื่นๆ
‫ของเรา
‫ตอนนี้ ฉันไม่ได้เปิดเผยสิ่งเหล่านี้ในกราฟเหตุการณ์ ดังนั้นฉันจึงไม่ต้องการให้การเข้าถึงแบบส่วนตัวของเราระบุในที่นี้
‫เท่านี้ก็เพียงพอแล้วสำหรับสปริงอาร์ม และฉันต้องการให้ส่วนประกอบของกล้องเหมือนกับที่คุณมี
‫ฉันก็เลยคัดลอกมันมา
‫ตอนนี้เรามีส่วนประกอบของเราแล้ว
‫สิ่งต่อไปที่ต้องทำคือสร้างพวกมันในตัวสร้าง ซึ่งหมายความว่าเราต้องการตัวสร้าง
‫ตอนนี้คอนสตรัคเตอร์จะเป็นชื่อเดียวกับคลาส ดังนั้นมันเป็นแทงค์ และเราจำเป็นต้องกำหนดคอนสตรัคเตอร์นี้ในไฟล์
‫CP
‫ไปที่ Tank CP และสร้างรถถัง
‫ดังนั้นจึงมีฟังก์ชันการทำงานของเรา และตัวสร้างถังต้องนำหน้าด้วยชื่อคลาสของเราและตัวดำเนินการแก้ไขขอบเขต
‫นั่นคือโคลอนคู่นี่ตรงนี้
‫ด้วยวิธีนี้ เราไม่เพียงแค่สร้างฟังก์ชันใหม่ แต่ยังกำหนดคอนสตรัคเตอร์ของเราสำหรับคลาสนี้
‫ตอนนี้ เราต้องการสร้างส่วนประกอบเหล่านี้
‫เริ่มจากแขนสปริงกันก่อน
‫เราจะบอกว่าสปริงอาร์มเท่ากับสร้างออบเจ็กต์ย่อยเริ่มต้น และนี่จะเป็นส่วนประกอบแขนสปริงยู
‫และสำหรับข้อความ ฉันจะเรียกสปริงอาร์มนี้
‫และสำหรับสิ่งที่แนบมา เราจะตั้งค่าสปริงอาร์ม ตั้งค่าสิ่งที่แนบ ส่งผ่านองค์ประกอบรูท
‫ตอนนี้.
‫ฉันกำลังรอมัน
‫นั่นเองค่ะ
‫ข้อผิดพลาด IntelliSense แจ้งว่าตัวชี้ไปยังประเภทคลาสที่ไม่สมบูรณ์ ใช้ส่วนประกอบแขนสปริง
‫นั่นเป็นเพราะเราต้องรวมไฟล์ส่วนหัวเนื่องจากเรากำลังสร้างและใช้ส่วนประกอบสปริงอาร์ม
‫นี่คือเอกสาร Unreal Engine ของฉัน และหากฉันเลื่อนลง แสดงว่ามีการรวมของฉัน
‫ผมจะคัดลอกและวางตรงนี้ที่ด้านบน ใต้ขอบถัง
‫ตอนนี้ เป็นเพียงหมายเหตุข้างเคียงโดยทั่วไป คุณจะต้องรวมไฟล์ส่วนหัวของคลาสไว้ด้านบนสุดและรวมส่วนประกอบของคุณไว้ด้านล่าง
‫ดังนั้นเราจึงมีแขนสปริงของเรา
‫ได้เวลาสร้างกล้องแล้ว
‫เราจะบอกว่ากล้องสร้างออบเจ็กต์ย่อยเริ่มต้น ส่วนประกอบกล้องของคุณ
‫และในมาโครข้อความ ฉันจะเรียกสิ่งนี้ว่ากล้องง่ายๆ
‫และสำหรับกล้องฉันจะเรียกสิ่งที่แนบมากับการติดตั้งที่ส่งผ่านแขนสปริง
‫และแน่นอนว่าฉันต้องการไฟล์ส่วนหัวของกล้อง
‫นี่คือเอกสารประกอบของ Unreal Engine และในส่วนที่ระบุว่าเอกสารประกอบการค้นหา
‫ฉันจะพิมพ์ส่วนประกอบกล้องของคุณ และที่นี่ฉันเห็นส่วนประกอบกล้องของคุณ
‫ฉันจะเลือกสิ่งนั้น
‫และนี่คือเอกสารประกอบสำหรับส่วนประกอบกล้อง
‫ดังนั้นฉันจะคัดลอกเพื่อรวมวางไว้ที่ด้านบนสุดของไฟล์ของเรา
‫และตอนนี้เราควรจะดี
‫โอเค งั้นเราไปเรียบเรียงกันเลย
‫ตกลง.
‫ดังนั้นฉันจึงมีการรวบรวมที่ประสบความสำเร็จ
‫กลับไปที่บรรณาธิการและต่อจากนี้ -- แทงค์
‫แน่นอน เราไม่เห็นอะไรเลยเพราะ -- รถถังมาจากฐาน -- และส่วนประกอบที่เราเพิ่งเพิ่มเข้าไป
‫เราได้เพิ่มเข้าไปในคลาสรถถัง
‫ดังนั้น BP -- รถถังจะไม่ได้รับมัน เพราะมันไม่ได้มาจากระดับรถถัง
‫ตอนนี้ เราสามารถไปสร้างพิมพ์เขียวใหม่ตามประเภทของรถถังได้ แต่แล้วเราต้องตั้งค่าส่วนประกอบเหล่านี้ใหม่ทั้งหมดอีกครั้ง
‫และฉันไม่อยากทำงานทั้งหมดนั้นอีกเป็นครั้งที่สอง
‫มีวิธีที่ง่ายกว่านั้นที่เราจะซ่อมแซมพิมพ์เขียวนี้ให้กับระดับรถถังได้
‫เราทำได้โดยไปที่การตั้งค่าชั้นเรียน และในแผงรายละเอียดที่เลือกการตั้งค่าชั้นเรียนไว้ เราจะเห็นตัวเลือกชั้นเรียนและมีชั้นเรียนหลักอยู่
‫ดรอปดาวน์แสดงว่ามันถูกตั้งค่าเป็นพื้นฐาน แต่ถ้าเราคลิกที่มัน เราสามารถค้นหารถถังและเลือกรถถังเป็นคลาสพื้นฐานได้
‫และตอนนี้พิมพ์เขียวนี้ได้มาจากคลาสรถถัง
‫ดังนั้นเราจึงเห็นว่าคุณสมบัติทั้งหมดที่เราตั้งค่าด้วยส่วนประกอบของเรา เช่น ตาข่ายและขนาดแคปซูล
‫ยังคงอยู่ที่นั่น
‫ตอนนี้เราเห็นกล้องเท่านั้น
‫อันที่จริง เรามีแขนสปริงและกล้อง
‫และถ้าเราเลือกสปริงอาร์มตอนนี้ เราจะเห็นเส้นสีแดงนั้น
‫เท่านี้ก็เยี่ยมแล้ว
‫ดังนั้นฉันจึงสามารถนำส่วนประกอบแขนสปริงและเปลี่ยนความยาวแขนเป้าหมายได้
‫ถ้าฉันชอบ ฉันสามารถตั้งค่าเป็น 600 และยังสามารถเปลี่ยนการหมุนของมันเพื่อให้กล้องก้มลงที่ถังด้วยการเลือกโหมดการหมุนและหมุนขึ้นเล็กน้อย
‫อย่างตอนนี้ผมอยากชี้ให้เห็นว่าคุณไม่ควรเปลี่ยนตำแหน่งของกล้อง
‫การเลือกกล้องและเคลื่อนไปรอบ ๆ โลกอาจเป็นเรื่องน่าดึงดูดใจ เพื่อให้คุณจัดตำแหน่งและปรับมุมกล้องให้พอดี
‫แต่นี่ไม่ใช่วิธีที่ถูกต้อง
‫วิธีที่ถูกต้องคือการตั้งค่าการหมุนและความยาวแขนเป้าหมายของส่วนประกอบแขนสปริง
‫และเหตุผลก็คือคุณต้องการให้กล้องตัวนั้นติดที่ปลายแขนสปริง
‫สปริงอาร์มมีคุณสมบัติในตัวที่แตกต่างกันมากมาย เช่น การหดตัวเมื่อกล้องชนกับผนังเพื่อหลีกเลี่ยงสิ่งกีดขวาง
‫บังวิวสระน้ำ และสิ่งอื่น ๆ เช่นนั้น
‫ดังนั้น คุณจะต้องให้กล้องติดเข้ากับปลายแขนสปริง แล้วปรับแขนสปริงแทนที่จะปรับตำแหน่งและการหมุนของกล้อง
‫ในวิดีโอนี้ เราได้สร้างคลาสถัง และเรามาจากบ่อฐานเพื่อสืบทอดคุณสมบัติเหล่านั้นจากคลาสบ่อฐาน
‫เราได้เพิ่มส่วนประกอบสปริงอาร์มและส่วนประกอบกล้อง และเปิดเผยต่อเครื่องมือแก้ไขโดยใช้การมองเห็นเท่านั้น
‫และใส่ไว้ในหมวดหมู่ของตนเอง
‫ดังนั้นเราจึงเข้าใกล้ผลิตภัณฑ์สำเร็จรูปทีละขั้นตอน และเราจะพัฒนารถถังนี้ต่อไปในการบรรยายครั้งต่อไป
‫เจอกันเร็วๆนี้ครับ