Çözüldü Unity hareket eden nesnenin konumu sıfırlamak

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.

mrht1234

Hectopat
Katılım
3 Aralık 2020
Mesajlar
1.273
Çözümler
4
Yer
Edirne/Merkez
Daha fazla  
Cinsiyet
Erkek
Arkadaşlar, merhaba Unity'de oyun geliştirirken diyelimki nesne bir şeye çarpınca o nesnenin oyundaki en baştaki konumuna nasıl sıfırlayacağımı araştırdım ama bulamadım bu işlem nasıl yapılıyor bununla ilgili bir video varsa bunu atabilir misiniz veya bunun nasıl yapıldığını kodunu atabilir misiniz?
 
Çözüm
Hocam; bir KillPlayer() fonksiyonumuz, bir de oyuncuyu hayata geri döndürmeye yarayan HortlaPlayer() fonksiyonumuz olsun.

Oyuncunun en baştaki konumuna Inspector üzerinden bakarsınız. Örneğin:
1625316883279.png

KillPlayer fonksiyonunu yazdığınızı varsayıyorum.
HortlaPlayer fonksiyonuna da şunun gibi bir kod eklemeniz gerekiyor.

C#:
transform.position= new Vector3(-42,-0.74f,0);
Tabii eğer CheckPoint sistemi varsa oyununuzda, bu kadar basit bir kod parçacağı ile olmaz. CheckPointleri en başta tanımladıktan sonra HortlaPlayer fonksiyonunda şunun gibi bir koda ihtiyacınız var.

C#:
if(checkPoint != null){
            transform.position=checkPoint.transform.position;
        }  
        else{
            transform.position= startPosition.transform.position;
        }

İlgili değişkenleri en başta tanımladığınızı varsayıyorum.
Ben oyuncu için sorduğunuzu varsayarak cevapladım. Siz bunu o nesnenin etkilenme durumunu hangisiyle ayarladıysanız(OnTrigger, OnCollision) o fonksiyondan konumunu transform.position ile eski haline döndürebilirsiniz.
Hocam; bir KillPlayer() fonksiyonumuz, bir de oyuncuyu hayata geri döndürmeye yarayan HortlaPlayer() fonksiyonumuz olsun.

Oyuncunun en baştaki konumuna Inspector üzerinden bakarsınız. Örneğin:
1625316883279.png

KillPlayer fonksiyonunu yazdığınızı varsayıyorum.
HortlaPlayer fonksiyonuna da şunun gibi bir kod eklemeniz gerekiyor.

C#:
transform.position= new Vector3(-42,-0.74f,0);
Tabii eğer CheckPoint sistemi varsa oyununuzda, bu kadar basit bir kod parçacağı ile olmaz. CheckPointleri en başta tanımladıktan sonra HortlaPlayer fonksiyonunda şunun gibi bir koda ihtiyacınız var.

C#:
if(checkPoint != null){
            transform.position=checkPoint.transform.position;
        }  
        else{
            transform.position= startPosition.transform.position;
        }

İlgili değişkenleri en başta tanımladığınızı varsayıyorum.
Ben oyuncu için sorduğunuzu varsayarak cevapladım. Siz bunu o nesnenin etkilenme durumunu hangisiyle ayarladıysanız(OnTrigger, OnCollision) o fonksiyondan konumunu transform.position ile eski haline döndürebilirsiniz.
 
Çözüm

Yeni konular

Geri
Yukarı