سؤال

أواجه مشكلة في الفيزياء في الوحدة ثلاثية الأبعاد.أنا أريد أن ترتد الكرة من الجدران وانتقل إلى اتجاه آخر.عندما تضرب الكرة الجدار الذي ترتد مباشرة مرة أخرى.لقد حاولت تغيير الاتجاه لتكون متعامدة إلى الاتجاه الذي يضرب الجدار ولكنه لا يغير الاتجاه.بسبب هذا، تستمر الكرة فقط في ضرب الجدار وكذاب الظهر مباشرة.

ثانيا، وأحيانا تمر الكرة عبر الحائط.تحتوي الجدران على Block Blosiders بينما تحتوي الكرة على كرش أرضي.لديهم جميعا ديناميكية مستمرة مثل وضع الكشف عن التصادم.

هل كانت مفيدة؟

المحلول

إليك رابط لموضوع مماثل:

http://forum.unity3d.com/threads/22063-i-shot-an-arrow-up-in-the-air...؟highlight=shooting+arrow

شخصيا، أود كود الدوران باستخدام Lookat كما يوحي Gargarathsunman في هذا الرابط، ولكن إذا كنت ترغب في القيام بذلك مع الفيزياء، فربما تحتاج إلى إنشاء الرمح في أجزاء على الأقل، كما يوحي الآخرونفي الرابط، وإضافة قيم السحب والسحب الزاوية المختلفة إلى كل جزء، ربما كثافة كذلك.إذا قمت برقي الرمح في فراغ، فلن يشير إلى الأرض أبدا لأن السحب الجوي يلعب جزءا مهما (كل الأشياء تنخفض بنفس السعر بغض النظر عن الكتلة، شكرا لك يا سيدي إسحاق نيوتن).إنها محاكاة صعبة لمحرك الفيزياء للحصول على صواب.

نصائح أخرى

ربما حاول الحصول على نقطة جماعية بين المجال الخاص بك وحرفك ثم قبض على سرعتك الصارمة والعودة إليها عن طريق نقطة الاصطدام الطبيعي.

مثال على برنامج نصي للقيام بذلك ---> (ضع هذا البرنامج النصي على الحائط مع Collider)

c # script: giveacodicetagpre.

أنا مؤخرا مشكلة بصاروخ يمر عبر الأهداف بسبب السرعة وحتى مع اكتشاف التصادم الديناميكي المستمر لم أتمكن من حدوث ذلك كثيرا.

قمت بحل هذا باستخدام برنامج نصي "dontgothroghings" نشر في ويكي. Unity3d.com. يستخدم هذا Raycasting بين المراكز الحالية والسابقة، ثم يضمن أن ينتهي الإطار مع المخططات المتصلة بالرسائل حدث OnTrigger. عملت في كل مرة نظرا لأنها مجرد مسألة إرفاق البرنامج النصي سهل الاستخدام للغاية.

أعتقد أن إجابة الفيزياء كما اقترح الآخرون استخدام مكونات متعددة مع السحب المختلفة على الرغم من أنه عادة ما أعتقد أنك تريد فقط جامدة واحدة على الوالد. بدلا من الاتجاه باستخدام Transform.Lookat، يمكنك محاولة حساب استخدام Quaternion.LookRotation من Rigidbody.velocity. ثم استخدم Vector3.angle لمعرفة مقدار ما يتم إيقاف تشغيله. كلما زاد من اختلاف زاوية أكبر قوة ينبغي أن تكون من ذوي الخبرة ثم استخدم Rigidbody.applyTorque. ربما استخدم الخطيئة (Angledifcerence) * ثابتا حتى يتم تطبيق قوة أقل لدرجة أن تقترب من الدوران السليم.

هنا هو بعض الكود الذي استخدمته على صاروخي على الرغم من أنه سيتعين عليك استبدال بعض الأشياء حيث كنت أشير نحو هدف ثابت وستحتاج إلى استخدام السرعة الخاصة بك. giveacodicetagpre.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top