สคริปต์ Unity นี้มีความผิดพลาดตรงไหนครับ - Printable Version +- irpg Community (https://irpg.in.th) +-- Forum: Publica Foundation (https://irpg.in.th/forum-23.html) +--- Forum: Request Ranger Center (https://irpg.in.th/forum-24.html) +--- Thread: สคริปต์ Unity นี้มีความผิดพลาดตรงไหนครับ (/thread-1398.html) |
สคริปต์ Unity นี้มีความผิดพลาดตรงไหนครับ - lightwolfz - 09-15-2013 สคริปต์ Unity นี้มีความผิดพลาดตรงไหนครับ ---------------------------------------------------------------------- var PlayerState : float; function Update () { PlayerStateController(); PlayerAnims(); } function PlayerStateController() { if (Input.GetAxis("Vertical")!=0 || Input.GetAxis("Horizontal") !=0) { if (Input.GetButton("Sprint")) { PlayerState = 2; } } else { PlayerState = 0; } } function PlayerAnims() { if (PlayerState == 0) { PlayerAnimSec.animation.CrossFade("idle animation",0.4); } else if (PlayerState == 1) { PlayerAnimSec.animation.CrossFade("walk animation",0.4); } else if (PlayerState == 2) { PlayerAnimSec.animation.CrossFade("sprint animation",0.4); } } ---------------------------------------------------------------------- ตัวโปรแกรมผมมันแจ้งว่าไม่รู้จัก PlayerAnimSec ตลอดเลยไม่ทราบว่าผิดพลาดตรงไหนหรอครับ สคริปต์นี้ผมได้มาจากคลิปของฝรั่ง แต่เค้าก็ไม่เห็นผิดพลาดอะไร รบกวนผู้รู้ด้วยนะครับ ขอบคุณครับ RE: สคริปต์ Unity นี้มีความผิดพลาดตรงไหนครับ - pomlove - 09-15-2013 อยากช่วยมากเลยนะครับเเต่ผมไม่มีความรุเรื่องโปรเเกรมนี้เลยเเม้เเต่ขี้เล็บ =.= RE: สคริปต์ Unity นี้มีความผิดพลาดตรงไหนครับ - นิราจ - 09-15-2013 ลองเปลี่ยน PlayerState เป็น int ดูครับ แต่ตามหลักน่าจะถูกแล้วน่ะ ====================ให้เติมไว้ด้านบน================= var PlayerState : int; RE: สคริปต์ Unity นี้มีความผิดพลาดตรงไหนครับ - Griever - 09-15-2013 ๛คุณลืมประกาศตัวแปร PlayerAnimSec นี่ครับ เพิ่ม var PlayerAnimSec : GameObject; ไว้บนสุดก็หาย error เอง แล้วอย่าลืม Assign โมเดลเข้าไปใน PlayerAnimSec ด้วยนะครับ RE: สคริปต์ Unity นี้มีความผิดพลาดตรงไหนครับ - Nayru - 09-15-2013 เพิ่มเติมจากท่าน Griever ถ้าเกิด error ประเภทที่ว่าไม่รู้จักตัวนู้นตัวนี้ ให้ลองดูว่าตัวที่มันไม่รู้จักนั้น ได้มีการประกาศไว้แล้วหรือยัง จะเอามาใช้เฉยๆเลยไม่ได้ครับ (ยกตัวอย่าง หากคุณเอาบรรทัด var playerState ออก มันก็จะแจ้งว่าำไม่รู้จัก playerState เหมือนกันคับ) RE: สคริปต์ Unity นี้มีความผิดพลาดตรงไหนครับ - Author - 09-16-2013 มาไม่ทัน คนอื่นตอบไปหมดแล้ว T T แก้ไขให้อีกนิดแล้วกันครับ Playerstate เห็นที่ใช้แทน State ตัวละคร แทนด้วยเลข 1,2,3,4 ใช้เป็น int ก็ได้ครับ float ใช้กับพวกเลขทศนิยม อีกอย่างถ้าจะทำ State ตัวละคร แนะนำใช้ enum ครับ สะดวกกว่าเยอะเลย ปล. มีคนใช้ยูนิตี้เพิ่มอีกคนแหะ RE: สคริปต์ Unity นี้มีความผิดพลาดตรงไหนครับ - lightwolfz - 09-16-2013 ได้แล้วครับ ขอบคุณทุกคนมากๆนะครับ ผมมีปัญหาอีกครับคือพอสคริปต์สมบูรณ์ใช้ได้ละ พอลองรันดูก็มีปัญหาคือ พอเราอยู่ PlayerState 0 ผมปรับเป็น vertical แต่มันโชว์ animation ของ playerstate 1 ไม่ใช่ playerstate 0 ผมมางง ตรงนี้หล่ะครับ ขอความกรุณาอีกหน่อยเด้อ RE: สคริปต์ Unity นี้มีความผิดพลาดตรงไหนครับ - Author - 09-16-2013 ดูจากโค้ดไม่เห็นมีอันใหนที่ปรับ Playerstate ให้ = 1 เลยนะครับ จากโค้ด if (Input.GetButton("Sprint")) { PlayerState = 2; } } else { PlayerState = 0; } ถ้า PlayerState จะเปลี่ยนก็มีแค่ 0,2 นี่ครับ RE: สคริปต์ Unity นี้มีความผิดพลาดตรงไหนครับ - lightwolfz - 09-17-2013 (09-16-2013, 08:09 PM)Author Wrote: ดูจากโค้ดไม่เห็นมีอันใหนที่ปรับ ควรแก้ไขยังไงครับ ไปไม่เป็นแฮะ RE: สคริปต์ Unity นี้มีความผิดพลาดตรงไหนครับ - Cliff - 03-07-2014 Quote:ควรแก้ไขยังไงครับ ไปไม่เป็นแฮะ จากที่อ่าน code เดาว่า น่าจะเป็น code ควบคุม state ตัวละคร ซึ่งมี 3 สถานะคือ 1. ยืนนิ่งๆ (Idle) 2. เดิน (Walk) 3. วิ่ง (Sprint) ดังนั้น มันขาด State ที่เปลี่ยน PlayerState = 1 ครับ ดังนั้นต้อง เพิ่มเข้าไป ดังนี้ Code: function PlayerStateController() ส่วนเงื่อนไขการเดิน ผมขอเดาว่า น่าจะเป็นกดปุ่ม AWSD หรือเปล่า ถ้าเป็นแบบนี้ ให้ใส่ Code: Input.GetKeyDown(Keycode.A) || Input.GetKeyDown(Keycode.W) Input.GetKeyDown(Keycode.S) || Input.GetKeyDown(Keycode.D) |