والا می دونی که من گیم استودیو کار نیستم، ولی فرمول ریاضیشو بهت می گم، خودت با توجه به توابع گیم استودیو تغییرش بده:
دوتا بردار برای این کار احتیاج داری که مقداراشو داشته باشی:
Position: مکان دوربینه به صورت Vector3 (همون x,y,z)
Direction: جهت دوربینه، همون سمتی که بازیکن داره نگاه می کنه که اینم Vector3 هست
حالا فرمولش سادست:
Position += Normal(Direction) * ZoomFactor
تو این فرمول Normal تابعیه که یه بردار رو نرمال می کنه، ببین تو گیم استودیو معادلش چی میشه.
ZoomFactor هم مقداریه که می خوای زوم کنی، هر چی بیشتر باشه، زوم بیشتره. با این فاکتور حتی می تونی 2x, 3x و... برای دوربینت تعریف کنی.
البته بگم، زوم کلا دوراه داره، یکی اینی که گفتم که راهه سادشه عوضش اشکالاتی داره که باید رفع کنی. یه راه پیچیده تر هست که استفاده نکردم ولی مشکلاتش کمتره. می تونی با سرچ پیداش کنی.
بزرگترین مشکلی که این راه ساده داره اینه که چون در عمل جای دوربین رو عوض می کنه، اگه جلوت یه دیوار نزدیک باشه، میره پشت دیوار رو نشون میده، که راه حلش سادست: باید زمان زوم قبل اینکه دوربین جابجا بشه یه Trace یا Ray (یا هر چیزی که اونجا بهش می گین) بین موقعیت فعلی و قبلی دوربین انجام بدی، اگه چیزی بینشون بود، اونوقت دوربین اینقدر میاد عقب که آبجکتی بین موقعیت فعلی و قبلی وجود نداشته باشه.
به همین راحتی، کدینگش نباید بیشتر از 10 دقیقه وقتتو بگیره. اینجوری می تونی مثلا دوتا زوم مختلف هم بذاری واسه دوربین، اون نفس کشیدن رو هم اضافه کنف خیلی باحال میشه دوربینت.
فعلا.![]()