«یا اللهُ یا رَبِّ یا حَیُّ یا قَیّوم یا ذَالجَلالِ وَ الاکرام اَسئَلُکَ بِاسمِکَ اَلعَظیم اَلاَعظَم اَن تَرزُقَنی رِزقاً حَلالاً طَیِّباً بِرَحمَتِکَ الواسِعَه یا اَرحَمَ الرّاحِمِین.»
برخی از تکنیک های موثر بهینه سازی بازی برای بالارفتن سرعت رندر و افزایش کارایی در یونیتی :: گیم اور

گیم اور


خصوصی نظر نذارید نمی تونیم جواب بدیم.

عضو کانال تلگرام ما بشید توش گروه هم می گیم

لینک کانال خصوصی گیم اور :

https://t.me/gameoverblog

پیوندهای روزانه
پیوندها

منبع:gameover.blog.ir

حذف سایه ها و شرطهای اضافه تابع Update و استفاده از FixedUpdate.
cache کردن کلاس ها مثل tranform و ... مثال :

کد :

private Transform _transform;
void Start ()
{
        _transform = this.transform;//cache for optimization
}
استفاده از IEMulator و StartCoroutine.
نکته:بعضی اوقات بهتره انیمیشن ها رو توی یک تابع بذاریم و بعدش StartCoRoutine کنیم اون تابع رو،عوض اینکه بیایم و مستقیم اونو اجرا کنیم.
مثال از اجرا:
using UnityEngine;
using System.Collections;

public class ExampleClass : MonoBehaviour
{
    IEnumerator WaitAndPrint()
    {
        // suspend execution for 5 seconds
        yield return new WaitForSeconds(5);
        print("WaitAndPrint " + Time.time);
    }
    IEnumerator Start()
    {
        print("Starting " + Time.time);

        // Start function WaitAndPrint as a coroutine
        yield return StartCoroutine("WaitAndPrint");
        print("Done " + Time.time);
    }
}

سعی کنید تکستچر های شما atlas(اتلس) یا دارای ابعادی با توان 2 باشن مثل 8 در 8 یا 8 در 32 یا 32 در 8 یا 16 در 64 یا 128*256 یا 64*64 یا 128*256 یا 512*512 یا 512*256 و ..... .
اگه اتلس نباشه خود یونیتی مجبوره اونو تبدیل به اتلس کنه و یکم پردازش اضافه مصرف میشه.

نکته : سعی کنید مدل های شما دارای مثلثات و پولیگان های کم باشه.

نکته بعدی:زیاد از پارتیکل مثل دود و آتش و مه و بارون و پکیج های بیخود استفاده نکنید و اگه هم استفاده کردید فقط توی زمان های لحظه ای اونا رو توی بازی فعال کنید.

نکته بعدی : اشیای ثابت رو انتخاب و گزینه static رو در inspector تیک بزنید.همچنین قسمتای پشت دیوارها یا غیر ضروری حذف کنید.

نکته بعدی: نورها رو لایت مپ(lightmap) کنید (تکنیک beast)

نکته بعدی:بعضی وقتا انیمیشن ها رو غیر فعال کنید و به جای تابع آپدیت سعی کنید توی OnTriggerEnter/2d بگید مثلا اگه کاراکتر به دشمن نزدیک شد دشمن انیمیشن بشه و توی OnTriggerExit/2d بگید اگه کاراکتر از محدوده دشمن خارج شد دشمن انیمیشن اش استاپ بشه و ... .

نکته بعدی: وقتی تیر می زنید پس از چند ثانیه سعی کنید تیر رو destroy کنید. اشیای غیر ضروری دیگه هم همونطور.

نکته بعدی: به جای متریال و شیدرها بهتره که از تکستچر های uv map استفاده کنید.

نکته بعدی: استفاده از چند انیماتور توصیه نمیشه و اگه هم استفاده کردید سعی کنید یک الگوریتم زمانبندی بنویسید که هر جا لازم بود یکی را غیر فعال و فقط یکی در هر لحظه فعال باشه مگر در صورت نیاز هر دو رو فعال کنید.

نکته بعد: کلایدرهای بیخود رو حذف یا بهینه کنید(در قسمت add component می تونید چند کلایدر مختلف تایپ کنید و بدید به مدل یا اسپرایتتون...نکته اگه edge colider کار نکرد بعضی اوقات بهتره باکس کلایدر بدید)

نکته بعدی: گزینه ی cast shadow و فقط برای اجسامی که خیلی مهم هستن در سایه گذاری انتخاب کنید و بقیه رو سعی کنید غیر فعال کنید تا بازی بهینه تر بشه.هر جا سایه گذاری ارزش نداشته باشه و سرعت اجرای بازی اولویت داشته باشه بهتره سایه رو غیر فعال کنید با غیر فعال کردن همین cast shadow.


نکته بعدی: نوع شیدر رو بهتره توی inspector روی vertexLit بذاریم. چون پردازش کمتری نیاز داره هر چند کیفیت ممکنه تا حدی بیاد پایین. چون دو نوع تکستچر هست یکی پیکسلی،specular و ... هست که پردازش بیشتری می خواد و زیبایی بیشتری داره و یکی ورتکس هست که پردازش کمتر و زیبایی کمتر داره. شما باید دقت کنید که چه جسمی رو پیکسلی و چه جسمی رو ورتکسی انتخاب کنید. مثلا ساختمان هایی که خیلی دور هستن و لازم نیست که از نزدیک بهشون خیره بشیم رو vertexLit shader بدید.

نکته ی بعدی: اندازه ی بافت تصاویر کوچک بازی که زیاد به چشم نمیان رو کم کنید . مثلا گزینه ی max size رو برای تکستچر آجرها یا اشیای دیگه روی سایز کم تر بذارید تا حدی که قابل تحمل باشه.(برای bumped texture ها هم همینکارو کنید)

نکته ی بعدی: اگه می خواید تمام اجسام رو یه دفعه اپتیمایز کنید به منوی Edit->Project settings->Quality برید و اونجا می تونید تنظیمت دیگه ای انجام بدید مثل اینکه سایه ها رو روی hard بذارید یا حذف کنید. رزولوشن سایه ها و تکستچرها رو می تونید به طور تقریبی تنظیم کنید که روی low باشه.گزینه ی shadow distance رو اگه کم کنید سایه زیاد تا دور دست رندر نمیشه و یکم بهینه تر میشه.گزینه ی texture quality هم بای کم کردن کیفیت بافت تکستچرهای کل بازی هست که اینم می تونه بازی رو بهینه کنه.گزینه ی anisotropic texture هم اگه از کار بندازید جزئیات کم میشه.گزینه ی دیگه anti aliasing هست که لبه های عکس ها رو برامون تنظیم می کنه و اگه کمتر باشه تا یه حدی بهتره.

برای نور پردازی از تکنیک لایت مپ lightmap یا beast استفاده کنید:
http://gameover.blog.ir/1394/04/27/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%AA%DA%A9%D9%86%DB%8C%DA%A9-beast-%D9%88-%D9%86%D9%88%D8%B1%D9%BE%D8%B1%D8%AF%D8%A7%D8%B2%DB%8C-lightmap-%D9%88-bake-%D8%AF%D8%B1-%DB%8C%D9%88%D9%86%DB%8C%D8%AA%DB%8C-%D8%A7%D8%B6%D8%A7%D9%81%D9%87-%DA%A9%D8%B1%D8%AF%D9%86-%D8%AA%D8%B9%D8%A7%D8%AF-%D8%A8%DB%8C%D8%B4%D9%85%D8%A7%D8%B1-%D9%86%D9%88%D8%B1
موافقین ۰ مخالفین ۰ ۹۴/۱۱/۰۵
مدیرکل

نظرات (۱)

عالیه داداش فقط اینم اضافه کن از قسمت edit/projectsetting/quality گزینع Sync رو روی dont sync تنظیم شه فریم ۲ برابر میده 😊

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی