AssetManager
اعلان
public class Strawberry.Core.AssetManager
یک registry کلید-رشتهای سلسلهمراتبی برای داراییهای موتور (تکسچرها، چهرهها، فونتها، صداها، لایهها، پیشساختهها و غیره). از جستجوی معکوس (دارایی ← نام) پشتیبانی میکند. ترتیب جستجو: 1. این مدیر 2. مدیر والد 3. بازگرداندن null.
ارثبری از: Strawberry.DisposableReferenceObject
سازندهها
AssetManager
یک مدیر دارایی ریشه بدون والد میسازد. از این برای مدیرهای سراسری (مانند IGameContext.Assets) استفاده کنید.
void AssetManager()
AssetManager
یک مدیر دارایی میسازد که برای داراییهای محلی یافتنشده به parent رجوع میکند (مانند Scene.Assets).
void AssetManager(AssetManager parent)
پارامترها:
| نام | نوع | توضیحات |
|---|---|---|
parent |
Strawberry.Core.AssetManager |
مدیر والد برای رجوع، یا null برای یک ریشه. |
ویژگیها
Parent
مدیر دارایی والد را دریافت میکند، یا null اگر این یک مدیر ریشه (سراسری) باشد.
AssetManager Parent { get }
Count
تعداد داراییهای ثبتشده مستقیماً در این مدیر را دریافت میکند (بدون احتساب داراییهای مدیرهای والد).
int Count { get }
متدها
Register
یک دارایی را با نام name ثبت میکند. مدیر مالکیت دارایی را بر عهده میگیرد (هنگام Dispose آن را دور میریزد) مگر اینکه owned برابر false باشد. نامها باید در یک مدیر واحد یکتا باشند.
void Register<T>(string name, T asset, bool owned = true)
پارامترها:
| نام | نوع | توضیحات |
|---|---|---|
name |
System.String |
نام یکتا دارایی در این مدیر. |
asset |
T |
شیء دارایی. |
owned |
System.Boolean = true |
اگر true (پیشفرض)، دارایی هنگام Dispose این مدیر دور ریخته میشود. اگر false، طولعمر دارایی جای دیگری مدیریت میشود. |
پارامترهای نوع:
T— نوع دارایی.
استثناها:
System.ArgumentNullException—nameیاassetبرابرnullاست.System.ArgumentException— داراییای با همین نام از قبل در این مدیر ثبت شده است.
Unregister
یک دارایی را با نام لغو ثبت میکند. دارایی دور ریخته نمیشود.
object Unregister(string name)
پارامترها:
| نام | نوع | توضیحات |
|---|---|---|
name |
System.String |
نام دارایی برای لغو ثبت. |
خروجی: دارایی لغو ثبتشده، یا null اگر هیچ دارایی با آن نام یافت نشد.
Unregister
یک نمونهی دارایی مشخص را با هویت مرجع لغو ثبت میکند. روی مدیرهای والد لغو ثبت انجام نمیشود (فقط مدیر فعلی).
string Unregister<T>(T asset)
پارامترها:
| نام | نوع | توضیحات |
|---|---|---|
asset |
T |
نمونهی دارایی برای لغو ثبت. |
خروجی: نامی که دارایی زیر آن ثبت شده بود، یا null اگر یافت نشد.
پارامترهای نوع:
T— نوع دارایی.
Clear
همهی داراییها را از این مدیر حذف میکند.
void Clear()
Get
یک دارایی را با نام دریافت میکند و اگر محلی یافت نشد زنجیرهی والد را طی میکند.
T Get<T>(string name)
پارامترها:
| نام | نوع | توضیحات |
|---|---|---|
name |
System.String |
نام دارایی. |
خروجی: دارایی.
پارامترهای نوع:
T— نوع دارایی مورد انتظار.
استثناها:
System.Collections.Generic.KeyNotFoundException— هیچ دارایی با نام دادهشده در این مدیر یا هر والد وجود ندارد.System.InvalidCastException— دارایی با این نام وجود دارد اما از نوعTنیست.
TryGet
تلاش میکند یک دارایی را با نام دریافت کند و اگر محلی یافت نشد زنجیرهی والد را طی میکند.
bool TryGet<T>(string name, out T asset)
پارامترها:
| نام | نوع | توضیحات |
|---|---|---|
name |
System.String |
نام دارایی |
asset |
out T |
شیء دارایی اگر یافت شد و نوع T باشد، در غیر این صورت null |
خروجی: true اگر دارایی یافت شد و نوع T باشد، در غیر این صورت false
پارامترهای نوع:
T— نوع دارایی
GetObject
دریافت غیرجنریک. شیء خام را برمیگرداند یا null اگر یافت نشد.
object GetObject(string name)
پارامترها:
| نام | نوع | توضیحات |
|---|---|---|
name |
System.String |
Contains
بررسی میکند آیا دارایی با نام دادهشده در این مدیر یا هر والد وجود دارد.
bool Contains(string name)
پارامترها:
| نام | نوع | توضیحات |
|---|---|---|
name |
System.String |
نام دارایی |
خروجی: true اگر دارایی در مدیر یا زنجیرهی والدش وجود داشته باشد، در غیر این صورت false
Contains
بررسی میکند آیا دارایی از نوع T با نام دادهشده در این مدیر یا هر والد وجود دارد.
bool Contains<T>(string name)
پارامترها:
| نام | نوع | توضیحات |
|---|---|---|
name |
System.String |
نام دارایی |
خروجی: true اگر دارایی در مدیر یا زنجیرهی والدش وجود داشته باشد، در غیر این صورت false
پارامترهای نوع:
T— نوع دارایی مورد انتظار
GetName
نامی که دارایی زیر آن ثبت شده را برمیگرداند، یا null اگر دارایی در این مدیر یا هر والد ثبت نشده باشد. اگر دارایی زیر چند نام در همان مدیر ثبت شده باشد، اولین نام ثبتشده برگردانده میشود.
string GetName<T>(T asset)
پارامترها:
| نام | نوع | توضیحات |
|---|---|---|
asset |
T |
نمونهی دارایی. |
خروجی: نام ثبتشدهی دارایی، یا null اگر یافت نشد.
پارامترهای نوع:
T— نوع دارایی.
TryGetName
تلاش میکند نام یک دارایی را دریافت کند.
bool TryGetName<T>(T asset, out string name)
پارامترها:
| نام | نوع | توضیحات |
|---|---|---|
asset |
T |
شیء دارایی برای جستجو |
name |
out System.String |
نام دارایی یا null اگر دارایی در مدیر یا زنجیرهی والدش وجود نداشته باشد |
خروجی: true اگر نام یافت شد، در غیر این صورت false
پارامترهای نوع:
T— نوع دارایی مورد انتظار
GetLocalAssets
دنبالهای شمارشی از همهی زوجهای (نام، دارایی) ثبتشده مستقیماً در این مدیر را برمیگرداند. داراییهای والد را شامل نمیشود.
IEnumerable<KeyValuePair<string, object>> GetLocalAssets()
GetLocalNames
همهی نامهای دارایی ثبتشده مستقیماً در این مدیر را برمیگرداند. داراییهای والد را شامل نمیشود.
IEnumerable<string> GetLocalNames()
CleanUnmanaged protected override
void CleanUnmanaged()