Unity Topu Double Jump Zıplatma Kodu

Katılım
8 Şubat 2023
Mesajlar
167
Çözümler
1
Daha fazla  
Sistem Özellikleri
r7 9800x3d
rtx 5070 ti 16gb
2x32gb ram
asus tuf gaming b850-plus wifi
Cinsiyet
Erkek
Unity'de yaptığım oyuna bir top ekledim ve bu kodu ekledim:

Kod:
using UnityEngine;

public class OyuncuHareketi : MonoBehaviour

{

 public float hareketHizi = 5.0f;

 public float ziplamaGucu = 8.0f;

 public float yuvarlanmaGucu = 2.0f;

 public int maksimumZiplamaSayisi = 2;

 public Transform zeminKontrolNoktasi;

 public LayerMask zeminLayer;

 private Rigidbody2D rb;

 private bool zemindeMi;

 private int ziplamaSayisi;

 private float zeminCapi = 0.3f;

 private void Awake()

 {

 rb = GetComponent<Rigidbody2D>();

 }

 private void Update()

 {

 // Zıplama

 if (zemindeMi && Input.GetKeyDown(KeyCode.W))

 {

 rb.velocity = new Vector2(rb.velocity.x, ziplamaGucu);

 ziplamaSayisi = 1;

 }

 else if (ziplamaSayisi < maksimumZiplamaSayisi && Input.GetKeyDown(KeyCode.W))

 {

 rb.velocity = new Vector2(rb.velocity.x, ziplamaGucu);

 ziplamaSayisi++;

 }

 // Sol ve sağ hareket

 float yatayHareket = Input.GetAxis("Horizontal");

 rb.velocity = new Vector2(yatayHareket * hareketHizi, rb.velocity.y);

 // dönme

 if (yatayHareket < 0)

 {

 transform.localScale = new Vector3(-1, 1, 1);

 }

 else if (yatayHareket > 0)

 {

 transform.localScale = new Vector3(1, 1, 1);

 }

 if (Input.GetKeyDown(KeyCode.A) || Input.GetKeyDown(KeyCode.D))

 {

 rb.drag = 0; // Sürtünmeyi sıfırla, böylece yuvarlanma etkisi oluşur

 }

 if (Input.GetKeyUp(KeyCode.A) || Input.GetKeyUp(KeyCode.D))

 {

 rb.drag = 3; // Sürtünmeyi geri yükle

 }

 }

 private void FixedUpdate()

 {

 // Zemin

 zemindeMi = Physics2D.OverlapCircle(zeminKontrolNoktasi.position, zeminCapi, zeminLayer);

 // Zeminde değilken zıplama sayısını sıfırla

 if (!zemindeMi)

 {

 ziplamaSayisi = 0;

 }

 }

}

Top hareket edebiliyor ve zıplayabiliyor ama sonsuz zıplayabiliyor. Ben sadece 2 defa zıplamasını ve yere tekrar değene kadar daha zıplayamamasını istiyorum yani double-jump gibi.
 
@Syntax Error hareket bile etmiyor ve 999+ error var

1691787278250.png
 
@Syntax Error hocam unity yi bugün kullanmaya başladım bilgim az internetten araştırarak biraz yaptım o yüzden nerede hata yaptığımı anlamakta zorlanıyorum dc'niz varsa ve müsaitseniz size dosyayı atsam bi baksanız
 

Technopat Haberler

Geri
Yukarı