קו ראייה
חלק מהיחידה פיזיקה ומשחקיות במסלול ה-Unity של Coddy. שיעור 37 מתוך 63.
קרבה לשומר אינה זהה לכך שהוא רואה אותך: קיר ביניכם חוסם את שדה הראייה. כדי לבדוק קו ראייה, שלחו קרן מהעין לכיוון המטרה, ובדקו שהדבר הראשון שהיא פוגעת בו הוא המטרה עצמה. הכיוון הוא מיקום המטרה פחות המיקום שלכם, וקרן באורך הזה מגיעה למטרה:
public Transform target;
bool CanSee()
{
Vector3 toTarget = target.position - transform.position;
if (Physics.Raycast(transform.position, toTarget, out RaycastHit hit, toTarget.magnitude))
{
return hit.transform == target;
}
return false;
}מצלמת אבטחה על עמוד מתעדת I see you כאשר CanSee() מחזירה true. כשהמטרה נמצאת בשטח פתוח, הפגיעה הראשונה של הקרן היא במטרה. כשהמטרה נמצאת מאחורי ארגז, הקרן פוגעת קודם בארגז, hit.transform הוא של הארגז, והתשובה היא false. גם Physics.Raycast בפני עצמו מחזיר true עבור הארגז, ולכן משווים את הפגיעה למטרה.
למטרה דרוש collider כדי שהקרן תוכל למצוא אותה. כיוון הקרן אינו צריך להיות מנורמל, מכיוון שאורכה נקבע לפי maxDistance. Physics.Linecast(from, to) בודק את השאלה מהכיוון ההפוך: האם collider כלשהו נמצא בין שתי נקודות? !Physics.Linecast(eye, target.position, wallMask) פירושו שאין קיר בדרך.
אתגר
בינונימגדל הזקיף משגיח על השחקן. הסקריפט Sentry נמצא על המגדל, ובחלון Inspector מגדירים לו את player ואת range לערך 8. צבע המגדל מראה מה הוא רואה:
- כל עוד הוא יכול לראות את השחקן, צבעו את המגדל באדום (
Color.red), ובירוק אחרת. - הוא רואה את השחקן רק כשהשחקן נמצא במרחק של לא יותר מ־
rangeיחידות ושום דבר לא עומד ביניהם.
לחצו על Play והוליכו את השחקן מסביב לקיר בעזרת החצים, ואז לחצו על Check.
נסו בעצמכם
using UnityEngine;
public class Sentry : MonoBehaviour
{
public Transform player;
public float range = 8f;
void Update()
{
// אדום כל עוד הזקיף יכול לראות את השחקן, אחרת ירוק.
}
}
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה פיזיקה ומשחקיות
1גוף קשיח
כוח הכבידה והמסהדחיפה באמצעות AddForceקפיצה באמצעות מתקףFixedUpdate לפיזיקהמהירותגופים קינמטייםחזרה: משטח שיגור2התנגשויות
OnCollisionEnterבמה פגעתי?להישבר בעת פגיעהלעמוד על הקרקעניתור וחיכוךצורות Colliderסיכום: קיר שביר5פרויקט: מרוץ המטבעות
הכדור המתגלגלמטבעות לאיסוף