معمولا وقتی نیاز به گرفتن ابعاد یک gameobject داخل یونیتی باشه از یکی از دو خصوصیت Transform.localScale و Transform.lossyScale استفاده میکنیم.
تفاوت Loca lScale و Lossy Scale برای Transform گیم آبجکت ها در یونیتی
خصوصیت Transform.localScale اندازه گیم آبجکت مورد نظر رو “به نسبت شی پدر” نگه داری میکنه و Transform.lossyScale اندازه گیم آبجکت رو “بدون درنظر گرفتن ابعاد شی پدر” بر میگردونه یعنی اندازه واقعی شی.
برای مثال:
شما دو گیم آبجکت دارید ، A و B ، همچنین A زیرمجموعه B هست
A که سایزش 20.20.20 باشه(20 در سه محور)
و در طرف دیگه گیم آبجکت B سایزش2 – 2 – 2 باشه
توی این حالت اندازه واقعی A برابره با 40 چون شی پدرش اندازه 2 داره هرچند داخل inspector مقدار 20 رو ببینید،درواقع lossy scale اون میشه 40 اما local scale یا همون اندازه محلیش میشه 20.
در این حالت اگر A از حالت فرزندی B خارج بشه سایز واقعیش داخل inspector نمایش داده میشه و توی این حالت local و lossy برابر میشن چون چیزی نیست که سایز A رو تغییر بده.
برای آشنایی بیشتر هم میتونید داخل سین یونیتی روی ابعاد شی مورد نظر خودتون کمی تغییرات ایجاد کنید و امتحان کنید.
https://docs.unity3d.com/ScriptReference/Transform-lossyScale.html https://www.reddit.com/r/Unity3D/comments/srxcou/what_is_the_difference_between_a_lossyscale_and_a/