Unity Learning: post #3049 — TG.ME

Unity LearningUpdate_FixedUpdate.pdf
⭕️ تابع Late Update #ادامه_مبحث

🔹 تابع LateUpdate در هر فریم اجرا می‌شود، درست مانند Update ، اما یک تفاوت مهم وجود دارد:
📌تابع LateUpdate همیشه بعد از اجرای تمام Updateها در همان فریم اجرا می‌شود.

📊 ترتیب ساده اجرای آن‌ها به این شکل است:

Update
⬇️
LateUpdate

🎥 مهم‌ترین کاربرد: دنبال کردن بازیکن توسط دوربین

🔹 یکی از بهترین کاربردهای LateUpdate()، کنترل دوربین است. فرض کنید بازیکن در Update حرکت می‌کند:

void Update()
{
transform.Translate(
Vector3.forward * speed * Time.deltaTime
);
}


🔸 حالا دوربین باید موقعیت جدید بازیکن را دنبال کند. اگر دوربین قبل از اعمال حرکت بازیکن موقعیت او را بررسی کند، ممکن است یک فریم تأخیر ایجاد شود. به همین دلیل می‌توانیم دوربین را در LateUpdate حرکت دهیم:

void LateUpdate()
{
transform.position = player.position + offset;
}

👈 در این حالت:

1️⃣ ابتدا بازیکن حرکت می‌کند.
2️⃣ سپس LateUpdate اجرا می‌شود.
3️⃣ دوربین موقعیت جدید بازیکن را دریافت می‌کند.

🎯 نتیجه: حرکت دوربین نرم‌تر و هماهنگ‌تر خواهد بود.

🤔 چرا دوربین را در Update قرار ندهیم؟
🔹 فرض کنید هم بازیکن و هم دوربین در Update حرکت کنند. در این حالت ترتیب اجرای اسکریپت‌ها همیشه چیزی نیست که به‌صورت ساده از روی کد انتظار داریم و ممکن است دوربین قبل از اعمال آخرین تغییر موقعیت بازیکن اجرا شود. در نتیجه، دوربین می‌تواند یک فریم از حرکت واقعی بازیکن عقب بماند. اما با استفاده از LateUpdate مطمئن می‌شویم که ابتدا تغییرات مربوط به Update انجام شده‌اند و سپس دوربین موقعیت نهایی شیء را بررسی می‌کند.

@UnityLearning
❤6👍1
August 21, 2026 229 2