Menu
CoddyTech

التقط معززًا

الدرس 15 من 19 في دورة لعبة Unity: كاسر الطوب على Coddy.

تلاحظ تعزيزات القوة عملية الالتقاط بنفسها: إذ يلامس مصادمها مصادم المضرب، ويكون الجسمان حركيين، وهذا يكفي لعمل OnTriggerEnter. كما أنها تسقط متجاوزة الكرة، لذا تتحقق من الوسم أولًا.

تُسمّي التعدادات الأنواع، ويضبط كل نموذج أولي نوعه في نافذة Inspector، لذا يكفي نص برمجي واحد لكليهما:

public enum Kind { Wide, Multiball }
public Kind kind;

if (kind == Kind.Multiball) Debug.Log("Three balls");

يجد other.GetComponent<Paddle>() النص البرمجي Paddle على الكائن الذي لمسه تعزيز القوة. في الوقت الحالي، لا يفعل التعزيز الذي يوسّع المضرب سوى تسجيل رسالة؛ وفي الدرس التالي سيجعل المضرب يكبر.

challenge icon

التحدي

صعب

التقط تعزيزًا ساقطًا بالمضرب.

  1. في PowerUp، أضف public enum Kind { Wide, Multiball } وpublic Kind kind; (يُضبط النوع لكل عنصر مُسبق).
  2. أضف OnTriggerEnter(Collider other): أعد التنفيذ ما لم يتحقق other.CompareTag("Paddle")؛ وإذا كان من النوع Wide، فاستدعِ other.GetComponent<Paddle>().Widen();، ثم Destroy(gameObject);
  3. في Paddle، أضف public void Widen() لتسجيل Wide paddle في الوقت الحالي.

اضغط «العب» والتقط واحدًا أخضر: سيختفي وستعرض وحدة التحكم Wide paddle. ثم اضغط «تحقق».

جرّب بنفسك

using UnityEngine;
using UnityEngine.InputSystem;

public class Paddle : MonoBehaviour
{
    public float speed = 14f;
    public float wallX = 8f;   // تقع الأوجه الداخلية للجدران الجانبية عند -wallX وwallX

    Rigidbody rb;

    void Awake()
    {
        rb = GetComponent<Rigidbody>();
    }

    void FixedUpdate()
    {
        float input = 0f;
        if (Keyboard.current.leftArrowKey.isPressed || Keyboard.current.aKey.isPressed) input -= 1f;
        if (Keyboard.current.rightArrowKey.isPressed || Keyboard.current.dKey.isPressed) input += 1f;

        Vector3 target = rb.position + Vector3.right * input * speed * Time.fixedDeltaTime;
        float halfWidth = transform.localScale.x / 2f;
        target.x = Mathf.Clamp(target.x, -wallX + halfWidth, wallX - halfWidth);
        rb.MovePosition(target);
    }
}

جميع دروس لعبة Unity: كاسر الطوب

تدرّب بنفسك: Playground لـ Unity