Furkannnn
Megapat
- Katılım
- 8 Mayıs 2015
- Mesajlar
- 74
Daha fazla
- Cinsiyet
- Erkek
Videoda görüldüğü gibi zeminin üstünde spawnlıyor. ChatGPT ile konuştum ama o da yapamadı, kodu yazan da o zaten ama düzeltmeyi bir türlü yapamadım. Anlayan biri yazabilir mi?
Kod:
Kod:
using UnityEngine;
public class BlockPlacer : MonoBehaviour
{
public GameObject blockPrefab; // Buraya Block prefab'ını sürükle
public float gridSize = 1f; // Küp boyutun 1 ise böyle kalsın
public float maxDistance = 100f; // Rayin maksimum mesafesi
void Update()
{
// Sol tık ile blok yerleştir
if (Input.GetMouseButtonDown(0))
{
PlaceBlock();
}
// Sağ tık ile blok kır (opsiyonel)
if (Input.GetMouseButtonDown(1))
{
RemoveBlock();
}
}
void PlaceBlock()
{
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit hit;
if (Physics.Raycast(ray, out hit, maxDistance))
{
// Prefab'ın renderer'ından gerçek boyutu al
float blockSize = blockPrefab.GetComponent<MeshRenderer>().bounds.size.y;
Vector3 point = hit.point + hit.normal * (blockSize / 2f + 0.1f);
Vector3 snapped = new Vector3(
Mathf.Round(point.x / blockSize) * blockSize,
Mathf.Round(point.y / blockSize) * blockSize,
Mathf.Round(point.z / blockSize) * blockSize
);
Instantiate(blockPrefab, snapped, Quaternion.identity);
}
}
void RemoveBlock()
{
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit hit;
if (Physics.Raycast(ray, out hit, maxDistance))
{
// Eğer vurduğumuz şey bir bloksa silelim
// Tag ile filtrelemek istersen: hit.collider.CompareTag("Block") diye kontrol ekleyebilirsin
Destroy(hit.collider.gameObject);
}
}
}