OverlapSphere ו-SphereCast
חלק מהיחידה פיזיקה ומשחקיות במסלול ה-Unity של Coddy. שיעור 38 מתוך 63.
קרן שואלת על קו. Physics.OverlapSphere(center, radius) שואלת על אזור בצורת כדור: היא מחזירה מערך של כל הקוליידרים שנוגעים בכדור שמרכזו ב־center, ללא כיוון וללא מרחק. הפצצה הזאת משמידה כל ארגז שנמצא בטווח של 3 יחידות כשהיא מתפוצצת:
void Explode()
{
Collider[] hits = Physics.OverlapSphere(transform.position, 3f);
foreach (Collider c in hits)
{
if (c.CompareTag("Crate"))
{
Destroy(c.gameObject);
}
}
Destroy(gameObject);
}המערך מכיל את כל מה שנמצא בטווח: את הרצפה, את הקירות ואת הקוליידר של הפצצה עצמה, כי בדיקות חפיפה אינן מדלגות על הקוליידר שבתוכו הן מתחילות. לכן הלולאה בודקת את התג לפני שהיא פועלת. ה־attachedRigidbody של כל קוליידר הוא ה־Rigidbody שאליו הוא שייך, או null עבור עצמים סטטיים כמו הרצפה.
Physics.SphereCast(origin, radius, direction, out hit, maxDistance) היא קרן עבה: היא מעבירה כדור לאורך הקו ומדווחת על הקוליידר הראשון שהכדור היה נתקל בו. סלע ברדיוס 1 שמתגלגל לעבר רווח ברוחב 1.5 בין שני עמודים שואל אותה אם הוא יכול לעבור: קרן דקה לאורך מרכז הרווח לא פוגעת בכלום, ואילו הטלת כדור פוגעת בעמוד. כמו קרן, הטלת כדור מדלגת על קוליידרים שהיא כבר נוגעת בהם בנקודת ההתחלה שלה.
אתגר
בינוניחמשו את התותח בקרן רחבה. הסקריפט Beam נמצא על התותח, וה-Inspector נותן לו radius של 0.5 ו-range של 12. החצים שמאלה וימינה מסובבים את התותח.
- כשלוחצים על Space, סרקו קדימה מהתותח כדור ברדיוס
radiusובאורךrangeיחידות. - אם הוא פוגע במשהו, רשמו
Hit Poleיחד עם השם של מה שהוא פגע בו, והשמידו את אותו אובייקט. - אם הוא לא פוגע בכלום, רשמו
Miss.
המוט הדק עומד מעט לצד קו האמצע של התותח. לחצו על Play וירו, ואז לחצו על Check.
נסו בעצמכם
using UnityEngine;
public class Beam : MonoBehaviour
{
public float radius = 0.5f;
public float range = 12f;
void Update()
{
if (Input.GetKeyDown(KeyCode.Space))
{
// העבר כדור ברדיוס radius קדימה: השמד את העצם הראשון שהוא פוגע בו.
}
}
}
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה פיזיקה ומשחקיות
1גוף קשיח
כוח הכבידה והמסהדחיפה באמצעות AddForceקפיצה באמצעות מתקףFixedUpdate לפיזיקהמהירותגופים קינמטייםחזרה: משטח שיגור2התנגשויות
OnCollisionEnterבמה פגעתי?להישבר בעת פגיעהלעמוד על הקרקעניתור וחיכוךצורות Colliderסיכום: קיר שביר5פרויקט: מרוץ המטבעות
הכדור המתגלגלמטבעות לאיסוף6Raycasts
Physics.RaycastRaycastHitבדיקת קרקע באמצעות קרןשכבות ו-LayerMaskקו ראייהOverlapSphere ו-SphereCastסיכום: חיישן קרן לייזר