Ctrl+K

RigidBodyComponent

اعلان

public class Strawberry.Components.Physics.RigidBodyComponent

این کلاس یک جزء (Component) جسم صلب است که روی موجود (Entity) مالک قرار می‌گیرد و جسم فیزیکی آن را مدیریت می‌کند.

ارث‌بری از: Strawberry.Core.BaseComponent

ویژگی‌ها

Transform

جزء تبدیل مالک را دریافت می‌کند.

TransformComponent Transform { get }

Body

جسم فیزیکی استفاده‌شده توسط این جزء.

Body Body { get }

UpdateDirection

جهت بروزرسانی را می‌گیرد، ببینید UpdateDirection. پیش‌فرض UpdateDirection.PhysicsToWorld است.

UpdateDirection UpdateDirection { get set }

CollidingFixtures

مجموعه‌ی فقط‌خوانایی از فیکسچرهایی که در حال حاضر با این جسم برخورد دارند.

IReadOnlyCollection<Fixture> CollidingFixtures { get }

IsColliding

آیا این جسم در حال حاضر با جسم دیگری برخورد دارد.

bool IsColliding { get }

Type

BodyType Type { get set }

IgnoreGravity

تنظیم می‌کند که آیا جاذبه نادیده گرفته شود. پیش‌فرض false است.

bool IgnoreGravity { get set }

LinearVelocity

سرعت خطی جسم را به واحد صحنه بر ثانیه دریافت یا تنظیم می‌کند. تنظیم مستقیم این مقدار هر سرعت ناشی از نیروها یا تکانه‌ها را بازنویسی می‌کند.

Vector2 LinearVelocity { get set }

AngularVelocity

سرعت زاویه‌ای جسم را به رادیان بر ثانیه دریافت یا تنظیم می‌کند.

float AngularVelocity { get set }

LinearDamping

ضریب میرایی خطی را دریافت یا تنظیم می‌کند. مقادیر بالاتر باعث کند شدن سریع‌تر جسم می‌شوند (شبیه‌سازی مقاومت هوا). پیش‌فرض 0 است.

float LinearDamping { get set }

AngularDamping

ضریب میرایی زاویه‌ای را دریافت یا تنظیم می‌کند. مقادیر بالاتر باعث توقف سریع‌تر چرخش جسم می‌شوند. پیش‌فرض 0 است.

float AngularDamping { get set }

Mass

جرم جسم را به کیلوگرم دریافت می‌کند.

float Mass { get }

Inertia

لختی چرخشی جسم (مقاومت در برابر شتاب زاویه‌ای) را دریافت می‌کند.

float Inertia { get }

Awake

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

bool Awake { get set }

FixedRotation

تنظیم می‌کند که آیا چرخش جسم قفل است. وقتی true باشد، جسم هنوز می‌تواند حرکت کند اما از نیروها یا برخوردها نمی‌چرخد. برای شخصاژهای بالا-به-پایین که نباید غلت بزنند مفید است.

bool FixedRotation { get set }

متدها

IsCollidingWith

بررسی می‌کند که آیا این جسم در حال حاضر با فیکسچر مشخص‌شده برخورد دارد.

bool IsCollidingWith(Fixture fixture)

پارامترها:

نام نوع توضیحات
fixture tainicom.Aether.Physics2D.Dynamics.Fixture فیکسچر برای بررسی

خروجی: true اگر در حال حاضر با فیکسچر مشخص‌شده برخورد داشته باشد

IsCollidingWithBody

بررسی می‌کند که آیا این جسم در حال حاضر با هر فیکسچری متعلق به جسم مشخص‌شده برخورد دارد.

bool IsCollidingWithBody(Body body)

پارامترها:

نام نوع توضیحات
body tainicom.Aether.Physics2D.Dynamics.Body جسم برای بررسی

خروجی: true اگر در حال حاضر با هر فیکسچری از جسم مشخص‌شده برخورد داشته باشد

IsCollidingWith

بررسی می‌کند که آیا این جسم در حال حاضر با هر فیکسچری متعلق به جزء جسم صلب مشخص‌شده برخورد دارد.

bool IsCollidingWith(RigidBodyComponent rigidBody)

پارامترها:

نام نوع توضیحات
rigidBody Strawberry.Components.Physics.RigidBodyComponent جزء جسم صلب برای بررسی

خروجی: true اگر در حال حاضر با جزء جسم صلب مشخص‌شده برخورد داشته باشد

OnComponentAdded override

void OnComponentAdded(BaseComponent component)

پارامترها:

نام نوع توضیحات
component Strawberry.Core.BaseComponent

EnableCollisionEvent

فراخوانی‌های برخورد و جدایی را برای جسم فیزیکی فعال می‌کند.

void EnableCollisionEvent()

ApplyForce

نیرویی به مرکز جرم جسم اعمال می‌کند. بر اساس جرم جسم، سرعت را به‌صورت تدریجی تغییر می‌دهد. برای رانش پیوسته (محرک‌ها، باد) استفاده کنید.

void ApplyForce(Vector2 force)

پارامترها:

نام نوع توضیحات
force Strawberry.Math.Vector2 بردار نیرو به واحد صحنه بر ثانیه‌ی مربع.

ApplyForce

نیرویی به یک نقطه‌ی مشخص در فضای جهانی روی جسم اعمال می‌کند. اگر نقطه مرکز جرم نباشد ممکن است گشتاور تولید کند (که باعث چرخش می‌شود).

void ApplyForce(Vector2 force, Vector2 point)

پارامترها:

نام نوع توضیحات
force Strawberry.Math.Vector2 بردار نیرو به واحد صحنه بر ثانیه‌ی مربع.
point Strawberry.Math.Vector2 نقطه‌ی فضای جهانی که نیرو به آن اعمال می‌شود، به واحد صحنه.

ApplyLinearImpulse

تکانه‌ی آنی (ایمپالس) به مرکز جرم جسم اعمال می‌کند. سرعت را بلافاصله تغییر می‌دهد. برای پرش‌ها، ضربه‌ها، انفجارها استفاده کنید.

void ApplyLinearImpulse(Vector2 impulse)

پارامترها:

نام نوع توضیحات
impulse Strawberry.Math.Vector2 بردار تکانه به واحد صحنه بر ثانیه.

ApplyLinearImpulse

تکانه‌ی آنی را به یک نقطه‌ی مشخص در فضای جهانی اعمال می‌کند. اگر نقطه مرکز جرم نباشد ممکن است تکانه‌ی زاویه‌ای تولید کند (که باعث چرخش می‌شود).

void ApplyLinearImpulse(Vector2 impulse, Vector2 point)

پارامترها:

نام نوع توضیحات
impulse Strawberry.Math.Vector2 بردار تکانه به واحد صحنه بر ثانیه.
point Strawberry.Math.Vector2 نقطه‌ی فضای جهانی که تکانه به آن اعمال می‌شود، به واحد صحنه.

ApplyAngularImpulse

تکانه‌ی زاویه‌ای آنی اعمال می‌کند و سرعت زاویه‌ای جسم را بلافاصله تغییر می‌دهد. مقادیر مثبت در جهت پادساعت‌گرد می‌چرخانند.

void ApplyAngularImpulse(float impulse)

پارامترها:

نام نوع توضیحات
impulse System.Single تکانه‌ی زاویه‌ای به رادیان بر ثانیه.

ApplyTorque

گشتاوری به جسم اعمال می‌کند که شتاب زاویه‌ای ایجاد می‌کند.

void ApplyTorque(float torque)

پارامترها:

نام نوع توضیحات
torque System.Single گشتاور به نیوتن-متر.

Wake

جسم را اگر خوابیده بوده بیدار می‌کند. معادل Awake = true، اما در کدی مانند rigidBody.Wake() پس از اعمال تکانه خواناتر است.

void Wake()

OnFixedUpdate override

void OnFixedUpdate()

OnFinished override

void OnFinished()