Menu
CoddyTech

لدغة الصيادين

جزء من قسم الفيزياء وأسلوب اللعب في رحلة Unity على Coddy. الدرس 63 من 71.

challenge icon

التحدي

متوسط

اجعل الصيادين يعضّون اللاعب ويدفعونه إلى الخلف.

  1. في Hunter، أضف [SerializeField] private float knockback = 12f; وvoid OnCollisionEnter(Collision collision).
  2. داخلها، عندما يتحقق collision.gameObject.TryGetComponent(out Health health)، استدعِ health.TakeDamage(1);.
  3. ثم ادفعه: اجعل 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);
    }
}

جميع دروس الفيزياء وأسلوب اللعب

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