Neye Çarptım?
Coddy'nin Unity Journey'sinin Fizik ve Oynanış bölümünün bir parçası. Ders 9 / 63.
Unity'nin OnCollisionEnter'a aktardığı Collision, temasın diğer tarafını açıklar. collision.gameObject çarptığınız nesnedir; bu nedenle collision.gameObject.name onun adıdır ve collision.gameObject.CompareTag("Hazard") etiketini sorar. (Bir nesnenin birden fazla çarpıştırıcısı varsa collision.collider dokunduğunuz tam çarpıştırıcıdır.)
Bu tampon araba çarptığı her şeyi kaydeder ve tehlikelerden şikâyet eder:
void OnCollisionEnter(Collision collision)
{
Debug.Log("Bumped into " + collision.gameObject.name);
if (collision.gameObject.CompareTag("Hazard"))
{
Debug.Log("Ouch!");
}
}Kaydettiği ilk satır, oyun başladığı anda Bumped into Floor olur: üzerinde durduğu zemin de bir çarpışmadır. Bu nedenle çarpmalara tepki veren bir betik, önce neye çarptığını sorar. Hangi nesneyi adlandırdığına dikkat et: tek başına CompareTag("Hazard") kendi nesneni sorar ve Destroy(gameObject) kendi nesneni yok ederken, Destroy(collision.gameObject) çarptığın nesneyi kaldırır.
Görev
KolayKar küreme aracını ok tuşlarıyla (önceden yazılmış) sür ve ona bir görev ver. İki beyaz blok Snow etiketiyle etiketlenmiştir.
- Küreme aracı
Snowetiketiyle etiketlenmiş bir nesneye çarptığında o bloğu yok et, sayaca 1 ekle ve bunu kaydet:Cleared 1,Cleared 2. - Küreme aracının dokunduğu diğer her şey, zemin ve duvar da dahil, olduğu yerde kalır.
Play düğmesine bas ve yolu temizle, ardından Check düğmesine bas.
Kendin dene
using UnityEngine;
public class Plow : MonoBehaviour
{
public float speed = 3f;
private Rigidbody rb;
private int cleared;
void Start()
{
rb = GetComponent<Rigidbody>();
}
void FixedUpdate()
{
float h = Input.GetAxisRaw("Horizontal");
rb.linearVelocity = new Vector3(h * speed, rb.linearVelocity.y, 0);
}
// Kar küreme aracının çarptığı karı yok et, say ve sayıyı günlüğe kaydet
}
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Fizik ve Oynanış bölümündeki tüm dersler
1Rigidbody
Yerçekimi ve KütleAddForce ile İtmeDürtüyle ZıplamaFizik için FixedUpdateHızKinematik CisimlerTekrar: Fırlatma Rampası2Çarpışmalar
OnCollisionEnterNeye Çarptım?Çarpınca KırılYerde DurmakSekme ve SürtünmeCollider ŞekilleriTekrar: Kırılabilir Duvar