Prefab
اعلان
public class Strawberry.Core.Prefab
یک الگوی پیشساخته (Prefab) برای ساخت موجود (Entity). یکی را از یک موجود موجود (توسط Prefab) یا بهصورت fluent با PrefabBuilder بسازید، سپس Instantiate را برای ساخت کپی فراخوانی کنید. ارجاعات دارایی (چهره (Sprite)، تکسچر و غیره) هنگام snapshot با نام سریالایز میشوند و هنگام instantiate با نام حل میشوند.
ارثبری از: Strawberry.DisposableReferenceObject
سازندهها
Prefab
یک پیشساخته با snapshot گرفتن از جزء (Component)های موجود روی templateEntity میسازد. ارجاعات دارایی با snapshotAssets به نام حل میشوند.
void Prefab(Entity templateEntity, AssetManager snapshotAssets = null)
پارامترها:
| نام | نوع | توضیحات |
|---|---|---|
templateEntity |
Strawberry.Core.Entity |
موجود برای snapshot. |
snapshotAssets |
Strawberry.Core.AssetManager = null |
AssetManager برای حل دارایی ← نام. معمولاً مدیر سراسری. اگر پیشساخته هیچ ارجاع دارایی ندارد میتواند null باشد. |
متدها
Instantiate
یک موجود جدید با جزءهای این پیشساخته نمونهسازی میکند و ارجاعات دارایی را با instantiateAssets حل میکند.
Entity Instantiate(Scene scene, AssetManager instantiateAssets = null, Vector2? position = null)
پارامترها:
| نام | نوع | توضیحات |
|---|---|---|
scene |
Strawberry.Core.Scene |
صحنهای (Scene) که موجود جدید به آن تعلق خواهد داشت. |
instantiateAssets |
Strawberry.Core.AssetManager = null |
AssetManager برای حل نام ← دارایی هنگام نمونهسازی. معمولاً مدیر محلی صحنه (که به مدیر سراسری رجوع میکند). اگر پیشساخته هیچ ارجاع دارایی ندارد میتواند null باشد. |
position |
Strawberry.Math.Vector2? = null |
موقعیت جهانی اختیاری. اگر null باشد، موقعیت الگو استفاده میشود. اگر پیشساخته TransformComponent نداشته باشد نادیده گرفته میشود. |
خروجی: موجود تازه ساختهشده، که قبلاً به صحنه اضافه شده است.
InstantiateDetached
بدون اضافهکردن به صحنه نمونهسازی میکند. برای pooling مفید است.
Entity InstantiateDetached(Scene scene, AssetManager instantiateAssets = null)
پارامترها:
| نام | نوع | توضیحات |
|---|---|---|
scene |
Strawberry.Core.Scene |
|
instantiateAssets |
Strawberry.Core.AssetManager = null |
CleanManaged protected override
void CleanManaged()