التحكم

Starter pack

توفر Drei مجموعة من أدوات التحكم المفيدة للتنقل في مشهدك والتفاعل مع الكائنات. لنكتشفها.

أدوات التحكم في المدار

لقد استخدمنا بالفعل مكون OrbitControls في الدروس السابقة للتنقل في مشهدنا.

بينما استخدمناه بدون أي props، فإنه يوفر خيارات مفيدة لتخصيص سلوكه.

أولاً، يمكنك تحديد تمكين أو تعطيل الميزات من خلال الخصائص البوليانية التالية:

  • enableZoom
  • enableRotate
  • enablePan

على سبيل المثال، إذا كانت تجربتك تعتمد على التمرير، يمكنك تعطيل التقريب لمنع النزاعات عندما يستخدم المستخدم عجلة الماوس.

ثم، يمكنك تغيير سرعة أدوات التحكم بـ:

  • zoomSpeed
  • rotateSpeed
  • panSpeed

أخيرًا، يمكنك تغيير القيم الدنيا والقصوى للتكبير:

  • minZoom
  • maxZoom

...والتدوير للأعلى والأسفل:

  • minPolarAngle
  • maxPolarAngle

...والتدوير لليسار واليمين:

  • minAzimuthAngle
  • maxAzimuthAngle

...والمسار بـ:

  • minDistance
  • maxDistance

إذا قمت بتشغيل مشروع البدء، يمكنك رؤية أننا يمكننا الوصول إلى مواضع تبدو بها أخطاء. (أسفل الأرض، من خلال الـmesh، التحريك لعدم إظهار المنارة، إلخ.)

لنقم بتجميع بعض هذه الخصائص لإنشاء تجربة أكثر تقييدًا:

<OrbitControls
  enablePan={false}
  maxPolarAngle={Math.PI / 2}
  minAzimuthAngle={-Math.PI / 2}
  maxAzimuthAngle={Math.PI / 2}
  minDistance={3}
  maxDistance={10}
/>

انظر كيف تم تقييد الكاميرا الآن لعرض المنارة دائمًا بطريقة جذابة. يمنع المستخدم من الرؤية عبر الكائنات وأسفل الأرض.

تلك التفاصيل الصغيرة يمكن أن تحدث فرقًا كبيرًا في جودة تجاربك.

حيث أن مكون drei هو مجرد غلاف حول فئة OrbitControls من three.js، تحقق من توثيق three.js لرؤية جميع الخصائص المتاحة.

أدوات العرض

PresentationControls بخلاف OrbitControls تتفاعل مع محتوى الكائنات المغلفة، وليس مع الكاميرا. بخلاف ذلك، هما متشابهان جدًا.

إليك الكود النموذجي من توثيق drei

Three.js logoReact logo

React Three Fiber: The Ultimate Guide to 3D Web Development

✨ You have reached the end of the preview ✨

Go to the next level with Three.js and React Three Fiber!

Get full access to this lesson and the complete course when you enroll:

  • 🔓 Full lesson videos with no limits
  • 💻 Access to the final source code
  • 🎓 Course progress tracking & completion
  • 💬 Invite to our private Discord community
Unlock the Full Course – Just $85

One-time payment. Lifetime updates included.