Shield Aryan – Telegram
خب!
متاسفانه طبق گفت و گویی که شد بازی آماده نیست!🥲
یه سری مشکلات هست که باید حتماً سریدگی بشن
فقط بگم تف تو نورپردازی یونیتی که واقعا گند میزنه تو سایه اندازی!
باید جنگی باشیم تو این مورد!
یک هفته‌ای باید مشکلات رو حل کنم!
Shield Aryan
https://youtu.be/xx0ddeEaAPk?si=wj4o8qGwC8CkVRf0
دوستان یه توضیحی در مورد این ویدیو بدم!
این ویدیو من نیست و مال یه یوتیوبر به اسم joe هستش! این یوتیوبر تاریخ ایران رو با پیشگویی هایی که در کتاب های مقدس و پیشگو های اون زمان بوده کنار هم گذاشته و پیشگویی که عملا در مرکزش قرار داریم یا داریم به سمت مرکزش میریم رو میگه! من خودم اهل مذهب و اینا نیستم و بیشتر منطقی به موضوعات نگاه میکنم! ولی خیلی برام جالب بود! میزارم که شما هم ببینید! من رو که حسابی تکون دادش!
2
یه آپدیت بدیم که داریم چکار میکنیم!
کانال خاک نخوره😅
آپدیت:
⚙️ کارکتر همراه
⚙️ بهینه سازی LOD و pooling و frustum
داستان
⏸️ دمو
👍3
مراسم گیم اواردز مراسمی بود که هم خوب بود هم بد!
ولی ارزش بیدار موندن نداشت!
الکی بیدارموندم بخاطرش!
خوبی مراسم این بود اکسپدیشن۳۳ همه جوایز رو درو کرد همون‌طور که حدس زده میشد!
بهترین بازی اکشن رسید به هیدیس ۲
خلاق ترین دووم : عصر تاریکی

ولی بهترین بازی خانوادگی رسید به دانکی کونگ در حالی که اسپلیت فاکشن نامزد بود و حق این بازی بود
و از همه احمقانه تر جایزه بهترین سریال اقتباسی رسید به فصل دوم لست! سریال دویل مای کرای ، ماینکرافت، یونیت دان نامزد بود!

بازی هایی مثل تام رایدر جدید هم سوپرایز جالب مراسم بودن
شروع درد ما از اولین روز بهمن شروع میشه!

این همه پیگیری کردیم، بسیج رفتیم که مثلا کسر اموزشی دریافت کنیم و تو شهر خودمون باشیم!
حالا نتیجه: سپاه شهرستانمون تا تیرما سال جدید پر شده و نمی تونن من رو پذیرش!
دوماه غیبت رو بخاطر سابقه ۴۵ روزه بسیج الان خوردم و عملا وقتم رو تلف کردم!
و قرار از بهمن ماه امسال که معلوم نیست کدوم ارگان و کدوم استان بیوفتم!
حالا بیام ثابت کنم که آقا عمدی نبوده در حالا هرچی کاسه کوزست قراره سر ما بشکنه!

آقا در کل از من نصحیت بخواید از دوره سربازی این رو میگم:
هیچ وقت به آشناتون تو هر ارگان یا اداره‌ای که باشه دل نبندید! من الان از همین دل بستن زخم خوردم!
سه ماه که اضافه خدمت دارم، آموزشی کوفتی هم روش!
کار ندارم به این حرفا که میگذره و چیزیه که شده و مردم میشم و از اینجور حرفا!

چون اصلا این مدل حرف ها رو قبول ندارم ، این مدل حرف طبل های تو خالی هستن
😁2
This media is not supported in your browser
VIEW IN TELEGRAM
«قهوه داغ ، کتاب خوب 📖 و یه پنجره رو به بارون 🌧
بعضی روزا همینا کافیه برای خوشحالی 🤍
تو امروزت چطور می‌گذره؟»
یلدا همه مبارک
2
این روز ها همه حالشون بده
💔1
با این حال
شروع سال جدید میلادی 2026 رو به همه مسیحیان داخل ایران تبریک میگم
امیدوارم شروع امسال با خبر های خوب برای همه همراه باشه!
❤‍🔥3👏2
مطلب جدید
دوستان من یه موردی رو در مورد memory توی پروژه متوجه شدم! که مشخصا لازمه بگم! شاید یه سری هاتون این رو بدونید! وظیفه RAM یا همون memory تو یه بازی ذخیره تسکچر و مدل و Asset bundle هستش!
یه مشکلی در این زمینه وجود داره!
اونم اینه که وقتی دارید از یک scene به scene دیگه ای لود میشید این حافظه بصورت خودکار آزاد نمیشه و محتوای scene قبلی که دیگه داخلش نیستید رو نگه میداره و تبدیل به یه بار اضافی تو حافظه Memory میشه
1
با تسک منیجر این رو باید چک کنید!
فرض کنید ما دو Scene با اسم های Menu و level 1 داریم!
حافظه ای که menu در Memory اشغال میکنه 350 مگابایت و حافظه level 1 قراره بگیره 600 مگابایت هستش!
بصورت اصولی و درست وقتی که شما از Menu به level 1 لود میشید! حافظه ای که menu اشغال کرده باید ازاد بشه! اما این اتفاق نمی افته و باعث میشه حجمی که بعد لود در Memory اشغال میشه 950 مگابایت (جمع هر دو scene) بشه!
🔥1
و از همه بد تر وقتی دوباره از level 1 به menu برگردید این حجم باز هم افزایش پیدا میکنه!
با وجود اینکه یک بار دیتا های تکسچر ، مدل و Asset bundle در Memory ذخیره شدن , ولی ازشون استفاده نمیکنه و دوباره دیتا ها رو در RAM تولید میکنه! و اگر این حرکت چند دور تکرار بشه حافظه Memory RAM پر میشه و شاهد افت فریم خواهید بود!
1
پس در یک نتیجه کلی:
وقتی SceneManager.LoadScene() رو صدا می‌زنی، Unity به طور پیش‌فرض همه GameObjectها رو نابود می‌کنه، اما:

تکسچرها و مدل‌ها تو مموری می‌مونن

Asset Bundle‌ها آزاد نمی‌شن

منابعی که بهشون reference دارن باقی می‌مونن

Garbage Collection به طور خودکار کار نمی‌کنه
راه حلی که من فعلا دارم تست میکنم به این کد ها خلاصه میشه که دارم تست میکنم👇🏻
کد اصلی:
using UnityEngine;
using UnityEngine.SceneManagement;
using System.Collections;

public class SquirrelySceneManager : MonoBehaviour
{
// به جای LoadScene معمولی، از این استفاده کن
public void LoadSceneWithMemoryCleanup(string sceneName)
{
StartCoroutine(LoadSceneAndCleanup(sceneName));
}

IEnumerator LoadSceneAndCleanup(string sceneName)
{
// 1. Load Scene جدید
AsyncOperation asyncLoad = SceneManager.LoadSceneAsync(sceneName);

// 2. نگهداری Scene قبلی رو غیرفعال کن (برای جلوگیری از Drop فریم)
asyncLoad.allowSceneActivation = false;

// 3. منتظر بمون تا Loading تموم شه
while (!asyncLoad.isDone)
{
// فریم ریت رو نگه دار - اینجا می‌تونی Loading Screen نشون بدی
yield return null;
}

// 4. حالا Scene جدید رو فعال کن
asyncLoad.allowSceneActivation = true;

// 5. بعد از Load، Cleanup رو شروع کن
yield return new WaitForSeconds(0.1f); // کمی صبر کن

// 6. مهم‌ترین قسمت - آزاد کردن منابع استفاده‌نشده
Resources.UnloadUnusedAssets();

// 7. فراخوانی اجباری Garbage Collection
System.GC.Collect();
System.GC.WaitForPendingFinalizers();
System.GC.Collect();

Debug.Log(" Scene loaded & memory cleaned!");
}

// برای آنلود کردن دستی Assetهای بزرگ
public void UnloadBigAssets()
{
// مثال: آنلود تکسچرهای بزرگ که دیگه نیاز نداری
var bigTextures = Resources.FindObjectsOfTypeAll<Texture2D>();
foreach (var tex in bigTextures)
{
if (tex.name.Contains("Squirrely_Large"))
{
Resources.UnloadAsset(tex);
}
}
}
}
نگه داری فریم ریت:
public class SquirrelyLoadingScreen : MonoBehaviour
{
public Image loadingBar;
public Text loadingText;
public string[] squirrelFacts = {
"سنجاب‌ها می‌تونن 15 ساعت بخوابن...",
"دندونای سنجاب همیشه در حال رشدن..."
};

void Update()
{
// نمایش فکت‌های ترسناک سنجابی
loadingText.text = squirrelFacts[Random.Range(0, squirrelFacts.Length)];
}
}