ฉันได้เริ่มเกมใหม่ที่ไม่ต้องใช้เม้าส์ ฉันพยายามรวม 8 ทิศทาง; ขึ้น, ซ้าย, ขวา, ขึ้น - ขวาเป็นต้น อย่างไรก็ตามเมื่อฉันกดปุ่มลูกศรมากกว่าหนึ่งปุ่มความเร็วในการเคลื่อนที่จะซ้อนกัน ( http://gfycat.com/CircularBewitchedBarebirdbat ) ฉันจะต่อต้านสิ่งนี้ได้อย่างไร
นี่คือส่วนที่เกี่ยวข้องของรหัสของฉัน:
var speed : int = 5;
function Update () {
if (Input.GetKey(KeyCode.UpArrow)) {
transform.Translate(Vector3.forward * speed * Time.deltaTime);
} else if (Input.GetKey(KeyCode.UpArrow) && Input.GetKey(KeyCode.RightArrow)) {
transform.Translate(Vector3.forward * speed * Time.deltaTime);
} else if (Input.GetKey(KeyCode.UpArrow) && Input.GetKey(KeyCode.LeftArrow)) {
transform.rotation = Quaternion.AngleAxis(315, Vector3.up);
}
if (Input.GetKey(KeyCode.DownArrow)) {
transform.Translate(Vector3.forward * speed * Time.deltaTime);
}
}
3
แทนเจนต์: รอยเว้าในโค้ดของคุณยุ่งเล็กน้อยดังนั้นฉันจึงไม่ได้สังเกตในตอนแรก แต่เงื่อนไขในโค้ดของคุณจะป้องกันไม่ให้ส่วนใหญ่ทำงานได้ เช่นถ้า (UpArrow) หากอื่น (UpArrow && RightArrow) จะไม่เปิดสาขา 'else'
—
jhocking