حالة التنبيه
جزء من قسم هندسة الألعاب في Unity في رحلة Unity على Coddy. الدرس 36 من 64.
التحدي
متوسطأطلق إنذار البرج عندما يقترب اللاعب.
- في
TurretStates.cs، اكتبAlertState، مع الرأس واللاعب. عند الدخول: اجعل لون الرأسColor.red، وسجّلIntruder!. عند التحديث: وجّه الرأس نحو اللاعب حول المحور y. عند الخروج: سجّلAll clear. - في
Turret، اكتبSetState(IState next): نفّذ Exit للحالة القديمة، ثم Enter للحالة الجديدة. - حدّث حالة الإنذار عندما يكون اللاعب ضمن
range، وإلا فحدّث حالة المسح، ثم حدّث الحالة الحالية.
اضغط «العب» واقترب سيرًا. ثم اضغط «تحقق».
جرّب بنفسك
using UnityEngine;
public class ScanState : IState
{
private Transform head;
private float angle;
private float direction = 1f;
public ScanState(Transform head)
{
this.head = head;
}
public void Enter()
{
angle = 0f;
direction = 1f;
head.GetComponent<Renderer>().material.color = Color.green;
}
public void Tick()
{
angle += 90f * direction * Time.deltaTime;
if (angle > 45f)
{
angle = 45f;
direction = -1f;
}
if (angle < -45f)
{
angle = -45f;
direction = 1f;
}
head.localRotation = Quaternion.Euler(0f, angle, 0f);
}
public void Exit()
{
}
}
جميع دروس هندسة الألعاب في Unity
1المكوّنات، لا التسلسلات الهرمية
مكوّنات صغيرةنص برمجي أساسي للعدومكوّنات مجرّدةالمكوّنات تعمل معًامراجعة: برج معياريمراجعة: مدفع مزدوج4البيانات المُسلسلة
الأصناف القابلة للتسلسلالقوائم في Inspectorالتعدادات في Inspectorمراجعة: جدول الغنائممراجعة: اختيار الغنائم عشوائيًا7آلات الحالات
الحالات كأصنافحالة التنبيهآلة حالاتالانتقالاتعقول الأعداءالفارس يهاجممراجعة: حالات الباب2الواجهات في Unity
IDamageableالواجهات وTryGetComponentGetComponentsمراجعة: مفتاح التفاعلمراجعة: أقرب عنصر ضمن النطاقتدرّب بنفسك: Playground لـ Unity