ניתור וחיכוך
חלק מהיחידה פיזיקה ומשחקיות במסלול ה-Unity של Coddy. שיעור 12 מתוך 71.
האופן שבו קוליידר קופץ ומחליק נובע מה-PhysicsMaterial שלו (כך הוא נקרא ב-Unity 6; בגרסאות ישנות יותר הוא נקרא PhysicMaterial). bounciness נע בין 0 (ללא קפיצה) ל-1 (שומר על כל המהירות שלו). dynamicFriction מאט גוף שמחליק, ו-staticFriction קובע כמה חזק צריך לדחוף גוף במנוחה לפני שהוא מתחיל להחליק. קוליידר ללא חומר מתנהג כאילו החיכוך שלו הוא 0.6 והקפיציות שלו היא 0. כדור הקפיצה הזה מעניק לקוליידר שלו חומר קפיצי משלו:
void Start()
{
PhysicsMaterial mat = GetComponent<Collider>().material; // העותק העצמי של ה-collider הזה
mat.bounciness = 0.9f;
mat.bounceCombine = PhysicsMaterialCombine.Maximum;
}במגע משתתפים שני קוליידרים, ולכן Unity משלבת את שני הערכים שלהם. כל חומר קובע איך לעשות זאת, באמצעות bounceCombine עבור קפיציות ו-frictionCombine עבור חיכוך, וכל אחד מהם מקבל אחד מארבעה מצבים: Average (ברירת המחדל), Minimum, Multiply או Maximum. כאשר שני הקוליידרים מבקשים מצבים שונים, המצב שמופיע מאוחר יותר ברשימה הוא הקובע. על רצפה ללא חומר, Average היה נותן לכדור (0.9 + 0) / 2 = 0.45. עם Maximum הוא שומר על 0.9 מהמהירות שלו בכל קפיצה, כלומר 0.9 x 0.9 = 81% מהגובה שלו, מכיוון שהגובה תלוי בריבוע המהירות.
.material נותן לקוליידר עותק משלו של החומר שלו, ולכן השינויים משפיעים רק עליו. .sharedMaterial הוא נכס החומר עצמו, המשותף לכל קוליידר שמשתמש בו, והוא null בקוליידר שמעולם לא הוקצה לו חומר.
אתגר
קלתנו לטרמפולינה ולקרח ערכים משלהם לקפיציות ולחיכוך.
- בתוך
Start(), קחו אתPhysicsMaterial mat = GetComponent<Collider>().material;והגדירו אתmat.bounciness = bounce;, אתmat.dynamicFrictionואתmat.staticFrictionלערךfriction. - הגדירו את
mat.bounceCombine = PhysicsMaterialCombine.Maximum;ואתmat.frictionCombine = PhysicsMaterialCombine.Minimum;, כדי שהערכים של המשטח עצמו יקבעו.
לחצו על "שחק": הכדור קופץ גבוה מהטרמפולינה. לאחר מכן לחצו על "בדיקה".
נסו בעצמכם
using UnityEngine;
public class Surface : MonoBehaviour
{
public float bounce = 0f;
public float friction = 0.6f;
void Start()
{
// תנו ל-collider הזה material משלו עם bounce ו-friction
}
}
כל השיעורים ביחידה פיזיקה ומשחקיות
1גוף קשיח
כוח הכבידה והמסהדחיפה באמצעות AddForceקפיצה באמצעות מתקףFixedUpdate לפיזיקהמהירותגופים קינמטייםחזרה: משטח שיגור2התנגשויות
OnCollisionEnterבמה פגעתי?להישבר בעת פגיעהלעמוד על הקרקעניתור וחיכוךצורות Colliderסיכום: קיר שביר5פרויקט: מרוץ המטבעות
הכדור המתגלגלמטבעות לאיסוףתרגלו בעצמכם: Unity אונליין