נווט
שיעור 2 מתוך 14 בקורס משחק Unity: נחש תלת־ממדי של Coddy.
הנחש פונה באמצעות מקשי החצים או WASD. המצלמה מביטה בלוח מלפנים, מהקצה הקדמי, לכן הכיוון כלפי מעלה במסך הוא לאורך +z, Vector3.forward, והכיוון כלפי מטה הוא Vector3.back. Vector3.up מצביע אל השמיים: ראש שיזוז באמצעותו יעלה מעל הלוח.
פנייה מתרחשת פעם אחת בכל לחיצה, לכן קוראים את המקשים באמצעות wasPressedThisFrame. הלחיצה משנה רק את direction; Step() עדיין מזיזה את הראש, בפעימה הבאה:
Keyboard keyboard = Keyboard.current;
if (keyboard != null && keyboard.dKey.wasPressedThisFrame)
{
direction = Vector3.right;
}החץ והאות הם שני מקשים, שמחוברים באמצעות ||. Keyboard.current הוא null במכשיר ללא מקלדת, לכן בודקים אותו פעם אחת בתחילת הקוד.
אתגר
קלנווטו את הנחש באמצעות מקשי החצים או WASD.
- הוסיפו את
using UnityEngine.InputSystem;אלSnake. - בתחילת
Update(), קראו אתKeyboard.current: לחיצה על החץ למעלה או על W קובעת אתdirection = Vector3.forward, לחיצה על החץ למטה או על S קובעת אתVector3.back, לחיצה על החץ שמאלה או על A קובעת אתVector3.left, ולחיצה על החץ ימינה או על D קובעת אתVector3.right. - השאירו את
Step()כפי שהוא: הראש פונה בצעד הבא.
לחצו על „שחק”, לחצו על המשחק ונווטו: הראש פונה בצעד הבא. לאחר מכן לחצו על „בדיקה”.
נסו בעצמכם
using UnityEngine;
public class Snake : MonoBehaviour
{
public float tick = 0.15f; // שניות בין שני צעדים
private float timer;
private Vector3 direction = Vector3.right;
void Update()
{
timer += Time.deltaTime;
if (timer >= tick)
{
timer -= tick;
Step();
}
}
void Step()
{
transform.position += direction;
}
}
כל השיעורים ביחידה משחק Unity: נחש תלת־ממדי
תרגלו בעצמכם: Unity אונליין