کنترل کاربر (mouse, touch)
Three.js خودِ API پایهای برای کنترل مستقیم کاربر ندارد، اما ابزارها و کلاسهای کمکی وجود دارند که کار با ماوس و لمس را راحت میکنند.
۱️⃣ OrbitControls
🔹 تعریف
-
پرکاربردترین کنترل برای مشاهده صحنه از زوایای مختلف
-
اجازه چرخش (rotate)، زوم (zoom) و جابجایی (pan) میدهد
🔹 نصب و import
🔹 مثال استفاده
📌 در حلقه animate:
۲️⃣ TrackballControls
🔹 تعریف
-
مشابه OrbitControls، اما چرخش آزادتر و طبیعیتر
-
مناسب پروژههایی که نیاز به چرخش 360 درجه دارند
🔹 نصب و import
۳️⃣ PointerLockControls
🔹 تعریف
-
مناسب FPS (First Person) یا بازیهای 3D
-
موس را قفل میکند و حرکت دوربین به حرکت ماوس وابسته است
🔹 مثال
۴️⃣ DragControls
🔹 تعریف
-
اجازه کشیدن اشیاء (drag & drop) با ماوس
-
فقط روی Object3Dها کار میکند
🔹 مثال
۵️⃣ رویدادهای مستقیم ماوس و لمس
🔹 تعریف
-
برای تعامل دقیق (Click، Hover)
-
نیاز به Raycaster و رویدادهای DOM
🔹 مثال Raycaster
📌 با Raycaster میتوان روی اشیاء کلیک، هاور یا لمس کرد و واکنش مناسب تعریف نمود.
۶️⃣ نکات مهم
-
OrbitControls برای مشاهده صحنه، PointerLockControls برای FPS و بازیها
-
DragControls برای تعامل مستقیم با اشیاء
-
Raycaster برای تشخیص برخورد موس یا لمس با اشیاء
-
ترکیب کنترلها با Touch هم امکانپذیر است (مثلا Pinch برای زوم)