איך לעשות משחק תותח באחדות

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

שלב 1: הגדרת הפרויקט

ראשית, פתח את Unity וצור פרוייקט דו-ממדי חדש. תן שם לפרויקט שלך "CannonGame". לאחר יצירת הפרויקט, תהיו בחלון העורך הראשי של Unity.

שלב 2: יצירת התותח

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

  1. לחץ לחיצה ימנית בחלון Hierarchy ובחר Create Empty. תן לזה "Cannon".
  2. לחץ לחיצה ימנית על האובייקט "Cannon" ובחר 2D Object -> Sprite. תן לזה "CannonSprite".
  3. בחלון Inspector, לחץ על השדה Sprite ובחר ספרייט עבור התותח שלך.

מקם את התותח בתחתית המסך על ידי הגדרת מיקומו ל- (0, -4, 0) ברכיב Transform.

כעת, צור סקריפט לשליטה בתותח. לחץ לחיצה ימנית בתיקייה Assets, בחר Create -> C# Script, ותן שם "CannonController". לחץ פעמיים על הסקריפט כדי לפתוח אותו בעורך הקוד שלך.

// CannonController.cs
using UnityEngine;

public class CannonController : MonoBehaviour
{
    public GameObject cannonballPrefab;
    public float shootForce = 700f;

    void Update()
    {
        Aim();
        if (Input.GetButtonDown("Fire1"))
        {
            Shoot();
        }
    }

    void Aim()
    {
        Vector3 mousePosition = Camera.main.ScreenToWorldPoint(Input.mousePosition);
        Vector2 direction = new Vector2(mousePosition.x - transform.position.x, mousePosition.y - transform.position.y);
        transform.up = direction;
    }

    void Shoot()
    {
        GameObject cannonball = Instantiate(cannonballPrefab, transform.position, transform.rotation);
        Rigidbody2D rb = cannonball.GetComponent();
        rb.AddForce(transform.up * shootForce);
    }
}

שלב 3: יצירת התותח

אנחנו צריכים ליצור כדור תותח כדי שהתותח יירה. כך:

  1. לחץ לחיצה ימנית בחלון Hierarchy ובחר 2D Object -> Sprite. תן לזה "Cannonball".
  2. בחלון Inspector, לחץ על השדה Sprite ובחר ספרייט לכדור התותח שלך.
  3. הוסף רכיב Rigidbody2D לכדור התותח על ידי לחיצה על Add Component ובחירה ב-Rigidbody2D.
  4. הוסף רכיב CircleCollider2D לכדור התותח על ידי לחיצה על הוסף רכיב ובחירה ב-CircleCollider2D.

לאחר מכן, גרור את כדור התותח מהתיקייה Hierarchy לתיקיה Assets כדי ליצור תבנית מוקדמת. דגם טרומי זה ישמש את התותח לירי בכדורי תותח.

בחלון Inspector של הסקריפט CannonController (מצורף לאובייקט Cannon), הגדר את השדה CannonballPrefab ל-Cannonball Prefab.

שלב 4: יצירת יעדים

בואו נוסיף כמה מטרות שהשחקן יוכל לירות בהן:

  1. לחץ לחיצה ימנית בחלון Hierarchy ובחר 2D Object -> Sprite. תן לזה "Target".
  2. בחלון Inspector, לחץ על השדה Sprite ובחר ספרייט עבור היעד שלך.
  3. הוסף רכיב BoxCollider2D למטרה על ידי לחיצה על Add Component ובחירה ב-BoxCollider2D.

שכפל את היעד על ידי לחיצה ימנית עליו ובחירה ב-שכפל. מקם את המטרות מסביב למסך.

שלב 5: טיפול בהתנגשויות

אנחנו צריכים להתמודד עם מה שקורה כשכדור תותח פוגע במטרה. צור סקריפט בשם "Target" כדי לנהל את זה:

  1. לחץ לחיצה ימנית בתיקייה Assets, בחר Create -> C# Script, ותן שם "Target".
  2. לחץ פעמיים על הסקריפט כדי לפתוח אותו בעורך הקוד שלך.
// Target.cs
using UnityEngine;

public class Target : MonoBehaviour
{
    void OnCollisionEnter2D(Collision2D collision)
    {
        if (collision.gameObject.CompareTag("Cannonball"))
        {
            Destroy(gameObject);
        }
    }
}

צרף את סקריפט היעד לכל אובייקטי היעד. ודאו שבמוצר הטרומי של התותח שלכם יש את התג "Cannonball".

סיכום

על ידי ביצוע השלבים האלה, יצרת משחק תותח פשוט ב-Unity. למדת כיצד להקים פרויקט, ליצור ולשלוט בתותח ולהוסיף מטרות. פרויקט זה מכסה מושגי פיתוח משחקים בסיסיים כגון יצירת אובייקט, קלט משתמש, פיזיקה וזיהוי התנגשות. אתה יכול לשפר עוד יותר את המשחק הזה על ידי הוספת תכונות כמו ניקוד, רמות וסוגים שונים של מטרות. כיף להתנסות וללמוד עוד על Unity!