چرخش دوربین با ژیروسکوپ (سنسورهای شتاب دهنده ی gyroscope)در یونیتی
يكشنبه, ۱۰ بهمن ۱۳۹۵، ۱۱:۲۰ ق.ظ
gameover.blog.ir
void Update () { transform.Rotate (0, -Input.gyro.rotationRateUnbiased.y, 0); }
توضیح:
Input.gyro.rotationRateUnbiased.y
این رو گذاشته توی y
یعنی حول محول y چرخ می ده دوربین رو
این کد رو بندازید روی دوربین.
void Update
که مشخصه
transform.Rotate هم مشخصه
مثلا پارامتر اول و آخرش صفر کنید.(xz صفر)
y رو از ژیرسکوپ خوندیم.
از y ژیروسکوپ خوندیم و y دوربین رو تغییر دادیم.
اوکی؟
فهمیدین؟
تابع transform.Rotate رو می بینید؟
این کارش چرخوندن هست.
خوب؟
یک شی در فصای سه بعدی
روش به هر سمتی که هست سه میله داره:xyz
x یعنی میله چپ و راست
y یعنی میله بالا و پایین
z یعنی میله جلو و عقب
در فضای سه بعدی به هر سمتی که هست
خودت رو فرض کن توی دنیای سه بعدی هستی
چرخش حول x یعنی چرخش حول میله ای که از چپ به راست هست، یعنی چرخش از جلو
چرخش حول y یعنی چرخش حول میله ای که از پایین به بالا هست، یعنی چرخش حول مثلا یک درخت
چرخش حول z یعنی چرخش حول میله ای که از عقب به جلو هست، یعنی چرخش از پهلو ها
حالا این تصور رو درک کردی تمام شد
فقط به xyz عدد بده
@bisavad, [29.01.17 11:00]
بذار توی تابعی کهع وظیفه چرخش حول محور دلخواه رو داره
@bisavad, [29.01.17 11:00]
مثال
اگه بخوای ده درجه حول محور x دوربین رو بچرخونی چیکار می کنی؟
transform.Rotate(10,0,0)
اگر بخوای چرخش برعکس باشه
transform.Rotate(-10,0,0)
بقیه مشخصه
حول محور y بخوای بچرخه 90 درجه
transform.Rotate(0,90,0);
اگه بخوای یه ضرب چرخش ادامه دار باشه
باید کد رو توی تابعی بذاری که هی تکرار میشه
هی call میشه
این تابع همون Update هست.
که در هر فریم از زمان هی call میشه.
۹۵/۱۱/۱۰