Ctrl+K

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.ArgumentNullExceptionname یا 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()