using UnityEngine;
public class PlayerRaycast : MonoBehaviour
{
public float raycastMesafe = 10f;
public LayerMask raycastLayer = -1; // -1 tüm katmanları dahil eder.
void Update()
{
// Oyuncunun olduğu konumdan ışın göndermekye yarıyor.
Vector3 baslangicNoktasi = transform.position; //oyuncunun konumu.
Vector3 yon = transform.forward; // Oyuncunun baktığı yön.
// Raycast gönderiyoruz.
RaycastHit hit;
if (Physics.Raycast(baslangicNoktasi, yon, out hit, raycastMesafe, raycastLayer))
{
// Bir nesneye çarparsak o nesnenin adı konsolda yazacak.
Debug.Log("Tespit edilen nesne: " + hit.collider.name);
// Mesafe bilgisini de bu kısım ile öğreniyoruz.
float mesafe = Vector3.Distance(baslangicNoktasi, hit.point);
Debug.Log("Mesafe: " + mesafe.ToString("F2") + " metre"); //ToString float değerini stringe dönüştürmeye yarıyor.
// Editörde raycastin çarpıp çarpmadığını anlamamızda yardımcı oluyor. Kırmızı ise çarpıyor demek.
Debug.DrawRay(baslangicNoktasi, yon * hit.distance, Color.red);
}
else
{
// Hiçbir şeye çarpmadıysa yeşil yanıyor.
Debug.DrawRay(baslangicNoktasi, yon * raycastMesafe, Color.green);
}
}
}