لدغة الصيادين
جزء من قسم الفيزياء وأسلوب اللعب في رحلة Unity على Coddy. الدرس 63 من 71.
التحدي
متوسطاجعل الصيادين يعضّون اللاعب ويدفعونه إلى الخلف.
- في
Hunter، أضف[SerializeField] private float knockback = 12f;وvoid OnCollisionEnter(Collision collision). - داخلها، عندما يتحقق
collision.gameObject.TryGetComponent(out Health health)، استدعِhealth.TakeDamage(1);. - ثم ادفعه: اجعل
awayمن الصياد باتجاه اللاعب، واضبط y على 0، ثم استخدمcollision.rigidbody.AddForce(away.normalized * knockback, ForceMode.Impulse);.
اضغط «العب» وشاهد كم من الوقت تصمد. ثم اضغط «تحقق».
جرّب بنفسك
using UnityEngine;
public class Hunter : MonoBehaviour
{
[SerializeField] private float speed = 3f;
private Rigidbody rb;
private Transform player;
void Start()
{
rb = GetComponent<Rigidbody>();
player = GameObject.FindWithTag("Player").transform;
}
void FixedUpdate()
{
Vector3 toPlayer = player.position - rb.position;
toPlayer.y = 0f;
Vector3 dir = toPlayer.normalized;
rb.linearVelocity = new Vector3(dir.x * speed, rb.linearVelocity.y, dir.z * speed);
}
}
جميع دروس الفيزياء وأسلوب اللعب
1الجسم الصلب (Rigidbody)
الجاذبية والكتلةالدفع باستخدام AddForceالقفز باستخدام دفعةFixedUpdate للفيزياءالسرعة المتجهةالأجسام الحركيةمراجعة: منصة الإطلاق4الكوروتينات
InvokeInvokeRepeating, CancelInvokeأول Coroutine لكالحلقات داخل الكوروتيناتإيقاف الكوروتيناتمراجعة: العد التنازلي10المشروع: الهروب من الحلبة
الحلبةالصيادونتدرّب بنفسك: Playground لـ Unity