وحدة التحكم في الشخصية كيفية إضافة القدرة على دفع الأجسام الصلبة في الوحدة

في هذا البرنامج التعليمي، سنقوم بتحسين البرنامج النصي Unity FPS Controller لتمكين الشخصية من دفع الأجسام الصلبة داخل المشهد (يجب أن يعمل البرنامج النصي أدناه مع أي وحدة تحكم، كما طالما أنه يحتوي على مكون CharacterController مرفق). يمكن أن يضيف هذا البرنامج النصي لمسة واقعية إلى لعبتك من خلال السماح للاعبين بالتفاعل مع الكائنات والبيئات الديناميكية.

الخطوة 1: إنشاء برنامج نصي جديد

  • قم بإنشاء نص C# جديد في مشروعك Unity. يمكنك تسميتها بشيء مثل "CharacterPushController".

الخطوة 2: انسخ البرنامج النصي المقدم

  • انسخ الكود أدناه في البرنامج النصي الذي تم إنشاؤه حديثًا. يمكنك ضبط المتغير 'pushPower' للتحكم في قوة الدفع. بالإضافة إلى ذلك، قد ترغب في تخصيص شروط تطبيق قوة الدفع بناءً على منطق لعبتك.

CharacterPushController.cs

using UnityEngine;

public class CharacterPushController : MonoBehaviour
{
    // Adjust this variable to control the strength of the push
    public float pushPower = 2.0f;

    void OnControllerColliderHit(ControllerColliderHit hit)
    {
        Rigidbody body = hit.collider.attachedRigidbody;

        // No rigidbody or kinematic rigidbody
        if (body == null || body.isKinematic)
        {
            return;
        }

        // Avoid pushing objects below the character
        if (hit.moveDirection.y < -0.3)
        {
            return;
        }

        // Calculate push direction from move direction,
        // pushing only to the sides, not up and down
        Vector3 pushDir = new Vector3(hit.moveDirection.x, 0, hit.moveDirection.z);

        // Apply the push
        body.velocity = pushDir * pushPower;
    }
}

الخطوة 3: إرفاق البرنامج النصي

الخطوة 4: الاختبار

  • قم بتشغيل المشهد واختبر قدرة وحدة التحكم في الشخصية على دفع الأجسام الصلبة بمساعدة البرنامج النصي الذي تم إنشاؤه حديثًا.

الخطوة 5: الضبط

  • اضبط 'pushPower' لتحقيق السلوك المطلوب في لعبتك.
المقالات المقترحة
كيفية إضافة دعم النظام الأساسي المتحرك إلى وحدة التحكم بالأحرف في Unity
الوحدة كيفية جعل عناصر التحكم باللمس المحمول
عصا التحكم لإدخال اللمس المحمول في الوحدة
إضافة دعم القفز المزدوج إلى وحدة التحكم في الشخصيات ثنائية الأبعاد في Unity
كيفية التحكم في الرافعة في الوحدة
إضافة تأثير تمايل الرأس إلى الكاميرا في Unity
وحدة تحكم مشغل RTS وMOBA لـ Unity