אוכל
שיעור 5 מתוך 14 בקורס משחק Unity: נחש תלת־ממדי של Coddy.
המזון נמצא בתא אקראי. התאים הם מספרים שלמים, לכן בחרו ערכי x ו-z באמצעות גרסת int של Random.Range. כשמשתמשים במספרים שלמים, הערך המרבי אינו נכלל: Random.Range(1, 7) מטיל קובייה ומחזיר מספר בין 1 ל-6. כדי לכלול מספר, בקשו מספר שגדול ממנו באחד. עם מספרים עשרוניים מתקבלים מספרים כמו 3.62, ולא מרכז של תא.
בלוח שאורך הצלע שלו הוא 4, העמודות נעות מ-4- עד 4:
int x = Random.Range(-4, 5); // מ-4 עד 4הלוח מכיל פריט מזון אחד בכל פעם, לכן המשחק יוצר אותו פעם אחת, ב-Start(), ומעביר אותו למקום חדש בכל פעם שנדרש. GameManager קורא את גודל הלוח מהערך edge של הנחש באמצעות השדה snake שלו.
אתגר
בינוניהנח את המזון בתא אקראי בלוח.
- ב־
GameManager, הוסףpublic Snake snake;,public GameObject foodPrefab;ו־private Transform food;(הסצנה מקשרת את שני הראשונים). - ב־
Start(), הוסףfood = Instantiate(foodPrefab).transform;, ואז קרא ל־MoveFood(). void MoveFood(): הצב את המזון במיקום אקראי לפי x ו־z, כל אחד בטווח שבין-snake.edgeל־snake.edge, ו־y יהיה 0.
לחץ על שחק: כדור אדום נמצא על תא, ובכל פעם במקום חדש. לאחר מכן לחץ על בדיקה.
נסו בעצמכם
using UnityEngine;
public class GameManager : MonoBehaviour
{
// מנהל את המשחק: האוכל, הניקוד וסיום המשחק. בפרק 2 נמלא אותו בתוכן.
}
כל השיעורים ביחידה משחק Unity: נחש תלת־ממדי
תרגלו בעצמכם: Unity אונליין