Unity ile oyun yapıyorum iki ayrı geçit var, geçitlerden birisinden gidince diğer levela geçilecek. Diğerinden geçilirse deathpanel açılacak. Deathpaneli yaptım fakat nasıl o alandan geçtikten sonra panelin açılacağını bulamadım.
OnTrigger2D kullanacağım yani anladığım kadarıyla. Teşekkür ederim.Merhaba, bir objeye eklenen ve belirli bir alana girildiğinde etkinleşen bir şey yapmak istiyorsunuz anladığım kadarıyla. Böyle bir senaryo için genellikle bir “trigger” kullanabilirsin.
Ontrigger2D kullanacağım yani anladığım kadarıyla. Teşekkür ederim.
Basit bir kod göndereceğim size.
Sağolun hocam.Basit bir kod göndereceğim size.
İki geçit içinde gameobject oluşturun her iki obje için BoxCollider ekleyin trigger seçeneğini işaretleyin. Oyuncu karakteri varsa eğer bir tag atarsınız.
public class PortalTrigger : MonoBehaviour
{
public bool isDeathPanel = false;
private void OnTriggerEnter(Collider other)
{
if (other.CompareTag("Player"))
{
if (isDeathPanel)
{
// Death paneli aktif et
DeathPanel.SetActive(true);
}
else
{
// Diğer levele geç
SceneManager.LoadScene("NextLevelName");
}
}
}
}
——
Death panel için olan scriptinde panel özelliğini true olarak işaretleyin.
Death panelin aktif edilmesi gereken objeyi, script içinde tanımlanmış panel değişkenine sürükleyip bırakın. Bu şekilde işinizi görür diye düşünüyorum. İyi çalışmalar.
Sağ olun hocam.
Ne demek. Sorunuz olursa yardımcı olmaya çalışırım yine.
DeathPanel ve SceneManager.LoadScene fonksiyonlarıyla ilgili hatalar alıyorsun çünkü DeathPanel değişkenini tanımlamamışsın ve SceneManager‘ın doğru şekilde kullanılması için gerekli olan namespace’i dahil etmen gerekiyor.Hocam
Assets\Scripts\PortalTrigger.cs(16,17): error CS0103: The name 'DeathPanel' does not exist in the current context
Assets\Scripts\PortalTrigger.cs(21,33): error CS0117: 'SceneManagement' does not contain a definition for 'LoadScene'
Adında iki hata alıyorum galiba o scriptleri oluşturmadığım için. Ben Deathpaneli canvastan yaptığım için büyük bir ihtimal. Nasıl düzeltirim?
Deathpanel ve scenemanager. Loadscene fonksiyonlarıyla ilgili hatalar alıyorsun çünkü deathpanel değişkenini tanımlamamışsın ve scenemanager‘ın doğru şekilde kullanılması için gerekli olan Namespace'i dahil etmen gerekiyor.
Using unityengine;
Using unityengine. Scenemanagement; // sahne yönetimi için.
Using unityengine. UI; // UI bileşenleri için.
Public gameobject deathpanel; // Deathpanel'i public olarak tanımla, böylece Unity editor üzerinden atayabilirsin.
Unity editörde ayarlamaları yapabilirsin.
Hocam çok sağolun dediklerinizi yaptıktan sonra oldu. Fakat gelecek levela geçince rastgele bir konumda doğuyor karakter. Bunu nasıl düzeltebilirim? Bu arada oyun 2D.DeathPanel ve SceneManager.LoadScene fonksiyonlarıyla ilgili hatalar alıyorsun çünkü DeathPanel değişkenini tanımlamamışsın ve SceneManager‘ın doğru şekilde kullanılması için gerekli olan namespace’i dahil etmen gerekiyor.
using UnityEngine;
using UnityEngine.SceneManagement; // Sahne yönetimi için
using UnityEngine.UI; // UI bileşenleri için
public GameObject DeathPanel; // DeathPanel'i public olarak tanımla, böylece Unity Editor üzerinden atayabilirsin.
Unity editörde ayarlamaları yapabilirsin.
Unity Editor'ü aç:
Death panel olarak kullandığın UI paneline sahip olan Gameobject'i bul.
Portaltrigger Script'ini içeren Gameobject'e git. Inspector panelinde, portaltrigger script komponentine bak.
Death panel alanını bul ve death panel olarak kullandığın UI panelinin Gameobject'ini bu alana sürükleyip bırak.
Bu yol yardımcı olur umarım sana.
Tamam şimdi karakterin başlamasını istediğiniz noktaya bir GameObject yerleştirin. Spawn Point yap mesela adını. Bu sadece konumu belirleyici görevi görecek. Yani görsel bileşeni olmayabilir.Hocam çok sağolun dediklerinizi yaptıktan sonra oldu. Fakat gelecek levela geçince rastgele bir konumda doğuyor karakter. Bunu nasıl düzeltebilirim? Bu arada oyun 2D.