أهلا وسهلا بك! في هذه المقالة ، أود أن أشارككم كيف ندرك تدمير الأعداء بالقفز ، كما في ماريو. ما زلت أدرس نفسي ، لذا إذا كان لديّ أي نصائح أو تلميحات مفيدة ، فالرجاء الكتابة إلى التعليقات. حسنًا ، بعد العديد من وجهات النظر حول البرامج التعليمية وقراءة المقالات ، تم العثور على مقالتين فقط للاهتمام ، وربما أسهل طريقة لتنفيذ الخيارات:
- الأول هو اتصال نقاط المصادم ،
- والثاني هو ملامسة المصادم ، عندما يتم تعليق مصادمين على الكائن ، يأخذ أحدهما حياة اللاعب ، ويدمر الثاني الكائن الذي يرتبط به.
بادئ ذي بدء ، سنكتب وظيفة ستقضي على حياة اللاعب ، وهي ضرورية لكلا الخيارين:
public int health = 3; void Hurt() { health--; if (health <= 0) SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex); }
خيار واحد
سنقوم بتحليل الخيار الأول إذا كانت نقطة الاتصال أكبر من أو تساوي ارتفاعًا 0.6 ، أو يتم تدمير اللاعب من أعلى العدو ، وإلا فإن اللاعب يتلف.
void OnCollisionEnter2D(Collision2D collision) { Enemy enemy = collision.collider.GetComponent<Enemy>(); if (enemy != null) { foreach (ContactPoint2D point in collision.contacts) { if (point.normal.y >= 0.6f) { enemy.EnemyHurt(); } else { Hurt(); } } }
(جزء من الكود الذي تم تعليقه على اللاعب)
public void EnemyHurt() { Destroy(this.gameObject); }
(مقتطف من الكود الذي يعلق على العدو)
2 الخيار
أضف مصادمًا ، وجعله أعلى قليلاً من المصادم الرئيسي ، ووضع علامة "is Trigger" على الكائن ، وقم بتعليق البرنامج النصي ، وقم بإضافة جزء التعليمات البرمجية هذا.
private void OnTriggerEnter2D(Collider2D collision) { if (collision.gameObject.name == "Player") Destroy(this.gameObject); }
(مقتطف من الكود الذي يعلق على العدو)
عندما يلمس المصادم كائنًا يسمى "المشغل" ، يتم إتلاف الكائن (كعلامة اتصال ، يمكنك استخدام العلامة).
علاوة على ذلك في نفس الكائن ، نقوم بإنشاء المزيد من gameObject ونطلق عليه DeathZone. أضف مصادمًا ، اجعله أكبر قليلاً ، وحدد مربع "الزناد".

private void OnTriggerEnter2D(Collider2D collision) { if (collision.gameObject.name == "DeathZone") { Hurt(); } }
(جزء من الكود الذي تم تعليقه على اللاعب)
كما ترون ، على عكس الخيار الأول ، في الخيار الثاني ، كان استخدام المصادمات أكبر قليلاً ، ولم تكن هناك حاجة لاستخدام المشغلات.

(الخيار الثاني)
يمكنك أيضا إضافة أن اللاعب يقفز بعد تدمير العدو. حسنًا ، يبدو أن كل شيء ، شكراً لكم جميعًا على اهتمامكم!