مراجعة: كلب الحراسة
جزء من قسم الفيزياء وأسلوب اللعب في رحلة Unity على Coddy. الدرس 55 من 63.
التحدي
متوسطيحرس كلب الحراسة بيت الكلب ويُبعد الغرباء عنه. اكتب سكربت Dog. يعيّن Inspector له player وkennel (السجادة الحمراء أمام بيت الكلب) وspeed (3.5) وguardRange (6) وbite (5). سكربتا Player وHealth جاهزان: تحرّك الأسهم اللاعب، ولدى Health الخاص باللاعب دالة عامة TakeDamage(int amount).
- ما دام اللاعب أقرب إلى بيت الكلب من
guardRange، عبر الأرض، يركض الكلب نحو اللاعب. تُقاس المسافة من بيت الكلب، لا من الكلب. - وإلا، يركض الكلب عائدًا إلى بيت الكلب، ويتوقف عندما يصبح على بُعد 0.3 منه.
- يركض الكلب عبر ضبط سرعة Rigidbody لديه على
speedعبر الأرض، مع الحفاظ على سرعة y. - عندما يصطدم الكلب باللاعب (الذي يحمل الوسم
Player)، يتلقى Health اللاعب ضررًا بمقدار 1، ويُدفع اللاعب مباشرةً بعيدًا عن الكلب عبر الأرض بقوة دفع Impulse مقدارهاbite.
اضغط Play وامشِ نحو بيت الكلب، ثم اضغط Check.
جرّب بنفسك
using UnityEngine;
public class Dog : MonoBehaviour
{
[SerializeField] private Transform player;
[SerializeField] private Transform kennel;
[SerializeField] private float speed = 3.5f;
[SerializeField] private float guardRange = 6f;
[SerializeField] private float bite = 5f;
private Rigidbody rb;
void Start()
{
rb = GetComponent<Rigidbody>();
}
void FixedUpdate()
{
// احرس بيت الكلب: طارد اللاعب إذا اقترب منه، وإلا فعد إلى البيت
}
}
جميع دروس الفيزياء وأسلوب اللعب
1الجسم الصلب (Rigidbody)
الجاذبية والكتلةالدفع باستخدام AddForceالقفز باستخدام دفعةFixedUpdate للفيزياءالسرعة المتجهةالأجسام الحركيةمراجعة: منصة الإطلاق