เราถึงตอน Scipt แล้ว ให้เด็ก ๆ เช็กว่าตรงไหน Hierarchy กับโมเดลนะคะ เราจะต้องมีPlayer ที่เราสร้างไว้นะคะ ถ้า Player ในตรงนี้ ถ้าดูใน Scene ตัวนี้ เจ้าตัวนี้นะคะ ก็คือตัว ตัว Amy ของเรานั่นเองนะคะ ทีนี้สิ่งที่เราจะทำต่อมา ก็คือเราจะมากำหนดค่า Paramitor นะคะ นะคะ เรามาที่...Animatioตัมันก็จะขึ้นหน้าต่างที่มี Pop up คำว่า... ตัวนี้ขึ้นมาไหมเด็ก ๆ ที่มีเหมือน...เหมือนปุ่มสีเขียว สีอะไรอย่างนี้ขึ้นมาใช่ไหมคะ เสร็จแล้วคลิกที่ ไม่ ๆ ให้... ขึ้นอย่างนี้หรือยัง ยังไม่ขึ้น สัปดาห์ก่อนให้ทำแล้วไม่ใช่เหรอ เกมมาอยู่นี่แล้ว Animator เขียนตัวนี้หรือยังคะ Script แล้วก็ Script มี Charactor Movement หอยู่ใน Asset น่ะ ให้สร้างโฟลเดอร์ชื่อ Script ไง ใน Folder Asset ของเราที่สร้างไว้ มี Game มีโมเดล แล้วก็มีสคริปต์ไปที่โฟลเดอร์ที่ชื่อ Script เข้าไปดู มี... สัญลักษณ์ C# แล้วก็มี Charactor Movement ถ้ามีแล้วลองดับเบิลคลิกเข้าไปที่ Character Movement ก่อน ให้มันเหมือนมัน Run พอ... อันนี้เสร็จนะ เรามาดูที่ตัว Player เด็ก ๆ คลิดที่ตัว Player ที่ Hirarche ก่อน แล้วก็ไปดูที่โมเดลด้วย ไปดูที่ Model ด้วย Player ที่โมเดลด้วย สร้างหรือยังคะ ตรงโมเดลนี่ ต้องสร้าง playerมันถึงจะมีตัวนี้ขึ้นมา ในโมเดลจะมี None Flying None-idle None... ขึ้นแล้วใช่ไหม ให้เพื่อนด้วย ใครยังไม่ขึ้นดูให้เพื่อนด้วย ดูให้เพื่อนด้วย เพราะว่าสัปดาห์ที่แล้วสอนไปแล้วไง เห็นไหม ดูดี ๆ นะคะ ต้อต้องมาเลือกนี่ เหมือนเรามีอะไร None-idle ใช่ไหม แล้วก็อะไรอีก แล้วก็ Runing ใช่ไหมคลิกขวา แล้วก็ Create From... เดี๋ยวนะคะ ของเด็ก ๆขึ้นมา มีกี่ตัว 3 ตัวอย่างนี้ใช่ไหม 1 2 3 นี่ เห็นหรือยัง ลากจากนี่ เดี๋ยวแม่ลบก่อน ดูนะ ตรง Entry ที่เราจะเชื่อมโยง ถ้ายังไม่เชื่อมโยง ดูนะคะ เราจะต้องไป... ไปที่โมเดลใช่ไหม โมเดลเราจะมี None-Running กับ None-Idle Idle ก็คือยืนนิ่ง ๆ จะเอา Idle มาก่อน แล้วก็ลาก คลิกข้างไว้ ลากมาวาง โอเคไหม แล้วก็อีกอันหนึ่ง Running เรามี 2 ตัว ดูเครื่องมือ... เดี๋ยว ๆ ๆ เดี๋ยวจัดการครับ ตัวนี้นะ ดูนะคะ ที่ idle เราน่ะ ตรงนี้เราตั้งชื่อเป็น Idle I-d-l-e ใช่ไหม ส่วน Runing เอ้ย เลือกผิด ขอโทษ อันแรก นี่ ของเราชื่อตัวแรก กดผิดอัน ใช่ไหม ดูดี ๆ นึกออกนะ ตอนเราเอามาใช่ไหม ตอนเราลากมา เดี๋ยวลบก่อน เดี๋ยวจะงง ไม่ใช่ว่าลากมา ลาก Idle มาแต่ไปตั้งชื่อ Run อย่างนี้ก็ไม่ใช่ใช่ไหม พอลากมา คลิกตรงนี้ คลิกที่ปุ่มมันน่ะ แล้วก็มาตั้งชื่อให้มันเป็น Idle I-d-l-e อันนี้คือ Idle อันนี้ปุ่มก็จะเป็นคำว่า "Idle" เหมือนกัน เสร็จแล้ว Running Running เราก็คลิกที่ปุ่มมัน แล้วก็ตั้งชื่อเป็น Runing R-u-n-n-i-n-g Running เห็นไหมคะ เราก็จะมีไอ้ตัวนี้ 2 อันแล้ว Exit เอาลงมาก่อน เลื่อนขึ้นไป ปรับได้ ปรับได้ โอเค ทีนี้จะมากำหนดค่า Parameter พร้อมไปต่อไหมคะ ตอนนี้เด็ก ๆ ได้ Idle กับ Running หรือยังคะ อ๋อ เดี๋ยวนะ ลืม แล้วก็กำหนดค่าให้น้องด้วยมาตรง Idle นะ แล้วจิ้มเข้าไปตรง... ตรง... ตรงนี้นะ ตรง Idle เรานี่มันจะมีสามเหลี่ยมใช่ไหม เราจิ้มให้มันขยายออกมาอีกชั้นหนึ่งเห็นไหม มันก็จะมีข้างในนี่ ๆ คลิกตรงสามเหลี่ยมให้มันลงมา ต้องสร้างก่อนนะ ไม่อย่างนั้นมัน... ิืทมใฝ ท ค ืคPauseทีนี้ มากำหนดค่า Parameter นะคะ ตัวแรกเราคลิกที่ idle ก่อน เห็นไหม เห็นตรงนี้ไหม Parameter นี่ เห็นไหมคะ มันจะมี Layer นะ กับ Parameter คลิกที่ Parameter ค่ะ เห็นไหม มันจะมี 2 ตัวใช่ไหม ตรง Layer เราจะกำหนดให้ Idle เรานะคะ เลือก ดูดี ๆ นะเด็ก ๆ ว่าตอนนี้อยู่ตำแหน่งของ Parameter หรือ Layer เห็นไหมคะ บอกแล้วเราจะกำหนดค่า Parametor เพราะฉะนั้น เราต้องคลิกที่ Parameter นะคะ แล้วก็คลิก + กดที่เครื่องหมาย + เห็นไหมคะ ตัวแรกที่เราจะใส่ ก็คือ Float กำหนด ตัวแปร หรือประกาศตัวแปรอย่างนี้ค่ะ ตั้งชื่อนะคะ Input พิมพ์คำว่า "Input" นะคะ แล้วก็เว้นวรรค 1 อัน 1 ครั้ง แล้วก็กด Space bar 1 ครั้ง แกน X แกน Y เราน่ะ เพราะฉะนั้น ให้เป็นตัวใหญ่ วรรคก่อนแล้วก็กดตัว x เห็นไหมคะ เพิ่มอีกค่ะ เพิ่ม X X เพิ่มอีก 1 อัน กดเพิ่มเหมือนเดิม ทำเหมือนเดิม กดเหมือนเดิมนะคะ เป็น Input Z ค่ะ Z ก็ตัวใหญ่นะคะ ตัวนี้มันจะเป็นตัวแปร เด็ก ๆ ต้องจำด้วยนะ เราใช้ตัวใหญ่ Z เราใช้ตัวใหญ่ คำว่า "Input" เราเว้นวรรคนะ เราประกาศตัวแปร 2 ตัว มี Input X กับ Input Z ทีนี้ กำหนด Bool คลิกเครื่องหมายบวกเหมือนเดิม Boolean ก็คือตัวนี้ Running ใช่คำว่า "Running" แล้วก็อีกตัวหนึ่ง Boolean อีกตัวหนึ่ง 2 ตัว เรามีวิ่งกับ...Moving Moving นะคะ M-oเรามา... เรามีจิ้มที่ idle เรา คลิกขวา แล้วก็เลือก เห็นไหม มันจะมีลูกศรมา ลากลงมาใส่อะไรคะ ลากลงมาใส่ Run ของเราจิ้มจุ่มลงไป เห็นไหม Make Transition แล้วก็การเชื่อมโยงใช่ไหมคะ ดูใหม่นะ ตอนนี้ที่ Idle กับ Running ไม่มีการเคืเราคลิกที่ Idle ก่อน แล้วก็คลิกขวา เห็นไหมคะ มันจะมีคำว่า "Make Transition" ลากออกมาจะเห็น เห็นไหมลูกศร คลิกใส่ ไปใส่ที่ Running เพราะฉะนั้น เราต้องการเชื่อมหรือ... โอเคนะคะ เมื่อเชื่อมมาจาก Running แล้ว Running ก็ต้องโยงกลับไป เห็นไหมคะดแล้วดูที่ให้เด็ก ๆ คลิกที่เส้นที่เราโยงมานะ ดูตรงนี้ ตำแหน่งนี่ เอาเครื่องหมายถูกที่ Hash Exit ก็คือเราจะไม่ไม่ออกเมื่อถึงเวลา เห็นไหม เอาออกก่อนนะคะ เพราะเราต้องการให้มันวนลูปน่ะ มีการวนลูปนะคะ มีการทำงานแบบวนลูปนี่ เราติ๊กตัวนี้ออก ติ๊ก เอาเครื่องหมายถูกออก แล้วก็มาที่ comnetxtionเห็นไหมคะ มีเครื่องหมายบวก ใส่บวกเข้าไป เพิ่ม ก็คือเราจะเพิ่มอะไร เพิ่ม... เอ้ย ไม่ใช่สิ เราก็จะบอกว่า เมื่อมีการวิ่ง Running เราเลือก Boolean Running เป็นจริง เห็นไหมคะ เพิ่มอีกตัวหนึ่ง Moving ต้องเป็นจริง ก็ต้องกำหนดค่าเริ่มต้น ว่า เมื่อเป็นจริงถึงจะทำงาน เห็นไหมคะ เพราะฉะนั้น Running กับ Moviดก่อนนะคะ นั่น เพราะตอนนี้เรากำหนดค่าให้ Idle นะ เราไม่ได้กำหนดค่า ให้ Running โอเคนะคะ Idle ได้แล้วนะ อันนี้ เห็นไหม การเชื่อมโยงตรงชื่อมัน เห็นไหม Idle ไปที่ Ru ทีนี้เรามาคลิกที่ Running เราจนะคะ เราจะเชื่อมโยงกับ ทำเหมือนเดิม Make Transition เหมือนเดิม แล้วก็โยงกลับคืนไป แล้วก็มาคลิกเลือกที่เส้นที่เรา Running กับ Idle นะคะ ทำเหมือนกัน เอาTime ออกเหมือนเดิม แล้วก็กลับมาที่ Condition เมื่อกี้ตอนขามาจาก Idle เป็น to เพราะฉะนั้น ขากลับเราจะต้องเป็นตรงกันข้ามนะคะเด็ก ๆ Running เราก็จะเปลี่ยนเป็น False True เป็น False Floatคืนค่า เริ่ม ค่าเริ่มต้นค่านี้ คือ พอเช็กถ้าเป็นจริงทำ ไม่จริงไปไหนอะไรอย่างนี้ เพราะฉะนั้น Condition เงื่อนไขก็จะมี 2 ค่า ก็คือ True กับ False นะคะ เป็นจริงทำอะไร ไม่จริงทำอะไร โอเคไหม เด็ก ๆ จะมีไอ้เส้น 2 เส้นนี่ ลองกด Play ดูสิคะ เขาบอกให้เราไปลากไอ้น้อง มันอยู่ไหนนะมันก็จะวนนี่แหละ วนกันไปวนกันมา จาก Idle ไปหา...Player มันไปอยู่ไหนล่ะนี่ เดี๋ยวค่อยดูต่อ เพราะไอ้ตอนต่อไปยาวมากขอบอก เพราะฉะนั้น ตั้งใจดี ๆ นะคะ เพราะเราต้องมาเขียนสคริปอีกโอเคหรือยัง ตอนนี้เด็ก ๆ ได้ Idle แล้วมีการเชื่อมโยงจาก idle มา Running แล้วกลับจาก Running ไป Idle นะคะ ก็คือให้มันวนลูป วิ่งแล้วหยุด หยุดแล้ววิ่งอย่างนี้นึกออกนะ ทีนี้สิ่งที่เราจะต้องทำต่อมาให้ไปที่ Asset Script ของเรา เขาไปที่สคริปต์เจอหรือยัง Running Running True Idle ... เหมือนกันนะคะ ตอน Idle to Running โอเค แหม ไอ้ตัวนี้มัน... ดูนะคะ เวลาเราจะดูตรงนี้ เด็ก ๆ ดู ตอนที่ Idle เอ้ย RunningTrue Idleคลิก Player ตรง Hierarchy นี่ ลากไปวางตรง Preview นะคะ ตรงนี้ถึงจะขึ้นนะเด็ก ๆ คลิกที่การเชื่อมโยงของเรา แล้วลาก ลาก Player นะคะ คลิกค้างไว้แล้วลากมาใส่ตรง Preview แล้วกด Play ดู นี่ น้องวิ่งไป แล้วก็จะวิ่งกลับคืน จังหวะเวลา เราสามารถปรับได้นะ อันนี้เพราะเราตั้งไว้น้อยนะ 0. เท่าไรเอง เดี๋ยวค่อยไปเพิ่ม อันนี้ดูก่อนว่าลักษณะการวิ่งกับหยุดเขาเป็นอย่างไร แล้วก็ 1. ก็คือตัว Model ที่เราเอามาด้วย Model ตอนที่เราไปเลือกจาก Mixamo น่ะค่ะ ไอ้ตัวนี้ที่แม่เลือกมามันวิ่งแค่จังหวะเดียว เพราะมันจะมีเห็นไหม จากโมเดลที่เราเลือกมา มันจะมีวิ่งวนก็มี นั้นก็คือแล้วแต่เราเลือก ตัวที่เราจะเอามาใช้เป็นอย่างไร โอเค ต่อไปนะคะ เราก็จะ... มาที่ตัวนี้ Player ของเรา เห็นไหมคะ Player ที่อยู่ที่ Hierarchy นะคะ อย่าลืมว่าเรามี Player อยู่หลายส่วน ให้ดูแม่เลือกตรงไหนด้วย แล้ว...แล้วก็ Access Script เห็นไหมคะ เขาไปใน script ไว้ด้วย เข้าไปก่อน ให้มันขึ้นแบบนี้นะ Player ใน Hierarchy เรา แล้วก็คลิกไปวาง ให้วางต่อจาก... เดี๋ยวนะ แคปซูลเห็น Capsule แล้วนะ เอาไปวาง ลากไอ้นี่นะคะ ไปใส่ ลากไอ้ Script ที่เราสร้างไว้น่ะ Character Movเห็นหรือยัง ลากมาวางอย่างนี้ ใครยังไม่ขึ้นแบบนี้ เห็นไหม แต่เดิมที่เรามี เรามี Character Controler มี Capsule Controler เราน่ะ ใน Player ที่เราสร้างไว้ Player ที่เราสร้างไว้ เห็นไหมคะ แล้วเรามาลาก Character Movement เป็น Script ที่เราสร้างขึ้นนี่เอามาใส่ต่อ ต่อท้าย Capsule Corider นะคะ ใครยังไม่ขึ้นแบบนี้บ้าง ขึ้นหมดหรือยัง ได้หมดแล้วนะคะ ไปต่อนะคะ ดับเบิลคลิกเลย ไปไหนแล้วเราไม่มี C# เหรอ เสร็จ ไปที่เว็บเบราเซอร์นะคเด็ก ๆ ไปดาวน์โหลด C#ของเรา Windows นะ For Windows ด้วยเลย For Windows Enter ก็มีของ Microsoft ทำไมไม่ขึ้น ไมเอาอันไหนดี อันนี้ก็ได้แล้วนะ เอาตัวฟรีนี่แหละ Free Download ก็ของ Microsoft เหมือนกันแล้วนะ ไม่ต้อง Microsoft ได้ไหมน่ะ อยากได้ออนไลน์ เข้า C#.net อยู่เหรอ มันขึ้นอะไร เดี๋ยวนะใชใช้ตัวนี้ก็ได้ เจอตัวนี้ก็เอาตัวนี้แหละ เอาตัวแรกเลย ขึ้นเหมือนกันหรือเปล่า เอา... For Windows เราเลือกอันแรกนะคะ Free Download เลย 2022 เหรอ แล้วก็ Install ให้เรียบร้อยนะเด็ก ๆ น่าจะเร็วอยู่หรอก ของ Microsoft ไม่น่าช้า น่าจะเร็วอยู่ เดี๋ยวดูนะคะ ในส่วนของที่เราจะเขียน Code นะคะ ส่วนแรก ก็คือเราจะต้องมาทำการประกาศตัวแปรให้น้องก่อน ไม่ใช่ Sigแม่ไม่ได้เลือก Sign in เดี๋ยว น่าจะได้ โอเค Install เลย คลิก Install เลยนะคะเด็ก ๆ เดี๋ยวนี่มันทำให้เอง ไม่ต้องไปเลือกอะไร พอมันขึ้นแบบนี้แล้วน่ะ นี่ เสร็จแล้วก็ปิดได้นะคะ แล้วก็มาที่ Unity เรา แล้วก็เห็นไหม ตรง Charactor Movement แล้วก็คลิก Open พอคลิก Open มันอาจจะยังไม่เปิด มันอาจจะเข้าไปถามไปเลือกโปรแกรมมันน่ะ ใครโหลดเสร็จแล้ว เปิดหน้านี้นะคะ แล้วก็ให้พักเบรกก่อน เข้าห้องน้ำได้ เปิดหน้า C# ไว้ แม่ก็จะเบรกเหมือนกัน โอเค แล้วจะได้มาต่อเรื่องชวนปวดหัว ทนโอเค เป็นอย่างไร เปิดได้หมดหรือยัง เดี๋ยวนะคะ น่าจะอีกเครื่องหนึ่ง... สีดำกับสีขาว เด็ก ๆ เอาสีไหน อันนี้สีดำนะ เดี๋ยวแม่เขียนให้ดูก่อน ชอบอันไหน ดำกับขาว เอาอันไหนลูก มากี้ เอาดำ ดำหรือขาว สีดำนะ โอเค โอเค อย่างนั้นจะเปลี่ยนโหมดเป็นสีดำให้ เอาเป็นดำนะ ตกลงขาวหรือดำ เอาขาวนะ ดูดี ๆ นะ เอาขาวนะ โอเคนะ ตัวแรกที่เราจะเริ่มนะคะ อยู่ตรงนี้ ตำแหน่งนี้ เดี๋ยวรอเพื่อนอีกแป๊บหนึ่ง เออ รอเพื่อนก่อน คือ ตอนเด็ก ๆ พิมพ์น่ะ สีดำก็ได้ คือ ถามว่าที่ดูจากหน้าจอใหญ่น่ะ เห็น Code น่ะ เห็น Code ที่เลือกเอาสีอะไร เอาสีขาวนะ โอเคหรือยังคะ เหลือขององุ่นเหรอ ของกุ้งเต้นได้หรือยังเครื่องกุ้งเต้นได้อยู่ใช่ไหม โอเค บรรทัดแรกนะคะ เราจะประกาศตัวแปร Animator รูปแบบการใช้ของ C# นี่ ดูนะคะ ตอนแรก Animator ที่เราพูดถึงนี่ พิมพ์ด้วยตัวพิมพ์ใหญ่นะ แล้วตัว Animator ที่ 2 นี่ จะพิมพ์ด้วยตัวพิมพ์เล็กทั้งหมด ปิดด้วย Charเสมอนะคะ เพราะฉะนั้น บรรทัดแรก ประกาศตัวแปรให้ animator Animator ชื่อ Animator เห็นชัดไหม เพิ่มไซซ์อีกหรือเปล่าคะ ชัดอยู่นะ ชัดแล้วนะคะ ไม่เพิ่มแล้วนะ ตอนนี้ 2 บรรทัดเสร็จหรือยัง บรรทัดแรก Animator Animator สะกดให้มันถูกด้วยนะ เดี๋ยวเลือกใช้ แล้วไม่ตรง ขึ้น Error อย่ามาโทษ ตอนนี้ยังไม่ได้ให้เขียนเอง ให้เขียนตามเท่านั้น ต้องสะกดให้ถูกนะคะ เพราะเวลาเรียก มันก็จะได้หาถูก Character Controller ก็ต้องเหมือนกัน แต่เปลี่ยนแค่กำหนดค่าแล้วก็ตัวไอ้นี่มันเป็นตัวเล็กนะคะ ชื่อตัวแปรตัวใหญ่ ดู กำหนดค่าให้อันตัวนี้หมายถึงการดูนะคะ บรรทัดต่อไปเราจะกำหนดค่าให้ด้วย ตัวนี้จะเป็นตัวแปรที่ว่า Speed Speed ที่ว่าความเร็วนะคะ ใช้คำสั่ง Publicเห็นไหม พอพิมพ์ตัว P ปุ๊บ public จะขึ้นมา ดับเบิลคลิกได้เลย จะได้ไม่ต้องพิมพ์ผิด ไม่เกิดปัญหาพิมพ์ผิดนะคะ ดูนะ ดูวิธีการนะ P เห็นไหมคะ แล้วเลือกที่คำว่า public ดับเบิลคลิก คลิก2 ที กดดับเบิลคลิก 2 ที คำว่า" Public" ก็จะขึ้นมา มันจะไม่เกิดปัญหาว่าพิมพ์ผิด ตัวต่อไป วรรด f-l-o-a-t มีคำว่า "Float" ขึ้นมา ดับเบิลคลิกได้เลย แล้วก็ตามด้วชื่อตัวแปร speed speed นะคะ วรรค ใส่เครื่องหมาย = 6.0 ของเขาจะมี f ต่อท้าย 6... อย่าไปกดนะ แม่ยังไม่กด เพราะของเราเป็นเลข 0 นะคะ ไม่ใช่ตัว O ไม่ต้องไปกดนะ อย่าลืมปิดด้วยอะไรคะ ; ทุกครั้ง ปิดคำสั่งมี Sprrd แล้วมีอะไรอีก ทำเหมือนกันเลยนะ เพราะฉะนั้น Copy ได้นะ ให้ Copy ได้เราจะมาแก้แค่ตัวหลังนะ ไม่เอาหมดดีกว่า เดี๋ยวจะงงในการแก้ Copy แค่ Public Float พอ Ctrl + C จะได้ไม่พิมพ์ผิด กันปัญหาพิมพ์ผิดนะ Ctrl +C Ctrl + V เมื่อกี้ speed ความเร็ว ทีนี้การหมุน Rotation r-o ... rotate เราจะเอาเป็น rotate rotation rotation อะไร rotation speed ใส่คำว่า "Speedเป็นความเร็วน่ะ อันนี้ตัวแปร พิมพ์ตาม พิมพ์ตามนะคะ ชื่อตัวแปรตัวนี้ จะได้เหมือนกัน กำหนดค่าให้ เท่ากับ 25 แล้วก็ปิดด้วย ; ค่ะ เรายังเหลือ ความเร็ว การหมุน หรือการวิ่งวน มีการกระโดด มีกระโดด แล้วก็... เพิ่ม เพิ่ม publicflot อีก 1 ตัวนะคะ พอเรา Copy Public float กด Ctrl + V วางได้เลยอันนี้จั้ม กระโดด = นี่เท่าไรดี เอาสัก 7.5 อันนี้มี f ด้วยนะคะ แล้วก็ปิดด้วย ; เหมือนเดิม มี... มีความเร็ว มีการหมุน มีการกระโดด ต่อไปเป็น garvity การล่วงหรือการตก หรือแรงโน้มถ่วงน่ะนะ Gravityเหมือนเดิม public Float เหมืนgravity เอาสัก 20 แล้วกัน 20.0f นะคะ แล้วก็ปิดด้วย ; ของเราดูจากตัวนี้เรานะคะ เราอยากให้น้องทำอะไรบ้าง เดินได้ วิ่งได้ กระโดดได้ หมุนได้ใช่ไหม เพราะฉะนั้น ก็เลยมาเขียน Script ควบคุมเขานะคะ เพราะฉะนั้น กำหนดค่าให้เขาด้วย ตอนนี้เราได้ animator มี Charactor Controller มี Speed มี gravity แล้ว ประกาศค่าเยอะอยู่ เพราะว่าตัวการกระทำมันเยอะ จำได้นะ เรามีค่า ในแกน X แกน Y นะ ตัวแปรตัวนี้ว่า Vector พิมพ์ด้วยตัวพิมพ์ใหญ่ ตัว V นะคะ V-e-c-t-o-r Vecetแล้วก็วรรค ตามด้วยตัว P เอ้อ ไม่วรรคสิ Vector3 เขาไม่วรรค เขาไม่วรรค input vec นะคะ input ตัวนี้ ใช่ inputvec ใช่ แล้วก็ตามด้วยคำว่า "vec แล้วก็ตามด้วยเดี๋ยว ;เดี๋ยวกำหนดให้ VectorPทำอะไร กำหนด vector 3 ทำอVector3 เลือกเลย ตัวเดียวกัน กำหนดให้มัน Target target inputvec Vec ในที่นี้คือ Vec ใหญ่นะคะ ก็คือมาจาก Vector นั่นเอง Target direction D ตัวใหญ่ Direc แล้วก็ปิดด้วย ; ค่ะ ตัวสุดท้ายนะคะ ลprivate private อะไรบ้าง privatevector3private Vector3 Vector3 move Move Directer จะกำหนดให้ moveDirection Direction = Vector3. นะคะ .zero .0 Set ค่าให้เป็น 0 ปิด ในส่วนของการประกาศ ตัวแปรต่าง ๆ เสร็จแล้วนะ โอเคไหม ใครยังพิมพ์ไม่เสร็จ พิมพ์หรือยัง เดี๋ยวเราจะได้ไปต่อนะคะ ยังไม่เสร็จมันจะไปต่อไม่ได้ เสร็จแล้ว 1 ส่วนนี่ Save ด้วย เพื่อความปลอดภัย File Save Save เลยนะคะ ต่อมาเราจะเข้ามาที่การสั่งให้มันทำงานแล้ว อยู่ใน void start ที่มัน start นะคะ เราจะเริ่มแล้ว เริ่มด้วยอะไรก่อน ตัวใหญ่นะคะ Tine เรียกใช้ prime Time.timeScale ให้เวลาเริ่มที่ 1 เรียก animator animator ตัวเล็กนะคะ ไม่ใช่ Animator ตัวใหญ่ Animator เล็ก บันทึกไปเลย เพราะเราประกาศตัวแปรน้องไปแล้ว = ให้มัน getComponent ให้มันนับค่า GetComponent เครื่องหมาย Animator ตัวใหญ่นะคะ ข้างใน ไม่ใช่ปีกกา ขอโทษ วงเล็บ วงเล็บ เผื่อกด...แล้วก็ปิดด้วย : เรียก Charactor Controller มาใช้นะคะ Character Controllerตัวเล็ก ดับเบิลคลิกเลย เพราะเราประกาศไปแล้ว เดี๋ยวนะ เหมือนกัน = GetComponentดับเบิลคลิกเปลี่ยนตัวข้างในนะคะ เป็น CharacterController ตัวใหญ่ เห็นไหม มัน...มันเหมือนกันน่ะ แต่ตอนตัวนี้เรียก Animator ตัวนี้เรียก CharacterController ในส่วนของ Start นะคะ มี 3 บรรทัด บรรทัดแรก timeScale กำหนดค่าให้ = 1 Animator กำหนดค่าให้เป็นค่าว่างนะคะ แล้วก็ CharactorController ก็กำหนดค่า รับค่า การรับค่า เป็นว่างไว้ก่อน ในส่วนของการให้เริ่มต้น เสร็จหมดหรือยังคะ ใครยังไม่เสร็จ ยกมือ เสร็จแล้วนะ โอเค เสร็จแล้วนะ โอเค ส่วนต่อมา ส่วยของอัปเดต เมื่อมี... ทุกครั้งนะคะ เวลาเราทำโปรแกรม เขียนโปรแกรมนี่ มันจะมีส่วนของการอัปเดต มันจะมีการให้ Update นั่นนี่นู้น กำหนดให้มัน Update อะไรบ้างนะคะ อัปเดตจะยาวหน่อย Float นะคะ เลือกเลย float ตัวแรก x = ค่า x มีค่าเท่ากับ แย่แล้ว แล้วก็ () เราเอาไว้ วงเล็บเปิดวงเล็บปิด ต้องมี 2 อัน ให้ใส่ 2 ครั้ง จะได้ไม่ลืม ค่าแรก... Input ใหญ่ Input ใหญ่นะคะ ไม่ใช่ในตัวนี้นะ input ด้วยตัวพิมพ์ใหญ่ Input ตัวใหญ่ ตามด้วย . .Get ตัวใหญ่นะคะ Gf Axi A-x-i-s raw Raw R ไม่ใช่ e ขอโทษที R นะคะ R-a-w ไปที่วงเล็บ... เดี๋ยวนะ เดี๋ยวนะ อันนี้อยู่วงเล็บแรกนะ input นี่ โอเคไหมคะ อย่างนี้นะเด็ก ๆ ขอโทษ อันนี้ใส่เครื่องหมายคำพูดค่ะ "" Vertical แล้วก็ปิดด้วย ; Vertical ก็คือแนวตั้งนะ มี vertical ก็ต้องมี Horizontal ก็คือแนวนอน มีแกน X ก็ต้องมีแกน Z ก๊อบ ก๊อบเลย ก๊อบไปทั้งบรรทัดเลยเราจะเปลี่ยนแค่ตัว X กับตัว Vertical นะคะ เพราะฉะนั้น Copy ได้ค่ะ Copy แล้วก็วาง เปลี่ยนจาก X เป็น Z แล้วก็เปลี่ยนจาก Vertical เป็น Horizental Heri... แล้วกดพอบรรทัดที่ต่อมา เรียกใช้ InputVec input เล็ก ประกาศไว้ข้างบนนะคะ ดับเบิลคลิกได้เลย = new new อะไร Vector3 ค่ะ ให้ vector3 เรียกใช้ vector3 นะคะใน Vector3 เราก็คือไอ้แกนทั้ง 3 ของเรานี่ มีแกน x แกน y แกน z นะคะ กำหนดค่าที่แกน y เป็น 0 เอาใส่ 0 แทนตำแหน่งของ y เห็นไหม แล้วก็ลบ y ออกนะเด็ก ๆ เพราะค่าตรง... อ๋อ แล้วตรงนี้ บรรทัดนี้ อันนี้ x เป็น - พอเป็น Iuput เอาลบออก เพราะฉะนั้น วงเล็บลบออก 1 อัน โอเคนะคะ ไปต่อนะคะ น่าจะทันอยู่ เพราะส่วนใหญ่เรากำหนดตัวแปรไว้แล้วนะคะ เรียกใช้ตัวแปร Animator ตัวเล็กนะ ..Setfloat Float F ตัวใหญ่นะคะ F ตัวใหญ่ จะได้รู้ว่าเป็นคนละประโยค เอ้ย... เวลาเขียนในภาษาอังกฤษ เขาแยกคำ เอาตัวใหญ่มาคั่น เห็นไหม จะเป็นคำ ๆ SetFloat นะคะ เพราะเขียน Code มี... มันจะเป็นคำ เป็นอีกประโยคหนึ่งไปเลย เพราะฉะนั้น เพราะฉะนั้นถ้าคำมันหลาย ๆ คำ มันก็ใช้ตัวใหญ่คั่น วงเล็บเปิด วงเล็บปิด แล้วก็เครื่องหมายคำพูด " ในเครื่องหมายคำพูด input รับค่า เอา Input ตัวใหญ่นี่ได้เลยนะคะ Input แล้วตามด้วยอ๋อ รับค่า X x รับค่า X InputX ใช้ X แล้วก็ z นะคะ ตัวแปร z แล้วก็ปิดด้วย ;มี Input X เราก็มี Input Z ใช่ไหม เพราะฉะนั้น Copy ได้ Copy แล้วก็แก้ค่า x เป็น z นะคะ ไม่ใช่แก้ค่า x สิ เปลี่ยนค่า x เป็น z มันไม่ใช่ค่าตัวนี้ เป็นข้อความ ตัวนี้เป็น InputZ Z ใหญ่ ค่าตรงนี้เป็น X ตอน Input เป็น - แล้วเป็น -x x นะคะ โอเค แก้ตรงตัว x เป็นตัว z แล้วก็แก้ค่า z เป็น -xในวงเล็บด้วย มันจะเหมือนตัวบนนี่ไง มันกำลังเรียกไอ้ 2 ตัวนี้ อัปเดตไอ้ค่า 2 ตัวนี้อยู่นี่ ที่เรากำหนดไว้ กำหนด Float x Float z ไว้ เพราะฉะนั้น เราจะต้องมาเช็กเงื่อนไขให้น้องแล้วนะคะ กำหนด Condition if if นะคะ แล้วก็ปีกกา ปีกกาเปิด ไหนล่ะ เห็นไหมคะ มันจะมีปีกกาเปิดปุ๊บ มันจะมาอัตโนมัติ อย่าไปลบออกนะเด็ก ๆ เพราะไม่อย่างนั้น พอเวลใส่นี่ เวลาใส่ไม่ครบมันจะขึ้น Error ไง นะคะ พอเรา Run โปรแกรม มันจะขึ้น Errเพราะฉะนั้น มันใส่มา ก็ไม่ต้องไปลบมัน แล้วก็ () มาโดยอัตโนมัติเหมือนเดิมใส่วงเล็บเปิดนะคะ ค่า x กำหนดให้ x เครื่องหมายตกใจไหม เครื่องหมายตกใจไม่เท่ากับ ของ... คือในภาษาคอมพิวเตอร์ เครื่องหมายนี้ใส่เครื่องหมายตกใจกับเครื่องหมายเท่ากับ มันจะเป็นไม่เท่ากับ หาไม่เจอ ไม่ค่อยพิมพ์ อย่างนี้นะคะ ไม่เท่ากับ ให้ x ไม่เท่ากับ 0 ไม่ได้เริ่มที่ 0 เส้น เส้นตรง ๆ เจอแล้ว อยู่ตรง back/เห็นไหม ไอ้เส้นตรง ๆ 3 อันน่ะ อยู่ตรง \ นะเด็ก ๆ Z ก็ไม่เท่ากับ 0 เหมือนกัน ไม่เท่ากับ 0 เหมือนกันนะคะ ไม่เท่ากับนะคะ ไม่เท่ากับ 0 เหมือนกัน เจอไหม เจอไอ้เส้น ขีด ๆ ตรง ๆ นี่ ใส่ปีกกาอีก 1 ครั้งนะคะ หลังวบเล็บเรา หลังวงเล็บปกตินะ ตรงนี้จะมีปีกกา 2 อัน เพราะฉะนั้น ใส่อีก 1 ครั้งค่ะ แล้วกด Enter เรียก Animator ตัวเล็ห. . นะคะ เรามี SetFloat แล้วเราก็มี SetBoolean ด้วย .Set Set ใหญ่ แต่เป็น Bool ใส่เครื่องหมายคำพูด พูดผิด วงเล็บก่อนแล้วค่อน Single quote เครื่องหมายคำพูด ก็คือMoving Moving เรากำหนดค่า Moving True กับ False นะคะ เพราะฉะนั้น ค่า คำว่า "movingTrue ก่อน False ทีหลัง เพราะฉะนั้น ก็ Moving to Copy เหมือนเดิมค่ะ Boolean moving กับ Running เพราะฉะนั้น animator Set ก็ต้องมี 2 ตัว เห็นไหม ถ้า... ถ้ามันเป็นจริงเห็นไหมคะ มันจะมาทำอะไร มากำหนดให้ x เป็น 0 ก็คือจะวนลูปกลับไป คืนค่าเป็น 0 นะ เริ่มใหม่ วนกลับไปเริ่มใหม่ เห็นไหม แล้วทีนี้ แล้วถ้ามันไม่เป็นจริง เพราะฉะนั้น ตรงนี้ก็คือหลังวงเล็บนี้ ก็คือ Else if then else else ตรง else เพิ่มปีกกาอีก 1 ครั้งค่ะ แล้วก็ Enter ลงไปแถบคำสั่งหลังปีกกาด้วยนะคะ เอ้ย ไม่ใช่อยู่หลังปีกกา อยู่หลัง else นี่ ข้างบนเป็น True ใช่ไหม ข้างล่าง else ก๊อบมาเลย 2 บรรทัด เปลี่ยนแค่ true เปลี่ยนตรง true เป็น false แค่นั้นเอง Copy มาได้เลยทั้ง 2 เปลี่ยนเฉพาะตรงนี้ l-a-s-e flase F เออ ใช่ไหม f... เอาใหม่สิ f-a ใช่ไหม จำสลับ ขอโทษ จำสลับ ขอโทษทีเด็ก ๆ ในส่วนของ Update ทีนี้ดู เช็กอะไร เช็กปีกกานะคะ เราเปิด 1 อันที่... ที่ if นะ แล้วก็หลัง else อีก 1 ไม่ใช่ 2 1 เพราะ... เพราะนี่ปุ๊บ ก็เป็นของตัวนี้แล้วปิด - ลบออก 1 อันนะคะ ตัวนี้เปิด ปิดที่ตัวนี้ ตัวนี้เปิด เพราะตอนนี้ตัวที่จะปิดตรงนี้ 1 อัน ตรงนี้ 1 1 2 ไอ้นี่ออก ข้างล่างอีก 1 อันนี้ของตัวนี้ อันนี้เป็นของตัวนี้ อีกอันหนึ่งค่ะ ใส่แล้วก็ลืม แล้วก็ลบ แล้วก็มาไล่ใหม่ 1 คู่ 1 คู่แรก คือตัวในนี้ 1 2 3 โอเค ครบUpdate เสร็จแล้วนะคะ ต่อไปอันนี้ในส่วนของ Moving กับ Running เฉย ๆ อ๋อ เรายังมี Jump ใช่ไหม ใส่คอมเม้นเข้าไปก่อน ของ Jump ใส่เงื่อนไขเหมือนกัน if เหมือนกันนะคะ ปีกกาเปิด แล้วก็วงเล็บเปิด เอ้ย วงเล็บ วงเล็บนะคะ เรียกใช้ Character Controller ตัวเล็ก charactecontroller ตัวเล็ก . กำหนดให้เป็นisGround Ground ใช้ตัวใหญ่ ใส่ปีกกาเปิดอีก 1 ครั้งนะคะ ใส่ปีกกาเปิดอีก 1 ครั้งนะคะ เรียกใช้ moveDirection ตัวเล็ก= new ค่าใหม่เป็น... Vector Vector ใหญ่ vector3 นั่นเอง new vector3ในวงเล็บ วงเล็บเปิด วงเล็บปิด Input ใหญ่ input อย่างเดียวนะคะ Input ใหญ่ Input. แล้วก็วงเล็บเปิด Single quote เครื่องหมายคำพูด Horizontal H-o นะลูก H-oหลังวงเล็บปิดตัวที่ 2 นะคะ เครื่องหมาย...กำหนดเป็น 0.0.0 f, เหมือนเดิมนะคะ แล้วก็ก๊อบตรง... ก๊อบตั้งแต่ Input นี่ เปลี่ยนจาก Horizontal เป็น Vertical เป็น Horizontal เปลี่ยน เห็นหมดไหมบรรทัดนี้โอเคไหมคะ ไซซ์เท่านี้เห็นหรือเปล่า กลัวเห็นไม่เต็มบรรทัด ก็เลย... ดูได้ไหม โอเค แล้วก็ปิดหลังวงเล็บปิดนะ ใส่ Sแล้วก็ Enter แล้วก็แล้วก็ Tab เข้าไปนะคะ move Directionตัวเล็ก เลือก Moveกนะคะ + วรรคเครื่องหมาย + แล้วก็เท่ากับ speed ตัวเล็กอย่างนี้นะคะ เลือก speed ตัวเล็ก แล้วก็ปิดด้วย ; ;เรียก Character Controller ตัวเล็ก .Move...ตัวใหญ่นะ วงเล็บเปิด วงเล็บปิด เรียกใช้ moveDirection โอเค เดี๋ยว ๆ ๆ เอาใหม่ เอาใหม่ Character Controller .Move ใหญ่ก่อน แล้วก็วงเล็บเปิด วงเล็บปิด moveDirection ตัวเล็ก ไม่อย่างนั้นเดี๋ยวมันไปลบข้างหน้า ต้องทำเป็นขยัก ๆ แล้วก็คูณ คูณกับ /ก็คือ * ไปไหนแล้ว คูณกับอะไร time ที่เรา... prime Time ตัวใหญ่ที่เรากำหนดไว้ แล้วก็ . detailTime นะคะ วงเล็บปิด แล้วก็ ;โอเค ของ Update เดี๋ยวเช็กก่อนนะ update เราเริ่มที่ Float เด็ก ๆ จัดหน่อยนะคะ เพระว่า Update มันเริ่ม เพราะฉะนั้น Float เราต้องเขยิบไป Tab เข้าไปค่ะ จะได้เช็กง่าย ๆ เป็นย่อยของตัวไหน ปิด 1 ปีกกกาหายไปอันหนึ่งโอเค น่าจะ... โอเคนะคะ เหลืออีกนิดหนึ่ง จะเสร็จแล้ว จะเสร็จแล้ว ทำให้เสร็จวันนี้ Run แล้วเกิด Bug แล้วเราค่อยไปแก้ หายไปไหนแล้ว เดี๋ยว ๆ ๆ กดผิดอัน อย่าลืม Save นะเด็ก ๆ นึกว่าหาย กดผิดชีวิตเปลี่ยนเลย มี 2 อัน เดี๋ยวไปปิดตัวนี้ก่อน ตัวนี้ของเรา ตัวนี้ล่ะ มา โอเค เพิ่ม เพิ่มอีก 2 ส่วนนะคะ void ต่อจากบรรทัดนี้นี่ไง มันก็เข้ามาอยู่ในนี้เองอัตโนมัตินะคะ แต่เด็ก ๆ ต้อง Save ก่อนนะ ยัง ๆ ๆ ยังไม่หมด อีก 2 อีก 2 ขยักนะคะ นี่ ยังเหลือ update Movement ก่อน อันนี้อัปเดตธรรมดา void ค่ะ คลิกเลือก Void อะไร เราจะ Update Movemont วงเล็บเปิด วงเล็บปิด แล้วก็ { เรียกใช้ Vector3 เอ้ย VectorPmotion motion = inputvec ตัวนี้นะคะ ที่เราประกาศไว้แล้ว แล้วก็ปิดครับ แล้วก็ motion motion ที่เราพิมพ์ไปเมื่อกี้นี้ คูณ * * แล้วก็ = วงเล็บเปิด วงเล็บปิด มองไม่เห็นเลย Math ตัวใหญ่นะคะ Match Match นี่ Math แล้วก็ f. .Abs แล้วก็วงเล็บเปิด inputinoutvec ตัวนี้เรานะคะ ที่เราไอ้นี่ไว้ inputVec inputVec.x x เล็กที่ประกาศไว้ใน Floatวรรค == 1 แล้วก็เครื่องหมาย && 2 ที แล้วก็ Matchf อีกทีหนึ่ง mathf.Abs เหมือนเดิม ในวงเล็บ Inputvec.z z เล็กนะคะ == 1 แล้วก็ตามด้วยเครื่องหมายคำถาม เครื่องหมายคำถามอยู่ไหนเด็ก ๆ เสร็จแล้ว .7f: 1 แล้วก็ปิดนะคะ บรรทัดนี้ยาวหน่อยเช็กอะไร เช็ก inputvector เป็น x นะคะ กับ z ตัวอื่น... พอเราประกาศ void ตัวนี้เสร็จ เด็ก ๆ Copy ตรงนี้ Movement ไปเรียกใช้ต่อจาก Character Controller ได้เลย เห็นไหมคะ อย่าลืมใส่อะไร ; ตอนเรียก เวลาเรียกเราต้องมี...นะคะ เหลืออีกอันหนึ่ง เราจะ Update อีกตัวหนึ่งนะ Running ใช่ไหม เหลือ Running Ctrl + S บ่อย ๆ หน่อยเด้อ Save เด้อ หายมาแล้วจะร้องไห้ move แล้ว void อีกตัวหนึ่งค่ะ เพิ่ม void เหมือนเดิม ตัวนี้ชื่อว่า Rotation rotate ชื่อยาวหน่อยนะ rotateTowordmovement วงเล็บเปิด วงเล็บปิด เป็นคลาส แล้วก็ปีกกาเปิด โอเค กำหนดเงื่อนไขด้วย If ค่ะ ifif ในวงเล็บ inputVec เลือก InputVec ไม่เท่ากับ ไม่เท่ากับ ไม่เท่ากับ... กดผิด ไปไสล่ะ != Vector3 Enter เลย .zero แล้วก็ปีกกาเปิด 1 ตัว Transform transform ถ้าดู Transformer จะรู้ Transform คืออะไร .Rotation= guaquaQuatenion i-o-n . sSlerpSlerp วงเล็บเปิด วงเล็บปิด transform คลิกได้เลย transform แล้วก็Quatenion คลิกได้เลย Quatenion ได้เลย เติม r เข้าไป .L ตัวใหญ่ l-o-o-k Rotation ตัวใหญ่ Rotationวงเล็บเปิด เลือกได้เลย โอเคค่ะ โอเค ขอบคุณพี่ล่ามค่ะสำหรับวันนี้ ขอบคุณค่ะ เดี๋ยวเราคีย์ต่อของเรา สัปดาห์หน้เราจะได้ไม่ต้องไอ้นี้ขอบคุณพี่ล่ามค่ะ [สิ้นสุดการถอดความ]