Menu
CoddyTech

טווח התותח

חלק מהיחידה פיזיקה ומשחקיות במסלול ה-Unity של Coddy. שיעור 66 מתוך 71.

תותח ניצב בקצה אחד של מטווח, ושלוש מטרות נעות מצד לצד לאורך המטווח במרחקים שונים. הטה את הקנה מעלה ומטה כדי להגיע לכל מרחק, ותזמן כל ירייה לרגע שבו מטרה חוצה את קו האש. כדור שפוגע במטרה משמיד אותה ומתכלה; כל דבר אחר שמתנגש במטרה משאיר אותה ללא פגע. המטרות הן גופים קינמטיים, לכן פגיעות לעולם אינן דוחפות אותן, ובתותח יש חמישה כדורים.

כתבו שני סקריפטים: Cannon על הקנה ו־Target על כל מטרה.

challenge icon

אתגר

קשה

כתבו את התותח: כוונו אותו, ואז ירו חמישה כדורים.

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

כל השיעורים ביחידה פיזיקה ומשחקיות

תרגלו בעצמכם: Unity אונליין