טווח תותחים
חלק מהיחידה פיזיקה ומשחקיות במסלול ה-Unity של Coddy. שיעור 61 מתוך 63.
תותח ניצב בקצה אחד של מטווח ירי, ושלוש מטרות נעות מצד לצד לאורך המטווח במרחקים שונים. הטו את הקנה למעלה ולמטה כדי להגיע לכל מרחק, ותזמנו כל ירייה לרגע שבו מטרה חוצה את קו האש. כדור שפוגע במטרה מוציא אותה מהמשחק ומתכלה; כל דבר אחר שמתנגש במטרה לא משפיע עליה. המטרות הן גופים קינמטיים, כך שפגיעות לעולם לא דוחפות אותן, ולתותח יש חמישה כדורים.
כתבו שני סקריפטים: Cannon על ה-Barrel ו-Target על כל מטרה.
אתגר
קשההחלון Inspector מספק ל־Cannon את ballPrefab (רכיב Rigidbody: קדם־הכינוי Ball, מסה 2, עם התג Ball), את angle (30), את turnSpeed (40), את power (30) ואת balls (5).
- החץ למעלה מגדיל את
angleוהחץ למטה מקטין אותו, בקצב שלturnSpeedמעלות לשנייה, בלי לרדת מתחת ל־10 או לעלות מעל 60. בכל פריים, קובעים את סיבוב הקנה ל־Quaternion.Euler(-angle, 0, 0): ב־Unity זווית x חיובית מטה את החזית כלפי מטה, לכן סימן המינוס מטה אותה כלפי מעלה. - לחיצה על מקש הרווח יורה כדור כל עוד
ballsגדול מ־0: יוצרים אותו במרחק של יחידה אחת לפני מרכז הקנה, לאורך הקנה, דוחפים אותו בעוצמהpowerבאמצעות Impulse לאורך הקנה, מפחיתים 1 מ־ballsומתעדים כמה נשארו, כמוBalls left: 4. כשלא נשארו כדורים, לחיצה על מקש הרווח לא עושה דבר.
לכל מטרה יש Rigidbody קינמטי, והחלון Inspector מספק ל־Target את speed ואת range (2 ו־3 עבור Target1).
- בכל צעד פיזיקה, מזיזים את המטרה לאורך ציר x באמצעות
MovePositionבמהירות שלspeedיחידות לשנייה, ומסובבים אותה בחזרה בכל פעם שהיא מתרחקתrangeיחידות מהמקום שבו התחילה. - כשכדור (שמתויג בתג
Ball) פוגע במטרה, מתעדים את שם המטרה ואתhit!, כמוTarget2 hit!, ומשמידים גם את המטרה וגם את הכדור. כל דבר שאינו כדור לא משפיע עליה.
לחצו על Play והפילו את שלוש המטרות, ואז לחצו על Check.
נסו בעצמכם
using UnityEngine;
public class Cannon : MonoBehaviour
{
[SerializeField] private Rigidbody ballPrefab;
[SerializeField] private float angle = 30f;
[SerializeField] private float turnSpeed = 40f;
[SerializeField] private float power = 30f;
[SerializeField] private int balls = 5;
void Update()
{
// כוונו בעזרת החצים למעלה ולמטה, וירו באמצעות Space
}
}
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה פיזיקה ומשחקיות
1גוף קשיח
כוח הכבידה והמסהדחיפה באמצעות AddForceקפיצה באמצעות מתקףFixedUpdate לפיזיקהמהירותגופים קינמטייםחזרה: משטח שיגור2התנגשויות
OnCollisionEnterבמה פגעתי?להישבר בעת פגיעהלעמוד על הקרקעניתור וחיכוךצורות Colliderסיכום: קיר שביר5פרויקט: מרוץ המטבעות
הכדור המתגלגלמטבעות לאיסוף