טווח התותח
חלק מהיחידה פיזיקה ומשחקיות במסלול ה-Unity של Coddy. שיעור 66 מתוך 71.
תותח ניצב בקצה אחד של מטווח, ושלוש מטרות נעות מצד לצד לאורך המטווח במרחקים שונים. הטה את הקנה מעלה ומטה כדי להגיע לכל מרחק, ותזמן כל ירייה לרגע שבו מטרה חוצה את קו האש. כדור שפוגע במטרה משמיד אותה ומתכלה; כל דבר אחר שמתנגש במטרה משאיר אותה ללא פגע. המטרות הן גופים קינמטיים, לכן פגיעות לעולם אינן דוחפות אותן, ובתותח יש חמישה כדורים.
כתבו שני סקריפטים: Cannon על הקנה ו־Target על כל מטרה.
אתגר
קשהכתבו את התותח: כוונו אותו, ואז ירו חמישה כדורים.
- בתוך
Update(), הוסיפו אתInput.GetAxisRaw("Vertical") * turnSpeed * Time.deltaTimeל־angle, הגבילו אותו לטווח שבין 10 ל־60, והגדירו אתtransform.rotation = Quaternion.Euler(-angle, 0f, 0f);. - בעת לחיצה על מקש הרווח, כאשר
balls > 0, צרו אתballPrefabבמיקוםtransform.position + transform.forward, והפעילו אתAddForce(transform.forward * power, ForceMode.Impulse). - הפחיתו 1 מ־
ballsוהציגו ביומן את"Balls left: " + balls.
לחצו על "שחק" וירו. לאחר מכן לחצו על "בדיקה".
נסו בעצמכם
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פרויקט: מרוץ המטבעות
הכדור המתגלגלמטבעות לאיסוףתרגלו בעצמכם: Unity אונליין