วงจร

วิธีการสร้างเกมง่ายๆใน Unity 3D: 12 ขั้นตอน

पृथà¥?वी पर सà¥?थित à¤à¤¯à¤¾à¤¨à¤• नरक मंदिर | Amazing H

पृथà¥?वी पर सà¥?थित à¤à¤¯à¤¾à¤¨à¤• नरक मंदिर | Amazing H

สารบัญ:

Anonim

Unity 3D เป็นเครื่องมือสร้างเกมที่ทรงพลังใช้งานง่ายและที่สำคัญที่สุดคือดาวน์โหลดได้ฟรี! (มีรุ่นจ่ายที่มีประสิทธิภาพมากกว่า แต่คุณสามารถทำอะไรได้มากมายกับรุ่นฟรี)

แม้จะมีชื่อ Unity สามารถใช้ได้ทั้งเกม 2D และ 3D คุณสามารถเขียนโปรแกรมใน C #, Java หรือ Boo ซึ่งเป็นภาษาที่คล้ายคลึงกับ Python ในบทช่วยสอนนี้ฉันจะแนะนำคุณเกี่ยวกับสภาพแวดล้อม Unity และแสดงวิธีสร้างเกมอย่างง่ายใน Unity

คุณไม่จำเป็นต้องมีประสบการณ์การเขียนโค้ดใด ๆ เพื่อติดตามคำแนะนำนี้ อย่างไรก็ตามขอแนะนำให้ใช้เพราะคุณอาจมีข้อผิดพลาดในการพิสูจน์รหัสของคุณได้ง่ายขึ้นหากคุณมีพื้นหลังของภาษาการเขียนโปรแกรมบางอย่าง

คำสั่งนี้ขึ้นอยู่กับบทช่วยสอนของ RollaBall บนเว็บไซต์ Unity มีบทช่วยสอนฟรีจำนวนมากที่สามารถพบได้บนหน้าเว็บบทช่วยสอน Unity ฉันสร้างคำสั่งนี้เป็นส่วนใหญ่สำหรับการฝึกของฉันเองกับ Unity แต่ยังรวมถึงการสอนวิดีโอเสริมด้วยชุดคำสั่งที่เขียนทีละขั้นตอน

วัสดุ:

ขั้นตอนที่ 1: สร้างโครงการใหม่

เปิด Unity3D

ปิดหน้าต่าง "ยินดีต้อนรับสู่ความสามัคคี" ที่ปรากฏขึ้นตามค่าเริ่มต้นเมื่อคุณเปิด Unity

คลิกไฟล์ - โครงการใหม่

เลือกที่ตั้งสำหรับโครงการของคุณ ฉันชอบใช้โฟลเดอร์เฉพาะหนึ่งโฟลเดอร์เพื่อเก็บโปรเจ็กต์ Unity ทั้งหมดของฉัน

พิมพ์ชื่อสำหรับโครงการของคุณ ในภาพหน้าจอโครงการใหม่เรียกว่า "

ดูภาพหน้าจอเพื่อดูว่าควรมีลักษณะอย่างไรก่อนคลิกปุ่มสร้าง

คลิก“ สร้าง”

ขั้นตอนที่ 2: ปรับแต่งเค้าโครง

สิ่งแรกที่คุณอาจต้องทำคือปรับแต่งเค้าโครง ทุกหน้าต่างสามารถคลิกและลากเข้าสู่ตำแหน่งได้ หรือคุณสามารถใช้เลย์เอาต์เริ่มต้นที่มาพร้อมกับ Unity ได้โดยคลิกที่ดร็อปบาร์ภายใต้เลย์เอาต์ที่ด้านบนซ้ายของหน้าจอ ฉันชอบเลย์เอาต์แบบสูง แต่ฉันคิดว่าการวางมุมมองเกมไว้ใต้มุมมองฉากจะเป็นประโยชน์

มีห้าหน้าต่างหลักที่คุณใช้เป็นส่วนใหญ่กับ Unity พวกเขาคือ ฉาก, เกม, ลำดับชั้น, โครงการและ ผู้ตรวจการ หน้าต่าง ดูภาพห้าภาพที่ด้านบนของขั้นตอนสำหรับภาพของแต่ละหน้าต่าง

ฉาก - นี่คือสิ่งที่ทำให้เกมเกิดขึ้น มันแสดงให้เห็นว่าองค์ประกอบที่คุณมีในเกมของคุณและที่พวกเขามีความสัมพันธ์ซึ่งกันและกัน มีบล็อกที่มุมขวาบนแสดงการวางแนวของฉาก

เกม - แสดงมุมมองที่กล้องหลักเห็นเมื่อเล่นเกม คุณสามารถทดสอบเกมของคุณในหน้าต่างนี้ได้โดยคลิกปุ่มเล่นที่ด้านบนตรงกลางของหน้าจอ

ลำดับชั้น - แสดงรายการองค์ประกอบทั้งหมดที่คุณเพิ่มลงในฉาก นี่คือกล้องหลักตามค่าเริ่มต้น คุณสามารถสร้างองค์ประกอบใหม่โดยคลิกสร้างและเลือกประเภทของวัตถุที่คุณต้องการ สิ่งนี้สามารถทำได้โดยใช้เมนูแบบเลื่อนลง GameObject ที่ด้านบนของหน้าจอ

โครงการ - แสดงไฟล์ที่ใช้สำหรับเกม คุณสามารถสร้างโฟลเดอร์สคริปต์ ฯลฯ โดยคลิกสร้างภายใต้หน้าต่างโครงการ

ผู้ตรวจการ - นี่คือที่ที่คุณปรับแต่งแง่มุมขององค์ประกอบแต่ละอย่างที่อยู่ในฉาก เพียงเลือกวัตถุในหน้าต่างลำดับชั้นหรือดับเบิลคลิกที่วัตถุในหน้าต่างฉากเพื่อแสดงคุณสมบัติในแผงตรวจสอบ

ขั้นตอนที่ 3: บันทึกฉากและตั้งค่า Build

คลิกไฟล์ - บันทึกฉาก บันทึกฉากใต้โฟลเดอร์ ชื่อโครงการ - สินทรัพย์ เนื้อหาเป็นโฟลเดอร์ที่สร้างไว้ล่วงหน้าซึ่งคุณต้องการจัดเก็บฉากและสคริปต์ของคุณ คุณอาจต้องการสร้างโฟลเดอร์ชื่อ Scenes ภายใน Assets เนื่องจากโฟลเดอร์ Assets อาจยุ่งเหยิง

บันทึกฉากเป็นซีนหรือหลักหรืออะไรทำนองนั้น

คลิกไฟล์ - สร้างการตั้งค่า

เพิ่มฉากปัจจุบันเพื่อสร้าง

เลือกแพลตฟอร์มที่ต้องการ มีตัวเลือกมากมายรวมถึงคอมพิวเตอร์ระบบเกมและสมาร์ทโฟน แต่ถ้าคุณสร้างโครงการเป็นครั้งแรกคุณอาจต้องการเลือก Web Player หรือ PC / Mac / Linux Standalone

คลิกการตั้งค่าเครื่องเล่นที่ด้านล่างของหน้าต่างสร้างการตั้งค่า นี่เป็นการเปิดตัวเลือกการตั้งค่าผู้เล่นในตัวตรวจสอบ ที่นี่คุณสามารถเปลี่ยนชื่อ บริษัท ชื่อผลิตภัณฑ์ (เกม) ไอคอนเริ่มต้น ฯลฯ

ปิดออกจากหน้าต่างการตั้งค่าการสร้าง คุณจะกลับมาที่นี่เมื่อคุณพร้อมที่จะจบเกม

ขั้นตอนที่ 4: สร้างเวที

วิธีที่ง่ายที่สุดในการสร้างสเตจใน Unity คือการเพิ่มคิวบ์

ในการทำสิ่งนี้ให้ไปที่ Game Object - สร้าง Other - Cube หรือใช้เมนู Create ในหน้าต่างลำดับชั้น เพิ่มลูกบาศก์

รีเซ็ตการแปลงของลูกบาศก์โดยคลิกขวา“ แปลง” ในแผงตรวจสอบ เป็นการดีที่จะทำเช่นนี้เมื่อใดก็ตามที่คุณสร้าง Game Object ใหม่

เลือกคิวบ์ในลำดับชั้น เปลี่ยนชื่อเป็น“ Wall” โดยคลิกสองครั้งที่ชื่อในลำดับชั้นหรือใช้แผงตรวจสอบ

ปรับขนาดลูกบาศก์ในทิศทาง X เพื่อให้ยาวและเหมือนผนัง

คลิกขวา“ กำแพง” ในแผงลำดับชั้นแล้วทำซ้ำสามครั้งเพื่อให้คุณมีสี่กำแพง มันจะดูเหมือนว่าคุณมีเพียงกำแพงเดียวเพราะพวกมันเหมือนกันและดังนั้นจึงครอบครองจุดเดียวกันในอวกาศ ลากไปไว้ในตำแหน่งและ / หรือใช้ตัวเลือกการแปลงสำหรับแต่ละคิวบ์เพื่อจัดเรียงที่ดูเหมือนเวที

บันทึก: หากต้องการดูรอบ ๆ ฉากให้คลิกปุ่มกลางของเมาส์เพื่อเลื่อนและเลื่อนเพื่อซูมเข้าและออก คลิกและลากในขณะที่กดปุ่ม ALT ค้างไว้เพื่อหมุนมุมมอง

สร้างเกมวัตถุที่ว่างเปล่าโดยใช้รายการเกมวัตถุแบบเลื่อนลง (สร้างที่ว่าง) ที่ด้านบนของหน้าจอ เรียกว่า“ เวที” รีเซ็ตการแปลง

เลือก "Walls" ทั้งสี่และลากใต้วัตถุเกม "Stage"

เพิ่มเครื่องบินเกมวัตถุโดยเลือกสร้างในแผงลำดับชั้นและใช้สำหรับพื้น เปลี่ยนชื่อเป็น "ชั้น" และลากใต้สเตจในลำดับชั้น

บันทึก: คุณต้องกด Enter หลังจากเปลี่ยนชื่อมิฉะนั้นการเปลี่ยนแปลงอาจไม่มีผล

ให้การแปลงเป็น -0.5 ในทิศทาง Y เพื่อให้แน่ใจว่าเรียงกันอย่างเรียบร้อยกับผนังทั้งสี่

กำหนดขนาดของพื้นในทิศทาง X, Y และ Z 1/10 ของสเกลที่คุณใช้ปรับขนาดกำแพง

ขั้นตอนที่ 5: สร้างผู้เล่น

คุณสามารถดาวน์โหลดตัวละครจากสถานที่ต่าง ๆ ทางออนไลน์เช่น Unity Store แต่สำหรับบทช่วยสอนนี้เราจะใช้หนึ่งใน Game Objects ในตัวสำหรับผู้เล่น

ไปที่เกมวัตถุ - สร้างอื่น ๆ - ทรงกลม

เลือกทรงกลมในลำดับชั้นและเปลี่ยนชื่อเป็น“ ผู้เล่น” รีเซ็ตการแปลง

ตอนนี้เราต้องการฟิสิกส์ ทำให้ผู้เล่นอยู่ภายใต้กฎหมายของฟิสิกส์โดยคลิกเพิ่มชิ้นส่วนที่ด้านล่างของแผงตรวจสอบโดยเลือกผู้เล่น เพิ่มวิชาฟิสิกส์ - Rigidbody ปล่อยให้การตั้งค่าเริ่มต้นทั้งหมด

คุณจะสังเกตเห็นว่าแต่ละวัตถุมาพร้อมกับ“ ส่วนประกอบ” ที่หลากหลายที่เพิ่มเข้าไปในนั้นซึ่งคุณสามารถดูได้ในตัวตรวจสอบ แต่ละลูกบาศก์ทรงกลม ฯลฯ มีองค์ประกอบที่เรียกว่า "collider" นี่คือพื้นที่ทางกายภาพของหน้าจอที่วัตถุนั้นถูกพิจารณาว่าใช้พื้นที่ หากคุณปิด collider กว่าวัตถุจะกลายเป็นเหมือนผีสามารถที่จะผ่านวัตถุอื่นได้ (ดูวิดีโอว่าเกิดอะไรขึ้นเมื่อคุณปิดส่วนประกอบ collider ของผู้เล่น) คุณสามารถเปิดและปิดส่วนประกอบได้โดยทำเครื่องหมายและยกเลิกการทำเครื่องหมายที่ช่องถัดจากชื่อคอมโพเนนต์

ขั้นตอนที่ 6: ทำให้ผู้เล่นย้ายไปมา

เลือกผู้เล่นในลำดับชั้น

ย่อขนาดส่วนประกอบที่คุณไม่ต้องการให้เปิดในตัวตรวจสอบโดยคลิกลูกศรลงทางด้านซ้ายของชื่อของแต่ละองค์ประกอบ นี่จะเป็นการล้างพื้นที่ทำงานของคุณเล็กน้อย

คลิกเพิ่มคอมโพเนนต์ที่ด้านล่างของหน้าต่างตัวตรวจสอบ เลือกสคริปต์ใหม่ตั้งชื่อสคริปต์เช่น "PlayerController" และเลือกภาษาการเขียนโปรแกรม ฉันใช้ CSharp คลิกสร้างและเพิ่ม

เพื่อประโยชน์ในการจัดระเบียบไฟล์ให้เปิดโฟลเดอร์สินทรัพย์ในหน้าต่างโครงการและสร้างโฟลเดอร์ที่เรียกว่าสคริปต์ ใส่สคริปต์ใหม่ของคุณในโฟลเดอร์นี้

หากต้องการเปิดสคริปต์เพื่อแก้ไขให้คลิกสองครั้งที่ชื่อของสคริปต์ในตัวตรวจสอบหรือเปิดจากหน้าต่างโครงการ นี่เป็นการเปิดสภาพแวดล้อมการเขียนโปรแกรมที่เรียกว่า MonoDevelop

บันทึก: หากนี่เป็นครั้งแรกที่คุณเขียนโค้ดคุณควรรู้ว่ามันสามารถเพิ่มค่าได้จริง ๆ ตรวจสอบให้แน่ใจว่าคุณมีความสอดคล้องกับการสะกดคำตัวอักษรและการเปิดและปิดวงเล็บ, วงเล็บ, วงเล็บปีกกา, ใบเสนอราคา ฯลฯ นอกจากนี้ให้ระวังข้อผิดพลาดที่เกิดจากการไม่มีเครื่องหมายอัฒภาคที่ท้ายบรรทัดของรหัส

ควรมีสองส่วนที่รวมอยู่ในรหัสของคุณโดยค่าเริ่มต้น: void Start () และ void Update () เริ่มการทำงานทันทีที่วัตถุเข้ามาในเกมและการอัพเดทจะดำเนินการอย่างต่อเนื่องในขณะที่วัตถุนั้นอยู่ในเกม เราจะเพิ่มหนึ่งในสามที่เรียกว่า FixedUpdate เพื่อจัดการโปรโตคอลที่เกี่ยวข้องกับฟิสิกส์ ควรมีลักษณะเช่นนี้:

void FixedUpdate () {}

ก่อนที่เราจะสามารถป้อนคำสั่งเราจำเป็นต้องประกาศตัวแปร สิ่งนี้จะทำไปที่ด้านบนของหน้าภายในวงเล็บปีกกาต่อไปนี้ Public Class PlayerController (หรือคล้ายกัน): Monobehaviour แต่ก่อนหน้าที่ void Start () สำหรับการเคลื่อนไหวเราจะใช้ตัวแปรที่เรียกว่า "ความเร็ว" ซึ่งเราสามารถปรับเพื่อกำหนดความเร็วที่ตัวละครของเราเคลื่อนที่ไปรอบ ๆ เวที ประกาศประเภทตัวแปร (ลอย) และชื่อ (ความเร็ว) ดังนี้:

ความเร็วลอยสาธารณะ

อัฒภาคบอกโปรแกรมว่านี่คือจุดสิ้นสุดของบรรทัดของรหัส คุณจะได้รับข้อผิดพลาดหากคุณลืมใส่เครื่องหมายอัฒภาคที่ส่วนท้ายของรหัสทุกบรรทัด / มากที่สุดดังนั้นอย่าปล่อยทิ้งไว้!

ภายใต้ FixedUpdate ให้ประกาศอีกสองลอยให้ย้ายแนวนอนและเคลื่อนย้ายแนวตั้ง สิ่งเหล่านี้รับค่าขึ้นอยู่กับคำสั่งแป้นพิมพ์ของผู้ใช้และ FixedUpdate จะอัปเดตพวกเขาทุกเฟรม

float moveHorizontal = Input.GetAxis (“ แนวนอน”); float moveVertical = Input.GetAxis (“ แนวตั้ง”);

กรณีสำคัญ

ยังคงอยู่ใน FixedUpdate สร้าง Vector3 ใหม่ชนิดของตัวแปรที่มีสามมิติที่มีประโยชน์สำหรับการย้ายวัตถุไปรอบ ๆ ในพื้นที่ 3 มิติ สิ่งนี้จะใช้ค่าของอินพุตของผู้ใช้สำหรับการเคลื่อนไหวในแนวนอนและแนวตั้งและจะเป็นศูนย์ในทิศทางขึ้น / ลงเพราะในเกมนี้ผู้เล่นสามารถเคลื่อนที่ในสองมิติเท่านั้น

การเคลื่อนไหวของ Vector3 = Vector3 ใหม่ (moveHorizont, 0.0f, moveVertical);

ในที่สุดป้อนแรงที่ผู้เล่นจะเคลื่อนไปรอบ ๆ โดยใช้ rigidbody.AddForce ซึ่งเป็นโปรโตคอลที่สร้างไว้ในองค์ประกอบ rigidbody ของผู้เล่น

rigidbody.AddForce (การเคลื่อนไหว * * * * * * * * ความเร็ว Time.deltaTime);

Time.deltaTime ใช้เพื่อทำให้การเคลื่อนไหวราบรื่นขึ้น เราจะปรับตัวแปรความเร็วในภายหลังในเครื่องมือแก้ไข Unity

บันทึกไฟล์ CSharp และเปลี่ยนกลับเป็น Unity

ไปที่แผงตรวจสอบผู้เล่นและดูสคริปต์การเคลื่อนไหวที่คุณเพิ่งสร้างขึ้น ควรมีกล่องสำหรับตัวแปรสาธารณะของคุณความเร็ว คุณสามารถเปลี่ยนค่าของตัวแปรสาธารณะโดยใช้ตัวตรวจสอบ

สำหรับตอนนี้ให้ความเร็วเท่ากับตัวเลขระหว่าง 100-1,000 และคลิกปุ่มเล่นที่ด้านบนตรงกลางของหน้าจอ คุณควรจะสามารถย้ายลูกบอลไปรอบ ๆ โดยใช้ปุ่มการเคลื่อนไหวเริ่มต้นของ Unity ไม่ว่าจะเป็น ASWD หรือปุ่มลูกศร

คลิกปุ่มเล่นอีกครั้งเพื่อออกจากโหมดทดสอบ

ขั้นตอนที่ 7: เพิ่มแสงสว่าง

สร้างเกมวัตถุที่ว่างเปล่าและเรียกว่า "ไฟ" ทำสิ่งนี้โดยการคลิก GameObject ในแถบเครื่องมือด้านบนและเลือก "สร้างที่ว่างเปล่า"

สร้างแสงทิศทางด้วยการเลือกตัวเลือกจากแถบเครื่องมือ“ สร้าง” ในแผงลำดับชั้น ตั้งชื่อมันว่า "Main Light." ทำให้มันเป็นวัตถุลูกของ Lights โดยการลากในลำดับชั้นไปยังวัตถุของ Lights นี่เป็นแนวคิดที่คล้ายกันกับการวางไฟล์ลงในโฟลเดอร์

เมื่อเลือก Main Light ให้เปลี่ยนการตั้งค่าแสงในแผงตรวจสอบโดยเปลี่ยนประเภทเงาเป็น“ Soft Shadows” และความละเอียดเป็น“ ความละเอียดสูงมาก”

ในแผงตรวจสอบให้เปลี่ยนการหมุนของแสงหลักเพื่อทำมุมลงไปบนเวที ฉันใช้ 30X, 60Y, 0Z

คลิกขวาที่ไฟหลักในแผงลำดับชั้นเพื่อทำซ้ำ ตั้งชื่อ“ Fill Light” ที่ซ้ำกันและให้ลูกอยู่ใต้แสงไฟ

ทำให้ความเข้มของ Fill Light จางลงโดยการเปลี่ยนสีเป็นโทนสีฟ้าอ่อนและลดความเข้มของสนามให้เหลือ 0.1 (ในสารวัตร)

เปลี่ยนเงาเป็น“ ไม่มีเงา”

ทำมุมเติมแสงในทิศทางตรงกันข้ามของแสงหลัก สำหรับฉันนี่คือ (330, 300, 0)

ขั้นตอนที่ 8: ปรับมุมกล้องอย่างละเอียด

เราต้องการให้กล้องทำมุมเอียงเวทีเพื่อเลือกกล้องหลักในลำดับชั้นและปรับการแปลงจนกระทั่งภาพในภาพตัวอย่างกล้อง (ด้านล่างขวาของแผงฉากพร้อมกับกล้องที่เลือก) ดูดี

ฉันใช้ตำแหน่ง (0, 10.5, -10) สำหรับตำแหน่งและ (45, 0, 0) สำหรับการหมุน

คุณยังสามารถลากกล้องไปรอบ ๆ ในมุมมองฉากเพื่อจัดตำแหน่งได้หากต้องการ

ขั้นตอนที่ 9: ทำให้กล้องติดตามผู้เล่น

เราต้องการให้กล้องติดตามผู้เล่นไปรอบ ๆ หน้าจอขณะที่เคลื่อนไหว เพื่อจุดประสงค์นี้สร้างสคริปต์ที่เรียกว่า "cameraMovement" โดยการเพิ่มองค์ประกอบสคริปต์ใหม่ลงในกล้องหลักในแผงตรวจสอบ ดับเบิลคลิกที่สคริปต์เพื่อเปิดใน MonoDevelop

สคริปต์นี้จะเข้าถึง Game Object อื่นของโปรแกรมเล่นดังนั้นคุณต้องประกาศสิ่งนี้ก่อนฟังก์ชั่น Start () ของสคริปต์โดยการเขียน

ผู้เล่น GameObject สาธารณะ

สร้าง Vector3 เรียกว่า“ offset” โดยการเขียน

Vector3 ส่วนตัวชดเชย

ภายใต้ฟังก์ชัน Start () ให้กำหนดค่าออฟเซ็ตเป็น

ชดเชย = transform.position;

ซึ่งเป็นตำแหน่ง (x, y, z) ของกล้อง

ภายใต้ฟังก์ชั่นที่ชื่อว่า LateUpdate () ให้กำหนดตำแหน่งของกล้องเป็นตำแหน่งของผู้เล่นบวกด้วยการชดเชยบางส่วน:

ถือเป็นโมฆะ LateUpdate () {transform.position = player.transform.position + offset;}

บันทึกสคริปต์และกลับไปที่ Unity

เราจำเป็นต้องกำหนด Game Object ให้กับ“ ผู้เล่น” ที่เรากำหนดไว้ในสคริปต์การย้ายกล้อง เลือกกล้องหลักและดูที่แผงตรวจสอบ ภายใต้สคริปต์การเคลื่อนย้ายกล้องควรมีกล่องชื่อ“ ผู้เล่น” ขณะนี้มันถูกกำหนดให้ไม่มี (GameObject) ลาก Player จากลำดับชั้นลงในกล่องนี้เพื่อกำหนดวัตถุเกมของผู้เล่นให้กับสคริปต์การย้ายกล้อง

ต้องแน่ใจว่าได้ลากสคริปต์ใหม่ลงในโฟลเดอร์สคริปต์ (ในแผงโครงการ) ซึ่งคุณสร้างขึ้นภายใต้เนื้อหา

ลองเกมโดยคลิกที่ปุ่มเล่นที่ด้านบนตรงกลางของหน้าจอ คุณควรจะสามารถย้ายผู้เล่นไปรอบ ๆ ด้วยปุ่มลูกศรและกล้องควรติดตามการเคลื่อนไหวของคุณ

บันทึกฉากและบันทึกโครงการ

ขั้นตอนที่ 10: ทำรายการ

สร้างวัตถุเกมใหม่ มันอาจเป็นทรงกลมลูกบาศก์แคปซูลหรือทรงกระบอก ฉันใช้ลูกบาศก์

เรียกมันว่า“ รายการ”

ติดแท็กรายการเป็น“ รายการ” โดยเลือกแท็กและสร้างแท็กใหม่ที่ชื่อว่า“ รายการ” จากนั้นกลับไปที่แท็กสำหรับวัตถุเกมนั้นและเลือกแท็ก "รายการ" ใหม่ที่คุณสร้างขึ้น แท็กรายการทั้งหมดของคุณเป็นรายการ ตรวจสอบให้แน่ใจว่าคุณสะกดคำและตัวพิมพ์ใหญ่ให้ตรง

วางรายการลงในวัตถุเกมที่ว่างเปล่าที่เรียกว่า“ รายการ”

รีเซ็ตการแปลง

เพิ่ม rigidbody ให้กับ Item

ทำรายการซ้ำหลาย ๆ ครั้งแล้ววางสำเนารอบ ๆ เวที

ขั้นตอนที่ 11: ทำให้ผู้เล่นรวบรวมรายการและแสดงคะแนน

เปิดสคริปต์การเคลื่อนไหวของผู้เล่นจากแผงตรวจสอบโดยเลือกวัตถุเกม Player และแก้ไขสคริปต์เพื่อให้ผู้เล่นสามารถรวบรวมและติดตามรายการที่รวบรวมได้

ทำการประกาศสองรายการ: หนึ่งรายการเป็นตัวแปรที่ติดตามคะแนนของคุณและอีกรายการหนึ่งเป็นข้อความ GUI ที่จะแสดงคะแนนของคุณในมุมมองฉาก

การนับ int ส่วนตัว GUIText สาธารณะ countText;

ภายใต้ฟังก์ชัน void Start () ให้เริ่มต้น count และ CountText ซึ่งเป็นฟังก์ชันที่เราจะเขียนในภายหลัง

นับ = 0; CountText ();

เขียนฟังก์ชั่นใหม่สำหรับสิ่งที่เกิดขึ้นเมื่อผู้เล่นชนกับไอเท็ม นี่ควรเป็นส่วนของตัวเองเช่นเดียวกับส่วนโมฆะเริ่มต้น () และส่วนปรับปรุงโมฆะ

ถือเป็นโมฆะ OnTriggerEnter (Collider อื่น ๆ ) {ถ้า (other.gameObject.tag ==“ รายการ”)

{other.gameObject.SetActive (false);

นับ = นับ + 1;

CountText ();}

}

เขียนฟังก์ชัน CountText ซึ่งจะอัปเดตคะแนนบนหน้าจอ GUI

เป็นโมฆะ CountText () {countText.text = "จำนวน:" + count.ToString ();

}

บันทึกรหัสและสลับกลับเป็น Unity

เลือกรายการทั้งหมดของคุณตรวจสอบให้แน่ใจว่าพวกเขาถูกแท็กเป็นรายการและทำเครื่องหมายปุ่ม“ Is Trigger” ในส่วนประกอบ Box Collider ของ Inspector

นอกจากนี้ให้ตรวจสอบปุ่ม“ Is Kinematic” ภายใต้ rigidbody สิ่งนี้จะช่วยป้องกันสิ่งของของคุณตกลงมาจากพื้นโดยการปิดแรงโน้มถ่วง

สำหรับ countText ให้สร้างข้อความ GUI (ส่วนติดต่อผู้ใช้แบบกราฟิก) ใหม่โดยใช้ตัวเลือกสร้างภายใต้ลำดับชั้น

ตั้งค่าการแปลงข้อความของ GUI เป็น (0,1,0) และให้พิกเซลชดเชยที่ (10, -10) ในองค์ประกอบ GUIText บนแผงตรวจสอบ

ลากข้อความ GUI ลงในกล่องนับข้อความบนตัวตรวจสอบด้วย Player ที่เลือก

ขั้นตอนที่ 12: สร้างอันตราย

แผงที่มองเห็นยากเหล่านี้จะเปิดตัวผู้เล่นขึ้นไปในอากาศและอาจเหนือขอบสนามกีฬาซึ่งในกรณีนี้มันจะจบเกม การทำอันตรายเป็นกระบวนการที่คล้ายกันกับการทำรายการ

สร้างวัตถุเกมใหม่ที่ว่างเปล่าที่เรียกว่า "อันตราย"

สร้าง Quad ใหม่และเรียกมันว่า "Hazard"

ติดแท็กเป็นอันตรายและตรวจสอบ“ Is Trigger”

เปลี่ยนสีเพื่อให้สามารถมองเห็นได้โดยเลือก Mesh Renderer ในตัวตรวจสอบโดยเลือกอันตรายและเปลี่ยนวัสดุ คลิกรายการแบบหล่นลงตามวัสดุและใช้วงกลมสีเทาเล็ก ๆ ทางด้านขวาของกล่องเพื่อเลือกวัสดุที่แตกต่างจากสีเทาเริ่มต้นสำหรับอันตราย ฉันมีวัสดุสีขาวติดตั้งมาล่วงหน้าดังนั้นฉันจึงใช้มัน

เปลี่ยนการหมุนของอันตรายเป็น 90 เกี่ยวกับแกน X และลดความสูงของ Y เป็น -0.4 ดังนั้นมันจึงเป็นสี่เหลี่ยมสีขาวเล็ก ๆ ที่อยู่เหนือพื้นเวที

แก้ไขสคริปต์ Player ภายใต้ฟังก์ชั่น OnTriggerEnter () เพื่อให้บัญชีเป็นไปได้ว่าวัตถุที่ผู้เล่นพบมีอันตรายและไม่ใช่ไอเท็ม บอกผู้เล่นให้กระโดดถ้าเจอกับอันตราย

ถือเป็นโมฆะ OnTriggerEnter (Collider อื่น ๆ ) {ถ้า (other.gameObject.tag == "รายการ") {other.gameObject.SetActive (false); count = count + 1; CountText (); } if (other.gameObject.tag == "อันตราย") {other.gameObject.SetActive (false); Vector3 jump = Vector3 ใหม่ (0.0f, 30, 0.0f); rigidbody.AddForce (กระโดด * ความเร็ว * Time.deltaTime); }

บันทึกรหัสกลับไปที่เครื่องมือแก้ไข Unity และทำซ้ำอันตรายสองสามครั้ง

วางตำแหน่งอันตรายรอบ ๆ เวทีและลองเล่นเกม!