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()