(อาจารย์สุธิรา) ทีนี้ให้เด็ก ๆ เช็กว่าตรง Hierarchy กับใน Model นะคะ เราจะต้องมี Player ที่เราสร้างไว้นะคะ ถ้า Player ในตรงนี้ถ้าดูใน Scene ก็คือตัวนี้ เจ้าตัวนี้นะคะ ก็คือตัว... ตัว Amy ของเรานั่นเองนะคะ ทีนี้สิ่งที่เราจะทำต่อมา ก็คือเราจะมากำหนดค่า Parameter นะคะ เรามาที่ Animator ที่เราสร้างเห็นไหมคะเด็ก ๆ Animator ตัวนี้นะคะ มันก็จะขึ้นหน้าต่างที่มี Pop up คำว่า... ตัวนี้ขึ้นมาไหมเด็ก ๆ ที่มีเหมือน... เหมือนปุ่มสีเขียว สีอะไรอย่างนี้ขึ้นมาใช่ไหมคะ เสร็จแล้วคลิกที่... ไม่ ๆ ให้... ให้ขึ้นอย่างนี้หรือยัง ยังไม่ขึ้น สัปดาห์ก่อนให้ทำแล้วไม่ใช่หรือ เกมมาอยู่นี่แล้ว Animator จะขึ้นก็ต่อเมื่อเขียนตัวนี้หรือยังคะ Scripts ไหนไปเปิดที่ Assets และก็ Scripts มี CharacterMovement หรือยัง อยู่ใน Assets น่ะ ให้สร้าง Folder ชื่อ Scripts นี่อย่างไร ใน Folder Assets ของเราที่สร้างไว้จะมี Game มี Model แล้วก็มี Scripts ไปที่ Folder ที่ชื่อ Scripts เข้าไปดูมีสัญลักษณ์ C# แล้วก็มีชื่อว่า CharacterMovement หรือยัง ถ้ามีแล้วลองดับเบิลคลิกเข้าไปที่ CharacterMovement ก่อน ให้มันเหมือนมัน Run พออันนี้เสร็จนะคะ เรามาดูที่ตัว Player เด็ก ๆ คลิก Player หรือยัง Player ที่ Hierarchy ก่อน แล้วก็ไปดูที่ Model ด้วย Player ที่ Model ด้วยสร้างหรือยังคะ ตรง Model นี่ต้องสร้าง Player ขึ้นมาอีกตัวหนึ่งมันถึงจะมีตัวนี้ขึ้นมา ใน Model จะมี non-flying non-idle non... ขึ้นแล้วใช่ไหม ของใครยังไม่ขึ้นอีก ไปดูให้เพื่อนด้วย ใครยังไม่ขึ้นดูให้เพื่อนด้วย ดูให้เพื่อนด้วย เพราะว่าว่าสัปดาห์ที่แล้วสอนไปแล้วไหม เห็นไหม ดูดี ๆ นะคะ ต้องเลือกก่อน ต้องมาเลือกนี่เหมือนเรามีอะไร non-idle ใช่ไหม แล้วก็มีอะไรอีก ก็ Running ใช่ไหมคะ เหมือน Running นี่ คลิกขวาแล้วก็ Create From นะคะ ของเด็ก ๆ ขึ้นมามีกี่ตัว 3 ตัวอย่างนี้ใช่ไหม 1 2 3 นี่เห็นหรือยัง ลากจากนี่ อ้าว เดี๋ยวแม่ลบก่อน ดูนะ ตรง Entry ใช่ไหม ที่เราจะเชื่อมโยง ถ้ายังไม่เชื่อมโยง... ดูนะคะ เราจะต้องไป... ไปที่ Model ใช่ไหม Model เราจะมี non-running กับ non-idle Idle ก็คือยืนนิ่ง ๆ จะเอา Idle มาก่อน คลิกที่ non-idle แล้วก็ลาก คลิกค้างไว้ลากมาวาง โอเคไหม และก็อีกอันหนึ่ง Running ของเรามี Running เรามี 2 ตัว เดี๋ยว ๆ เดี๋ยวจะพาทำว่าเชื่อมอย่างไร ตัวนี้นะ ดูนะคะ ที่... ที่ Idle เราน่ะ ตรงนี้เราตั้งชื่อ ก็คือเป็น Idle I-D-L-E ใช่ไหม ส่วน Running เอ้ย เลือกผิดขอโทษ อันแรกนี่ ของเราชื่อตัวแรกกดผิดอันใช่ไหม ดูดี ๆ นึกออกนะ ตอนเราเอามาใช่ไหม ตอนเราลากมา เดี๋ยวลบก่อน เดี๋ยวจะงง ไม่ใช่ว่าลากมาลาก Idle มา แต่ไปตั้งชื่อ Run อย่างนี้ก็ไม่ใช่นะ อันนี้พอลากมาคลิกตรงนี้คลิกที่ปุ่มมันน่ะ แล้วก็มาตั้งชื่อให้มันเป็น Idle I-D-L-E อันนี้คือ Idle เห็นไหมปุ่มก็จะเป็นคำว่า "Idle" เหมือนกัน เสร็จแล้ว Running ก็เหมือนกัน Running เราก็คลิกที่ปุ่มมันแล้วก็ตั้งชื่อเป็น Running R-U-N-N-I-N-G Running เห็นไหมคะ เราก็จะมีตัวนี้ 2 อันแล้ว Exit เอาลงมาก่อน ยังไม่ต้องใช้อะไรน้อง เลื่อนขึ้นไปปรับได้ ปรับได้ โอเคนะ ทีนี้จะมากำหนดค่า Parameter พร้อมไปต่อไหมคะ ตอนนี้เด็ก ๆ ได้... ได้ Idle กับ Running หรือยังคะ อ๋อ เดี๋ยวนะ ลืม แล้วก็กำหนดค่าให้น้องด้วย มาตรง Idle นะ แล้วจิ้มเข้าไปตรง... ตรง... ตรงนี้นะ ตรง Idle เรานี่ มันจะมีสามเหลี่ยมใช่ไหม เราจิ้มให้มันขยายออกมาอีกชั้นหนึ่งเห็นไหม มันก็จะมีข้างใน นี่ ๆ คลิกตรงสามเหลี่ยมให้มันจิ้มลงมา แต่ต้องสร้างก่อนนะ ไม่สร้างมัน... ทีนี้มากำหนดค่า Parameter นะคะ ตัวแรกเราคลิกที่ Idle ก่อน เห็นไหม เห็นตรงนี้ไหม Parameter นี่เห็นไหมคะ มันจะมี Layers นะ กับ Parameter คลิกที่ Parameter ค่ะ เห็นไหมมันจะมี 2 ตัวใช่ไหม ตรง Layers เราจะกำหนด Parameter ให้ Idle เรานะคะ เลือกดูดี ๆ นะเด็ก ๆ ว่าตอนนี้อยู่ตำแหน่งของ Parameter หรือ Layers เห็นไหมคะ บอกแล้วเราจะกำหนดค่า Parameter เพราะฉะนั้น เราต้องคลิกที่ Parameter นะคะ แล้วก็คลิก + กดที่เครื่องหมาย + เห็นไหมคะ ตัวแรกที่เราจะใส่ ก็คือ Float กำหนด เหมือนตั้งชื่อตัวแปร หรือประกาศตัวแปรอย่างนี้ ชื่อของมันก็คือ... ตั้งชื่อนะคะ Input พิมพ์คำว่า "Input" นะคะ แล้วก็เว้นวรรค 1 อัน 1 ครั้ง กด Spacebar 1 ครั้ง แล้วก็กดตัว X ตัว X นี่ให้เป็นตัวใหญ่นะ แกน X แกน Y เราน่ะ เพราะฉะนั้น ให้เป็นตัวใหญ่ วรรคก่อนและก็กดตัว X เห็นไหมคะ เพิ่มอีกค่ะ เพิ่ม X X เพิ่มอีก 1 อัน กดเพิ่มเหมือนเดิมทำเหมือนเดิม Float เหมือนเดิมนะคะ เป็น Input Z ค่ะ Z ก็ตัวใหญ่นะคะ ตัวนี้มันจะเป็นตัวแปร เพราะฉะนั้น เด็ก ๆ ต้องจำด้วยนะ X เราใช้ตัวใหญ่ Z เราใช้ตัวใหญ่ คำว่า "Input" เรามีเว้นวรรคนะคะ เราประกาศตัวแปร 2 ตัว มี Float กับ... เอ้ย มี Input X กับ Input Z ทีนี้กำหนด Boolean ให้น้องก่อน คลิกเครื่องหมาย + เหมือนเดิม Boolean ก็คือ B-O-O-L ตัวนี้นะคะ Bool นี่ Running ใช้คำว่า "Running" และก็อีกตัวหนึ่ง Boolean อีกตัวหนึ่ง 2 ตัว เอามีวิ่งกับมี Move Moving Moving นะคะ M-O... เรามา... เรามาจิ้มที่ Idle เรา คลิกขวาแล้วก็เลือก Make Transition เห็นไหมมันจะมีลูกศรมา ลากลงมาใส่อะไรคะ ลากลงมาใส่ Run ของเราจิ้มจุ่มลงไป เห็นไหม Make Transition ก็คือสร้างการเชื่อมโยงใช่ไหมคะ ดูใหม่นะ ตอนนี้ ที่ Idle กับ Running ไม่มีการเชื่อมโยงใช่ไหม เราคลิกที่ Idle ก่อนแล้วก็คลิกขวา เห็นไหมคะ มันจะมีคำว่า "Make Transition" คลิก Make Transition ลากออกมาจะเห็น... เห็นไหม เห็นลูกศรคลิกใส่ไปใส่ที่ Running เพราะฉะนั้น เราต้องการเชื่อม หรือ... โอเคนะคะ เมื่อเชื่อมมาจาก Running แล้ว Running ก็ต้องโยงกลับไปถูกไหมคะเด็ก ๆ แล้วดูที่... ให้เด็ก ๆ คลิกที่เส้นที่เราโยงมานะ ดูตรงนี้ตำแหน่งนี้เอาเครื่องหมายถูกที่ Has Exit Time นี่ออก ก็คือเราจะไม่... ไม่ออกเมื่อถึงเวลาเห็นไหม เอาออกก่อนนะคะ เพราะเราต้องการให้มันวนลูปน่ะ มีการวนลูปนะคะ ทำงานแบบวนลูปนี่ เราติ๊กตัวนี้ออก ติ๊กเอาเครื่องหมายถูกออกนะ แล้วก็มาที่ Condition ตรงนี้นะ เห็นไหมคะ มีเครื่องหมาย + ใส่ + เข้าไป เพิ่ม ก็คือเราจะเพิ่มอะไร เพิ่ม... ไม่ใช่สิ เราก็จะบอกว่าเมื่อมีการวิ่ง Running เราเลือก Boolean Running เป็นจริงเห็นไหมคะ แล้วก็อีกตัวหนึ่งเพิ่มอีกตัวหนึ่ง Moving Moving ก็ต้องเป็นจริง ก็คือกำหนดค่าเริ่มต้นว่าเมื่อเป็นจริงถึงจะทำงานเห็นไหมคะ เพราะฉะนั้น Running กับ Moving จะต้องเป็นจริงก่อนนะคะ เพราะตอนนี้เรากำหนดค่าให้ Idle นะ เราไม่ได้กำหนดค่าให้ Running โอเคนะคะ Idle ได้แล้วนะ อันนี้เห็นไหม การเชื่อมโยงมันก็จะโยงให้เห็นว่าตรงชื่อมันเห็นไหม Idle ไปที่ Running ทีนี้เรามาคลิกที่ Running นะคะ เราจะเชื่อมโยงกับ... ทำเหมือนเดิม Make Transition เหมือนเดิม แล้วก็โยงกลับคืนไป แล้วก็มาคลิกเลือกที่เส้นที่เราโยงจาก Running ขึ้นไปหา Idle นะคะ ทำเหมือนกันเอา Has Exit Time ออกเหมือนเดิม แล้วก็กลับมาที่ Condition เมื่อกี้ตอนขา... ขามาจาก Idle เป็น true เพราะฉะนั้น ขากลับเราก็จะต้องเป็นตรงกันข้ามนะคะเด็ก ๆ Running เราก็จะเปลี่ยนเป็น false true เป็น false นะคะ Moving ก็เหมือนกัน Moving ก็เป็น false เห็นไหมคะ คืนค่า เริ่ม... ค่าเริ่มต้น ค่านี้ คือพอเช็กค่าถ้า... ถ้าเป็นจริงทำ ไม่จริงไปไหนอะไรอย่างนี้ เพราะฉะนั้น Condition ก็คือเงื่อนไข หรือการตัดสินใจนี่ก็จะมี 2 ค่า ก็คือ true กับ false นะคะ เป็นจริงทำอะไร ไม่จริงทำอะไร โอเคไหม เด็ก ๆ จะมีเส้น 2 เส้นนี่ ลองกด Play ดูสิคะ เขาบอกให้เราไปลากน้อง มันอยู่ไหนนะ มันก็จะวนนี่ล่ะ วนกันไปวนกันมาอยู่ 2 อันนี่ล่ะ จาก Idle ไปหา... Player มันไปอยู่ใน Running เหรอ เดี๋ยวค่อยดูต่อเพราะตอนต่อไปยาวมากขอบอก เพราะฉะนั้น ตั้งใจดี ๆ นะคะ เพราะเราจะต้องมาเขียน Script อีก โอเคหรือยัง ตอนนี้เด็ก ๆ ได้ Idle แล้วก็มีการเชื่อมโยงจาก Idle มา Running แล้วก็เชื่อมกลับจาก Running ไป Idle นะคะ ก็คือให้มันวนลูปวิ่งแล้วหยุด หยุดแล้ววิ่งอย่างนี้นึกออกนะ ทีนี้สิ่งที่เราจะต้องทำต่อมาให้ไปที่ Assets Scripts ของเรา เข้าไปที่ Scripts เห็นไหมคะ เจอหรือยัง ตอนนี้ Running Running to Idle ของตัวลาก เหมือนกันนะคะ ตอน Idle to Running โอเค ตัวนี้มัน... ดูนะคะ เวลาเราจะดูตรงนี้ เด็ก ๆ ดูตอนที่ Idle... เอ้ย Running to Idle น่ะ มันจะมีตรงนี้ใช่ไหมคะ ให้เด็ก ๆ คลิก Player ตรง Hierarchy นี่ ลากไปวางใน Preview นะคะ ตัวนี้ถึงจะขึ้นนะเด็ก ๆ คลิกที่การเชื่อมโยงของเราน่ะ เห็นไหมแล้วลาก... ลาก Player นะคะ คลิกค้างไว้แล้วลากมาใส่ตรง Preview แล้วกด Play ดูนี่น้องวิ่งไปแล้วก็จะวิ่งกลับคืน จังหวะเวลาเราสามารถปรับได้นะ อันนี้เพราะเราตั้งไว้น้อยนะ 0. เท่าไรเอง เดี๋ยวค่อยไปเพิ่มอันนี้ดูก่อนว่าลักษณะการวิ่งกับหยุดเขาเป็นอย่างไร แล้วก็ 1. ก็คือตัว Model ที่เราเอามาด้วยจำได้นะ ตอนที่เราไปเลือกจาก Maximo น่ะค่ะ แสดงว่าตัวนี้ที่แม่เลือกมามันวิ่งแค่จังหวะเดียว เพราะมันจะมีเห็นไหมคะ จาก Model ที่เราเลือกมาบางตัวมันวิ่งวนก็มี นั่นก็คือแล้วแต่เราเลือกว่าตัวที่เราจะเอามาใช้น่ะ เป็นอย่างไร โอเค ต่อไป ต่อไปนะคะ เราก็จะมาที่ตัวนี้ Player ของเราเห็นไหมคะ Player ที่อยู่ที่ Hierarchy นะคะ อย่าลืมว่าเรามี Player อยู่หลายส่วน ให้ดูว่าแม่เลือกตรงไหนด้วย แล้ว... แล้วก็ Assets Scripts เห็นไหมคะ เข้าไปใน Scripts ไว้ด้วย เข้าไปใน Scripts ก่อน เข้าไปก่อน ให้มันขึ้นอย่างนี้นะ แล้วก็จิ้มที่ Player ใน Hierarchy เราให้มันขึ้นอย่างนี้เห็นไหมคะ แล้วก็คลิกไปวาง ให้วางต่อจาก... เดี๋ยวนะ Capsule นี่เห็นไหม เห็น Capsule แล้วนะ เอาไปวางลากนี่นะคะ ไปใส่... ลาก Script ที่เราสร้างไว้ CharacterMovement น่ะค่ะ เห็นไหม เห็นหรือยัง ลากมาวางอย่างนี้ ใคร... ใครยังไม่ขึ้นแบบนี้ เห็นไหมแต่เดิมที่เรามี... เรามี Character Controller มี Capsule Controller ใช่ไหมคะ ใน Player เราน่ะ ใน Player ที่เราสร้างไว้ Player ที่ Hierarchy ที่เราสร้างไว้เห็นไหมคะ แล้วเรามาลาก CharacterMovement เป็น Script ที่เราสร้างขึ้นนี่เอามาใส่ต่อ ต่อท้าย Capsule Collider นะคะ ใครยังไม่ขึ้นแบบนี้บ้าง ขึ้นหมดหรือยัง ได้หมดแล้วนะคะ ไปต่อนะคะ ดับเบิลคลิกเลย ไปไหนแล้ว เราไม่มี C# เหรอ เสร็จ ไปที่ Web Browser นะคะ C# เด็ก ๆ Free Download C# ของเรา Windows นะ เราก็ For Windows เลยค่ะ For Windows ด้วยเลย For Windows Enter ก็มีของ Microsoft ทำไมไม่ขึ้น Free Microsoft เอาอันไหนดี อันไหนก็ได้ล่ะนะ เอาตัว Free นี่ล่ะ Free Download ก็ของ Microsoft เหมือนกันเลย ไม่ต้อง Microsoft ได้ไหมน่ะ อยากได้ออนไลน์ เอา C#.net เหรอ มันขึ้นอะไร เดี๋ยวนะ ใช้ตัวนี้ก็ได้ เจอตัวนี้ก็เอาตัวนี้ล่ะ เอาตัวแรกเลยขึ้นเหมือนกันหรือเปล่า For Windows ก่อน เราเลือกอันแรกนะคะ Free Download เลยนี่ 2022 เหรอ แล้วก็ Install เรียบร้อยนะเด็ก ๆ น่าจะเร็วอยู่หรอกของ Microsoft ไม่น่าช้า น่าจะเร็วอยู่ เดี๋ยวดูนะคะ ในส่วนของที่เราจะเขียน Code นะคะ ส่วนแรก ก็คือเราจะต้องมาทำการประกาศตัวแปรให้น้องก่อน ไม่ Sign in ได้ไหม แม่ไม่ได้เลือก Sign in โอเค Install เลย คลิก Install เลย คลิก Install เลยนะคะเด็ก ๆ เดี๋ยวมันทำให้เองไม่ต้องไปเลือกอะไร พอมันขึ้นอย่างนี้แล้วน่ะ นี่เสร็จแล้วก็ปิดได้นะคะ แล้วก็มาที่ Unity เรา แล้วก็เห็นไหม ตรง CharacterMovement เราก็คลิก Open พอคลิก Open มันก็จะไปเปิด มันอาจจะยังไม่เปิดมันจะถามก็ไปเลือก Program มันน่ะ ใครโหลดเสร็จแล้วเปิดหน้านี้นะคะ แล้วก็ให้พักเบรกก่อน ไปเข้าห้องน้ำได้ให้ขึ้นหน้า C# ไว้ แม่ก็จะเบรกเหมือนกัน โอเค และจะได้มาต่อเรื่องชวนปวดหัว โอเคเป็นอย่างไร เปิดได้หมดหรือยัง เดี๋ยวนะคะ อีก... น่าจะอีกเครื่องหนึ่ง โอเคนะ อย่างนั้นเดี๋ยวจะเปลี่ยนสีเป็นสีดำ สีดำกับสีขาวเด็ก ๆ เอาสีไหน อันนี้สีดำนะ เดี๋ยวแม่เปลี่ยนให้ดูก่อนชอบอันไหน ดำกับขาวเอาอันไหนลูก มาร์กกี้เอาดำ ดำหรือขาว สีดำนะ โอเค โอเค อย่างนั้น เดี๋ยวจะเปลี่ยนโหมดเป็นสีดำให้ เอาเป็นดำนะ ตกลง... ตกลงขาว หรือดำ เอาขาวนะ ดูดี ๆ นะ เอาขาวนะ โอเคนะ ตัวแรกที่เราจะเริ่มนะคะ อยู่ตรงนี้ตำแหน่งนี้ เดี๋ยวรอเพื่อนอีกแป๊บหนึ่งรอเพื่อนก่อน คือ ตอนเด็ก ๆ พิมพ์น่ะ สีดำก็ได้ แต่คือถามว่าที่ดูจากหน้าจอใหญ่น่ะ เห็น Code น่ะ ให้มันเห็น Code ให้เลือกเอาสีอะไร เอาสีขาวนะ โอเคหรือยังคะ เหลือขององุ่นหรือ ของเต้นได้หรือยัง เครื่องกุ้งเต้นได้อยู่ใช่ไหม โอเค บรรทัดแรกนะคะ เราจะประกาศตัวแปร Animator รูปแบบการใช้ของ C# นี่ ดูนะคะ ตอนแรก Animator ที่เราพูดถึงนี่ จะเป็นพิมพ์ด้วยตัวพิมพ์ใหญ่นะ แล้วพอ animator ที่ 2 นี่ จะพิมพ์ด้วยตัวพิมพ์เล็กทั้งหมด ปิดด้วย ; เสมอนะคะ เพราะฉะนั้น บรรทัดแรกประกาศตัวแปร ให้ animator animator ชื่อ animator เห็นชัดไหม เพิ่ม Size อีกหรือเปล่าคะ ชัดอยู่นะ อย่างนั้น 200 แล้วนะคะ ไม่เพิ่มแล้วนะ ตอนนี้ 2 บรรทัดเสร็จหรือยัง บรรทัดแรก animator animator สะกดให้มันถูกด้วยนะ เดี๋ยวเรียกใช้แล้วไม่ตรงขึ้น Error แล้วจะมาโทษกันเด้อ ตอนนี้ยังไม่ได้ให้เขียนเองให้เขียนตาม เพราะฉะนั้น ต้องสะกดให้ถูกนะคะ เพราะเวลาเรียกจะได้... มันก็จะได้หาถูก CharacterController ก็ต้องเหมือนกัน แต่เปลี่ยนแค่ตัวกำหนดค่า แล้วก็ตัวไอ้นี่มันเป็นตัวเล็กนะคะ ตัวชื่อตัวแปรน่ะ ตัวใหญ่ ดูกำหนดค่าให้อันตัวนี้หมายถึง การ... ดูนะคะ บรรทัดต่อไปเราจะกำหนดค่าให้ด้วย ตัวนี้จะเป็นตัวแปรที่ชื่อว่า Speed Speed ก็คือความเร็วนั่นเองนะคะ ใช้คำสั่ง Public เห็นไหมพอพิมพ์ตัว P ปุ๊บ Public จะขึ้นมาเด็ก ๆ ดับเบิลคลิกได้เลย จะได้ไม่ต้องพิมพ์ผิดจะไม่เกิดปัญหาพิมพ์ผิดนะคะ ดูนะ ดูวิธีการนะ Public P เห็นไหมคะ แล้วเลือกที่คำว่า "Public" ดับเบิลคลิกนะคะ 2 ทีกดดับเบิลคลิก 2 ที คำว่า "Public" ก็จะขึ้นมามันจะไม่เกิดปัญหาว่าพิมพ์ผิด ตัวต่อไปวรรค Float F-L-O-A-T มีคำว่า "Float" ขึ้นมาดับเบิลคลิกได้เลย Public Float นะคะ แล้วก็ตามด้วยชื่อตัวแปร Speed Speed นะคะ Speed วรรคใส่เครื่องหมายเท่ากับ 6.0 ของเขาจะมี F ต่อท้าย 6 อย่าไปกดนะ อย่างนี้ไม่กด เพราะอันนี้ของเราเป็นเลข 0 นะคะ ไม่ใช่ตัว O ไม่ใช่ O-f Of นะ ไม่ต้องไปกดนะ อย่าลืมปิดด้วยอะไรคะ ; ทุกครั้งนะคะ ปิดคำสั่ง มี Speed แล้วมีอะไรอีก ทำเหมือนกันเลยนะ เพราะฉะนั้น ก๊อบฯ ได้ ก๊อบปี้ได้นะ ให้ก๊อบปี้เราจะมาแก้แค่ตัวหลังนะ ไม่เอาหมดดีกว่า เดี๋ยวจะงงในการแก้ เอากอปแค่ Public Float พอ Ctrl+C จะได้ไม่พิมพ์ผิด กันปัญหาพิมพ์ผิดนะคะ Ctrl+V เมื่อกี้ Speed ความเร็ว ทีนี้การหมุน Rotation R-o Rotate เราจะเอาเป็น Rotate นะ Rotation Rotation อะไร rotationSpeed ด้วยใส่คำว่า "Speed" เข้าไปด้วย เป็นความเร็วน่ะ อันนี้ตัวแปรพิมพ์ตาม พิมพ์ตามนะคะ ชื่อตัวแปรตัวนี้จะได้เหมือนกัน กำหนดค่าให้ = 25 แล้วก็ปิดด้วย ; ค่ะ เรายังเหลือความเร็วการหมุน หรือการวิ่งวน มีกระโดด มีกระโดดแล้วก็เพิ่ม... เพิ่ม Public Float อีก 1 ตัวนะคะ เพราะเราก๊อบปี้ Public Float ไว้แล้ว เพราะฉะนั้น เรากด Ctrl+V เพื่อวางได้เลย อันนี้ Jump กระโดด JumpSpeed = ให้เท่าไรดี เอาสัก 7.5 อันนี้มี f ด้วยนะคะ แล้วก็ปิดด้วย ; เหมือนเดิม มี... มีความเร็ว มีการหมุน มีการกระโดด ต่อไปเป็น Gravity การล่วง หรือการตก หรือแรงโน้มถ่วงน่ะนะ Gravity เหมือนเดิม... Public Float เหมือนเดิมนะคะ แล้วก็ Gravity เอาสัก 20 แล้วกัน 20.0f นะคะ แล้วก็ปิดด้วย ; ของเราดูจากตัวนี้เรานะคะ เราอยากให้น้องนี่ทำอะไรบ้าง เดินได้ วิ่งได้ กระโดดได้ หมุนได้ใช่ไหม เพราะฉะนั้น ก็เลยมาเขียน Script ควบคุมเขานะคะ เพราะฉะนั้น ก็ต้องกำหนดค่าให้เขาด้วยนะคะ ตอนนี้เราได้ Animator CharacterController มี Speed มี Rotation มี Jump มี Gravity แล้ว ยังมีนะคะ ประกาศค่าเยอะอยู่เพราะว่าตัว... ตัวการกระทำมันเยอะ จำได้นะ เรามีค่าในแกน X แกน Y พวกนี้นะ เพราะฉะนั้น เราจะประกาศตัวแปรตัวนี้ว่า Vector พิมพ์ด้วยตัวพิมพ์ใหญ่ตัว V นะคะ Vector V-E-C-T-O-R Vector แล้วก็วรรคตามด้วยตัว 3 เอ้ย ไม่วรรคสิ Vector3 เขา... เขาไม่วรรค เขาไม่วรรค Inputvec นะคะ Input ตัวนี้ใช่ Input อย่างนี้ และก็ตามด้วยคำว่า... และก็ ; แล้วกำหนดให้ Vector3 นี่ทำอะไร กำหนด Vector3 นะคะ Vector3 เลือกเลยตัวเดียวกัน กำหนดให้มัน Target Target InputVec Vec ในที่นี้คือ Vec ตัวใหญ่ใช้ Vec ใหญ่นะคะ จะได้รู้ ก็คือมาจาก Vector นั่นเอง Target TargetDirection D ตัวใหญ่ Direc แล้วก็ปิดด้วย ; ค่ะ ตัวสุดท้ายนะคะ Private Private อะไรบ้าง Private Vector3 Private Vector3 Vector3 Move MoveDirecter Direc จะกำหนดให้ Vector3 มีค่าเท่ากับ MoveDirection Direction = Vector3. นะคะ .zero Set ค่าให้เป็น 0 ปิดในส่วนของการประกาศตัวแปรต่าง ๆ เสร็จแล้วนะคะ โอเคไหม ใครยังพิมพ์ไม่เสร็จ ถึงนี้หรือยัง เดี๋ยวเราจะได้ไปต่อนะคะ ยังไม่เสร็จมันจะไปต่อไม่ได้ เสร็จ... เสร็จแล้ว 1 ส่วนนี่ Save ด้วยเพื่อความปลอดภัย File Save Save เลยนะคะ ต่อมาเราจะเข้ามาที่การสั่งให้มันทำงานแล้ว เห็นไหมคะ อยู่ใน void Start เริ่มที่ Start นะคะ เริ่มแล้วเราจะเริ่มแล้ว เริ่มด้วยอะไรก่อน ตัวใหญ่นะคะ Time เรียกใช้ Time Time.timeScale ใช้ตัวเล็ก กำหนดให้เวลาเริ่มที่ 1 เรียก animator animator ตัวเล็กนะคะ ไม่ใช่ animator ตัวใหญ่ animator เล็ก animator ดับเบิลคลิกไปเลย เพราะเราประกาศตัวแปรน้องไปแล้ว = ให้มัน GetComponent รับค่า Component GetComponent เครื่องหมาย... Animator ตัวใหญ่นะคะ ข้างใน แล้วก็วงเล็บเปิดวงเล็บปิด เอ้ย ไม่ใช่ปีกกา ขอโทษ ขอโทษ วงเล็บ วงเล็บ เผลอกดปีกกาตลอด แล้วก็ปิดด้วย ; เรียก characterController มาใช้นะคะ characterController ที่ขึ้นต้นด้วยตัวเล็ก ดับเบิลคลิกเลย เพราะเราประกาศไปแล้วอย่างนี้นะ ทำเหมือนกัน = GetComponent ดับเบิลคลิก เปลี่ยนตัวข้างในนะคะ เป็น CharacterController ตัวใหญ่ เห็นไหมมัน... มันเหมือนกันน่ะ แต่ตอน... ตัวนี้เรียก animator ตัวนี้เรียก CharacterController ในส่วนของ Start นะคะ มี 3 บรรทัด บรรทัดแรก timeScale = 1 กำหนดค่าให้เท่ากับ 1 animator กำหนดค่าให้เป็นค่าว่างนะคะ แล้วก็ CharacterController ก็กำหนดค่ารับค่า... รับค่า การรับค่าเป็นว่างไว้ก่อน โอเค ส่วนของการให้เริ่มต้น เสร็จหมดหรือยังคะ ใครยังไม่เสร็จ ยกมือ เสร็จแล้วนะ โอเค เสร็จแล้วนะคะ ทีนี้มาดูส่วนต่อมาส่วนของ Update เมื่อมีทุกครั้งนะคะ เวลาเราทำ Program เขียน Program นี่ มันจะมีส่วนของการ Update มันจะต้องมีการให้ Update นั่นนี่นู่น กำหนดให้มัน Update อะไรบ้าง Update จะยาวหน่อย โหลดนะคะ เลือกเลย Float อะไร Float ตัวแรก x = ค่า x มีค่าเท่ากับ... แย่แล้ว ลบนะคะ ลบและก็วงเล็บเปิด-ปิด 2 ครั้งวงเล็บเปิดวงเล็บปิดต้องมี 2 อันนะ ไม่ได้มีอันเดียว ให้ใส่ 2 ครั้งเลยจะได้ไม่ลืม ค่าแรก Input ใหญ่ Input ใหญ่นะคะ ไม่ใช่ในตัวนี้นะ Input ด้วยตัวพิมพ์ใหญ่ Input ตัวใหญ่นะคะ ตามด้วย Dot .Get Get ตัวใหญ่นะคะ G GetAxis E... A X I S R A W Raw เอ้ย R ไม่ใช่ E ขอโทษที R นะคะ R A W ไปที่วงเล็บหลัง... อันนี้อยู่วงเล็บแรกนะ Input นี่ โอเคไหมคะ นี่อย่างนี้นะเด็ก ๆ ขอโทษ อันนี้ใส่เครื่องหมายคำพูดค่ะ Double Quote "Vertical" โอเค และก็ปิดด้วย ; Vertical ก็คือแนวตั้งนะ มี Vertical ก็ต้องมี Horizontal ก็คือแนวนอน มีแกน x และก็มีแกน z ก๊อบฯ เลย ก๊อบฯ ทั้งบรรทัดเลย เราจะเปลี่ยนแค่ตัว x กับตัว Vertical นะคะ เพราะฉะนั้น ก๊อบปี้ได้ค่ะ ก๊อบปี้แล้วก็วาง เปลี่ยนจาก x เป็น z แล้วก็เปลี่ยนจาก Vertical เป็น Horizontal เป็น Horizontal Herrizontal Herri แล้วก็พอบรรทัดที่ต่อมาเรียกใช้ InputVec InputVec ที่เราประกาศไว้ข้างบนนู่นนะคะ = New New อะไร Vector3 ค่ะ ให้... ให้ Vector3 เรียกใช้ Vector3 นะคะ ใน Vector3 เราก็คือแกนทั้ง 3 ของเราน่ะ มีแกน x แกน y และก็แกน z นะคะ กำหนดค่าที่แกน y เป็น 0 เอาใส่ 0 แทนตรงตำแหน่งของ y เห็นไหม แล้วก็ลบ y ออกนะคะเด็ก ๆ เพราะค่าตรง... อ๋อ แล้วตรงนี้บรรทัดนี้อันนี้ x มาเป็นลบ พอเป็น Input เอาลบออกนะคะ คลิกลบออก เพราะฉะนั้น วงเล็บเหลือ 1 อันก็ต้องลบออก 1 อันถูกไหมคะ ไปต่อนะคะ น่าจะทันอยู่เพราะส่วนใหญ่มัน... เรากำหนดตัวแปรไว้แล้วนะคะ เรียกใช้ตัวแปร animator ตัวเล็ก animator ตัวเล็กนะ Dot... .SetFloat Float F นะคะ F จะได้รู้ว่าเป็นคนละประโยค เวลาเขียนในภาษาอังกฤษเขาแยกคำโดยการใช้ตัวใหญ่มาคั่นเห็นไหม จะเป็นคำ ๆ SetFloat นะคะ เพราะเขียน Code นี่ ถ้า... ถ้าเว้นวรรคมันจะเป็นอีกคำเป็นอีกประโยค หรือคำสั่งหนึ่งไปเลย เพราะฉะนั้น... เพราะฉะนั้น ถ้าคำมันหลาย ๆ คำเขาก็ใช้ตัวใหญ่คั่นนะคะ วงเล็บเปิดวงเล็บปิดและก็เครื่องหมายคำพูด Double Quote ในเครื่องหมายคำพูดใส่คำว่า "Input" รับค่า เอา Input ตัวใหญ่อย่างนี้ได้เลยนะคะ Input แล้วก็ตามด้วย... Input อะไรนะ อ๋อ รับค่า X Input X X ใช้ X ใส่เครื่องหมาย , อันนี้ลืมอีกแล้ว และก็ z นะคะ ตัวแปร z และก็ปิดวง... วงเล็บปิดและก็ปิดด้วย ; มี Input X เราก็มี Input อะไรคะ Z ใช่ไหม เพราะฉะนั้น Copy ได้ Copy แล้วก็แก้ค่า X เป็น Z นะคะ ไม่ใช่แก้ค่า X สิเปลี่ยน... เปลี่ยน X เปลี่ยน Z มันไม่ใช่ค่าตัวนี้เป็นข้อความ ตัวนี้เป็น Input Z Z ค่าตรงนี้เป็น x เป็น... ตอน Input เป็นลบ ก็เป็น -x x อย่างนี้นะคะ โอเค แก้ตรงตัว x เป็นตัว z และก็แก้ค่า z เป็น -x ใส่อยู่ในวงเล็บด้วย มันจะเหมือนตัวบนนี้อย่างไร มันกำลังเรียก 2 ตัวนี้ Update ค่า 2 ตัวนี้อยู่นี่ ที่เรากำหนดไว้ กำหนด float x float z ไว้นี่ เพราะฉะนั้น เราจะต้องมาเช็กเงื่อนไขให้น้องแล้วนะคะ กำหนด Condition if if นะคะ แล้วก็ปีกกา ปีกกานะ ปีกกาเปิด ไหนล่ะ เห็นไหมคะ มันจะมีปีกกาเปิดปุ๊บ พอเราใส่ปีกกาเปิดปีกกาปิด จะมาอัตโนมัติอย่าไปลบออกนะเด็ก ๆ เพราะอย่างนั้น พอเวลาใส่นี่ ถ้าใส่ไม่ครบมันจะขึ้น Error ไงนะคะ พอเวลาเรา Run Program มันจะขึ้น Error เพราะฉะนั้น มันใส่มาก็ไม่ต้องไปลบมัน แล้วก็วงเล็บเปิดวงเล็บปิดมาโดยอัตโนมัติเหมือนเดิมใช้วงเล็บเปิดนะคะ ค่า x กำหนดให้ x เครื่องหมายตกใจนะ เครื่องหมายตกใจ ไม่เท่ากับของ... คือ ในภาษา Computer เครื่องหมายนี้ ก็คือใส่เครื่องหมายตกใจกับเครื่องหมายเท่ากับมันจะเป็นไม่เท่ากับ หาไม่เจอ ไม่ค่อยพิมพ์ อย่างนี้นะคะ ไม่เท่ากับ ให้ x ไม่เท่ากับ 0 ไม่ได้เริ่มที่ 0 เส้น... เส้นตรง ๆ อ๋อ เจอแล้วอยู่ตรง Back Slash เห็นไหมเส้นตรง ๆ 3 อันน่ะ อยู่ตรง Back Slash นะเด็ก ๆ z z ก็ไม่เท่ากับ 0 เหมือนกัน ไม่เท่ากับ 0 เหมือนกันนะคะ ไม่เท่ากับนะคะ ไม่เท่ากับ 0 เหมือนกัน เจอไหม เจอเส้นขีด ๆ ตรง ๆ นี่ ใส่ปีกกาอีก 1 ครั้งนะคะ หลังวงเล็บเรา หลังวงเล็บปกตินะ ตรงนี้จะมีปีกกา 2 อัน เพราะฉะนั้น ใส่อีก 1 ครั้งค่ะ แล้วกด Enter เรียก animator ตัวเล็กมา Dot... Dot นะคะ เรามี SetFloat แล้วเราก็มี SetBoolean ด้วย .Set Set ใหญ่ แต่เป็น B O O L ใส่เครื่องหมายคำพูด เอ้ย พูดผิดวงเล็บ วงเล็บก่อนแล้วก็ค่อย Single Quote นะคะ เครื่องหมายคำพูด ก็คือ Moving Moving Moving เรากำหนดค่า Moving true กับ false จำได้ไหมคะ นะคะ เพราะฉะนั้น ค่าคำว่า "Moving" แล้วก็ true ก่อน false ทีหลัง เพราะฉะนั้น ก็ Moving true ก๊อบปี้เหมือนเดิมค่ะ SetBoolean เพราะเรามี Moving กับอะไรคะ Moving กับ Running เพราะฉะนั้น animator Set ก็ต้องมี 2 ตัว เห็นไหม ถ้า... ถ้ามันเป็นจริงเห็นไหมคะ มันจะมาทำอะไร กำหนดให้ x เป็น 0 ก็คือมันจะวนลูปกลับไปคืนค่าเป็น 0 น่ะ เริ่มใหม่ วนกลับไปเริ่มใหม่เห็นไหม แล้วทีนี้แล้วถ้ามันไม่เป็นจริง เพราะฉะนั้นตรงนี้ ก็คือหลังวงเล็บนี้ ก็คือ else if then else นั่นเองนะคะ else ตรง else เพิ่มปีกกาอีก 1 ครั้งค่ะ แล้วก็ Enter ลงไป Tab คำสั่งหลัง Else มันต้องอยู่หลังปีกกาด้วยนะคะ เอ้ย ไม่ใช่อยู่หลังปีกกาอยู่หลัง else นะ ข้างบนเป็น true ใช่ไหม ข้างล่าง else ก็จะเป็นตรงกันข้าม ก๊อบฯ มาเลยทั้ง 2 อัน 2 บรรทัด เปลี่ยนแค่ true เปลี่ยนตรง true เป็น false แค่นั้นเองนะคะ ก๊อบ ฯ มาได้เลยทั้ง 2 เปลี่ยนเฉพาะตรงนี้ เพราะค่าที่เรากำหนดเห็นไหม F-L-A-S-T false หรือเราจะพิมพ์ผิด F ใช่ไหม F เอาใหม่สิ F-A ใช่ไหม ยังว่าอยู่ทำไมไม่เป็นตัวสีฟ้าจำสลับ ขอโทษทีเด็ก ๆ ในส่วนของ Update ทีนี้ดูเช็กอะไร เช็กปีกกานะคะ เราเปิด 1 อันที่... ที่ If นะ แล้วก็หลัง If อีก 1 ไม่ใช่ 2 1 เพราะ... เพราะนี่ปุ๊บ ก็เป็นของส่วนนี้แล้วปิด ลบ... ลบออก 1 อันนะคะ ตัวนี้เปิด-ปิดที่ตัวนี้ ตัวนี้เปิด พอตอนนี้ตัวที่จะปิดตรงนี้อีก 1 อัน นี่ตรงนี้ 1 1 2 เอาไปแล้วนี่ออก ข้างล่างอีก 1 อันนี้ปิดของตัวนี้ ตัวนี้ปิดของตัวนี้ อันนี้ปิด... อีกอันหนึ่งค่ะ เห็นไหมใส่แล้วก็ลืมและก็ลบแล้วต้องมาไล่ใหม่ 1 คู่ 1 คู่แรก คือ ตัวในนี้ 1 2 3 โอเค ครบ Update เสร็จแล้วนะคะ ต่อไป อันนี้ในส่วนของ Moving กับ Running เฉย ๆ อ๋อ เรายังมี Jump ใช่ไหม JumpSpeed นะคะ ใส่ Comment เข้าไปก่อนจะได้รู้ ตรงนี้เป็นส่วนของ Jump ใส่เงื่อนไขเหมือนกัน If เหมือนกันนะคะ ปีกกาเปิด แล้วก็วงเล็บเปิด วงเล็บค่ะ ขอโทษ ๆ วงเล็บนะคะ เรียกใช้ characterController ตัวเล็ก characterController ตัวเล็ก Dot กำหนดให้เป็น isGround isGround Ground ใช้ตัวใหญ่ ใส่ปีกกาเปิดอีก 1 ครั้งนะคะ เรียกใช้ moveDirection ตัวเล็ก = N-E-W ค่าใหม่เป็น Vector Vector ใหญ่ Vector3 นั่นเอง ถูกต้องแล้ว new Vector3 ในวงเล็บ วงเล็บเปิดวงเล็บปิด Input ใหญ่ Input อย่างเดียวนะคะ Input ใหญ่ Input. แล้วก็วงเล็บเปิด Single Quotes เครื่องหมายคำพูด Horizontal H-O นะลูก H-O... หลังวงเล็บปิดตัวที่ 2 นะคะ เครื่องหมาย... กำหนดเป็น 0. 0.0f , เหมือนเดิมนะคะ แล้วก็ก๊อบ ฯ ตรง... ก๊อบ ฯ ตั้งแต่ Input นี่ เปลี่ยนจาก Horizontal เปลี่ยน Vertical เปลี่ยน Horizontal ตัวหลังเป็น Vertical เห็นหมดไหมบรรทัดนี้... โอเคไหมคะ Size เท่านี้เห็นหรือเปล่า กลัวเห็นไม่เต็มบรรทัดก็เลย... ดูได้ไหม โอเค แล้วก็ปิดหลังวงเล็บปิดนะ ใส่ ; ค่ะ ก็ Enter แล้วก็ Tab เข้าไปนะคะ moveDirection ตัวเล็ก เลือก moveDirection ตัวเล็กนะคะ บวกวรรคเครื่องหมาย + แล้วก็ = Speed speed ตัวเล็กอย่างนี้นะคะ เลือก speed ตัวเล็ก แล้วก็ปิดด้วย ; เรียก characterController ตัวเล็ก .Move Move ตัวใหญ่ วงเล็บเปิดวงเล็บปิด เรียกใช้ moveDirection โอเค เดี๋ยว ๆ เดี๋ยวเอาใหม่ เอาใหม่ characterController .Move ใหญ่ก่อน และก็วงเล็บเปิดวงเล็บปิด moveDirection ตัวเล็ก ไม่อย่างนั้น เดี๋ยวมันไปลบ Move ข้างหน้านะคะ ต้อง... ต้องทำเป็นขยัก ๆ แล้วก็คูณ คูณกับ... คูณกับเครื่องหมายคูณ ก็คือ * ไปไหนแล้ว คูณกับอะไร Time ค่ะ Time ใหญ่ Time ที่เรา... Time Time ตัวใหญ่ที่เรากำหนดไว้แล้วก็ .detailTime detailTime นะคะ วงเล็บปิดแล้วก็ ; โอเค ขอ Update เช็ก... เดี๋ยวเช็กก่อนนะ Update เราเริ่มที่ Code เด็ก ๆ จัดหน่อยนะคะ เพราะว่า Update มันเริ่ม เพราะฉะนั้น Float เราต้องเขยิบไป Tab เข้าไปค่ะ จะได้เช็กง่าย ๆ เป็นย่อยของตัวไหน ส่วนไหน ปิด 1 อ่อ ปีกกาหายไปอันเหรอ โอเค น่าจะ... โอเคนะคะ เหลืออีกนิดหนึ่งจะเสร็จแล้ว จะเสร็จทำให้เสร็จวันนี้ Run แล้วเกิด Bug แล้วเราค่อยไปแก้ [เสียงหัวเราะ] (อาจารย์สุธิรา) หายไปไหนแล้ว เดี๋ยว ๆ ๆ โอ๊ย ตกใจเปิดผิดอัน อย่าลืม Save นะเด็ก ๆ นึกว่าหาย กดผิดชีวิตเปลี่ยนเลย [เสียงหัวเราะ] (อาจารย์สุธิรา) มี 2 อันเดี๋ยวไปปิดตัวนี้ก่อน ตัวนี้ของเรา ตัวนี้ล่ะ โอเค เพิ่ม... เพิ่มอีก 2 ส่วนนะคะ void ต่อจากบรรทัดนี้ นี่อย่างไรมันก็จะเข้ามาอยู่ในนี้เองอัตโนมัตินะคะ แต่เด็ก ๆ ต้อง Save ก่อนนะ ยัง ๆ ๆ ยังไม่หมด อีก 2 อีก 2... อีก 2 ขยับลูก อีกนิดหนึ่ง อีกนิดหนึ่ง นี่ยังเหลือ UpdateMovement ก่อน อันนี้ Update ธรรมดา void ค่ะ คลิกเลือก void อะไร เราจะ updateMovement วงเล็บเปิดวงเล็บปิด แล้วก็ปีกกาเปิด เรียกใช้ Vertex Vertex3 Vector3 Vertex ก็มา motion motion = inputVec inputVec ตัว... ตัวนี้นะคะ ที่เราประกาศไว้แล้ว แล้วก็ปิดค่ะ ก็ motion motion ที่เราพิมพ์ไว้เมื่อกี้นี้ คูณ * * แล้วก็ = วงเล็บเปิดวงเล็บปิด มองไม่เห็นเลย Mathf Mathf Math ตัวใหญ่นะคะ Math Math นี่ Math และก็ f. .Abs และก็วงเล็บเปิด input ค่ะ input inputVec ตัวนี้เรานะคะ ที่เรานี่ไว้ inputVec inputVec.x x x ที่ประกาศไว้นี่ใน Float น่ะ วรรค == 1 แล้วก็เครื่องหมาย & 2 ที แล้วก็ Mathf อีกทีหนึ่ง Mathf.Abs เหมือนเดิม ในวงเล็บ inputVec.z z นะคะ == 1 แล้วก็ตามด้วยเครื่องหมายคำถาม เครื่องหมายคำถาม อยู่ไหนเด็ก ๆ เจอแล้ว .7f:1 และก็ปิดนะคะ บรรทัดนี้ยาวหน่อย เช็กอะไร เช็ก inputVector เป็น x นะคะ กับ z ตัวอื่น... พอเราประกาศ void ตัวนี้เสร็จนะคะ เด็ก ๆ ก๊อบปี้ตรงนี้ updateMovement ไปเรียกใช้ต่อจาก characterController ได้เลย เห็นไหมคะ อย่าลืมใส่อะไร ; ตอนเรียกเวลาเรียกก็ต้องมีนะคะ เหลืออีกอันหนึ่ง เราจะ Update อีกตัวหนึ่งนะคะ อันนี้ Move วิ่งก็ Running ใช่ไหม เหลือ Running Ctrl+S บ่อย ๆ หน่อยเด้อ Save เด้อ Save เด้อ หายมาแล้วจะร้องไห้ Move แล้ว void อีกตัวหนึ่งค่ะ เพิ่มอีกครั้งหนึ่ง void เหมือนเดิม ตัวนี้ชื่อว่า Rotation Rotate ชื่อยาวหน่อยนะ RotateTowordMovementDirection วงเล็บเปิดวงเล็บปิด เป็น Class แล้วก็ปีกกาเปิด โอเค กำหนดเงื่อนไขด้วย if ค่ะ if if ในวงเล็บ inputVec เลือก inputVec ไม่เท่ากับ ไม่เท่ากับ ไม่เท่ากับเอานี่กดผิด ไปไสล่ะ ไม่เท่ากับ Vector3 Enter เลย .zero และก็ปีกกาเปิดอีก 1 ตัว transform อันนี้กำหนดเองนะคะ ตั้งให้ transform ถ้าดู Transformer จะรู้ว่า transform คืออะไร .rotation = Q U A Qua... Quaten Quatenion นะคะ Quater นั่นเอง ion. Slerp วงเล็บเปิดวงเล็บปิด transform ปิดได้เลย Transform.Rotation คลิกได้เลย แล้วก็ Quatenion คลิกได้เลย tern ไม่ใช่ ten Quatern Quatern เติม r เข้าไป Quaternion . L ตัวใหญ่ L เป็น Quatern Look LookRotation ตัวใหญ่ Rotation วงเล็บเปิด targetDirection เลือกได้เลย โอเคค่ะ โอเค ขอบคุณพี่ล่ามค่ะ สำหรับวันนี้ ขอบคุณค่ะ เดี๋ยวเราคีย์ต่อของเราให้มันเสร็จ สัปดาห์หน้าเราจะได้ไม่ต้องนี่ ขอบคุณพี่ล่ามค่ะ