Shield Aryan – Telegram
و از همه بد تر وقتی دوباره از 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)];
}
}
دیباگ مموری:
void Update()
{
if (Input.GetKeyDown(KeyCode.M))
{
// نمایش مموری فعلی
long memory = System.GC.GetTotalMemory(false) / 1024 / 1024;
Debug.Log($"Memory Usage: {memory} MB");

// نمایش تعداد Textureهای لود شده
var textures = Resources.FindObjectsOfTypeAll<Texture2D>();
Debug.Log($"Loaded Textures: {textures.Length}");
}
}
این سه کد تو تست اولیه هست تا بتونم این مشکل رو تو بحث Memory RAM حل کنم!
1🔥1
🚨اینترنت ها هم داره ضعیف میشه ناجور 🚨

🛜 حالا باید دوباره بگردیم دنبال فیلترشکن جوابگو📉
امروز اومدم کارکتر جدید بازی رو از روی مدل پروتوتایپش که خیلی زیادی سنگینه تکمیل کنم! 50 درصد کار رفته! بنظرتون تا امشب تکمیل میشه؟
امروز برای ناهار خانواده دور هم جمع شدن!
خونه فامیل این رو پیدا کردیم!
کیا این رو یادشونه
80 درصد کاراکتر جدید ساخته شده!
حالا بگید کاراکتر جدید چه موجودیه!؟😊
1
Forwarded from بازیسازان مستقل ایران | IGD (Shahab Subziz)
بیانیه بازی‌سازان مستقل ایران

به نام خدا

بازی‌سازان محترم، درود!

در این روزهای دشوار که بسیاری از جوانان هم‌نسل ما با چالش‌های اقتصادی و فشارهای زندگی مواجه هستند، ما همواره با دل‌های خود در کنار مردم ایران هستیم. به عنوان بازی‌سازان مستقل و علاقه‌مندان به حوزه بازی‌های دیجیتال، بر اهمیت همبستگی و کار تیمی تأکید می‌کنیم. همان‌طور که در دشوارترین مراحل بازی‌ها، اتحاد تنها راه پیروزی است.

از تمام اعضای محترم کانال، به ویژه جوانان خلاق و پرانرژی نسل Z، دعوت می‌کنیم تا با روحیه اتحاد و همدلی که در دنیای بازی‌ها نشان می‌دهیم، در کنار یکدیگر به عنوان یک خانواده بمانیم و به فکر هموطنان و کشور عزیزمان ایران باشیم.

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

با آرزوی پیروزی حق بر باطل

بازیسازان مستقل ایران