נשיכת הציידים
חלק מהיחידה פיזיקה ומשחקיות במסלול ה-Unity של Coddy. שיעור 63 מתוך 71.
אתגר
בינוניגרום לציידים לנשוך ולהדוף את השחקן לאחור.
- ב־
Hunter, הוסף[SerializeField] private float knockback = 12f;ואתvoid OnCollisionEnter(Collision collision). - בתוך הפונקציה, כאשר
collision.gameObject.TryGetComponent(out Health health)מתקיים, קרא ל־health.TakeDamage(1);. - לאחר מכן דחוף אותו:
awayמהצייד אל השחקן, עם y ששווה ל־0, ועםcollision.rigidbody.AddForce(away.normalized * knockback, ForceMode.Impulse);.
לחץ על "שחק" וראה כמה זמן תחזיק מעמד. לאחר מכן לחץ על "בדיקה".
נסו בעצמכם
using UnityEngine;
public class Hunter : MonoBehaviour
{
[SerializeField] private float speed = 3f;
private Rigidbody rb;
private Transform player;
void Start()
{
rb = GetComponent<Rigidbody>();
player = GameObject.FindWithTag("Player").transform;
}
void FixedUpdate()
{
Vector3 toPlayer = player.position - rb.position;
toPlayer.y = 0f;
Vector3 dir = toPlayer.normalized;
rb.linearVelocity = new Vector3(dir.x * speed, rb.linearVelocity.y, dir.z * speed);
}
}
כל השיעורים ביחידה פיזיקה ומשחקיות
1גוף קשיח
כוח הכבידה והמסהדחיפה באמצעות AddForceקפיצה באמצעות מתקףFixedUpdate לפיזיקהמהירותגופים קינמטייםחזרה: משטח שיגור2התנגשויות
OnCollisionEnterבמה פגעתי?להישבר בעת פגיעהלעמוד על הקרקעניתור וחיכוךצורות Colliderסיכום: קיר שביר5פרויקט: מרוץ המטבעות
הכדור המתגלגלמטבעות לאיסוףתרגלו בעצמכם: Unity אונליין