محدود کردن درجه ی چرخش یک گیم ابجکت در یونیتی با استفاده از تابع کلمپ clamp
دوشنبه, ۷ تیر ۱۳۹۵، ۰۸:۵۴ ب.ظ
gameover.blog.ir
منبع این بود:
js بود بردم سیشارپ:
اصل کار اینه:
angle = Mathf.Clamp(angle, min, max);
تابع کلمپ میاد مقدار اولیه که در پارامتر اول بهش می دیم رو بین دو مقدار مینی مم و ماکزیمم چک می کنه اگه بیشتر شد روی حداکثر محجاز تنظیم و اگه کمتر روی حداقل میزان مجاز ست می کنه..
مثال
transform.eulerAngles =new Vector3(0, ClampAngle(angle, ang0-40, ang0+40), 0);
اینم یک تابع ترکیبی:
void float ClampAngle(float angle , float min, float max) { if (angle<90 || angle>270){ // if angle in the critic region... if (angle>180) angle -= 360; // convert all angles to -180..+180 if (max>180) max -= 360; if (min>180) min -= 360; } angle = Mathf.Clamp(angle, min, max); if (angle<0) angle += 360; // if angle negative, convert to 0..360 return angle; }
۹۵/۰۴/۰۷