FiveM 3D Mesafe Hesaplayıcı

İki koordinat kümesi arasındaki 3D ve 2D mesafeleri hesaplayın. Seyahat süresi tahminleri ve kullanıma hazır Lua kodu alın.

A Noktası

B Noktası

Bu aracın amacı

Mesafeler, bir işaretçinin ne zaman çizileceğini, bir etkileşimin ne zaman mümkün olacağını ve bir döngünün ne zaman uyku moduna geçebileceğini belirler. Bunların yanlış ayarlanması, bir scriptin kare hızını düşürmesinin en yaygın nedenlerinden biridir. Bu hesaplayıcı, iki nokta arasındaki 3D ve 2D mesafeyi verir ve karşılaştırmayı performansa en az yük bindirecek biçimde yazar.

Nasıl kullanılır

  1. Adım 1:

    Her iki noktayı da girin, örneğin oyuncu konumu ve bir etkileşimin hedefi.

  2. Adım 2:

    Yükseklik farkı olan her şey için 3D mesafeyi, yalnızca zemin düzlemi önemli olduğunda ise 2D mesafeyi okuyun.

  3. Adım 3:

    Kontrol yarıçapınızı buna göre belirleyin. 20 metrede bir işaretçi, 2 metrede etkileşim uyarısı yaygın bir modeldir.

  4. Adım 4:

    Lua satırını kopyalayın. Vdist fonksiyonundan daha hızlı olan vektör çıkarma biçimini kullanır.

Sıkça sorulan sorular

#(a - b) mi yoksa Vdist mi kullanmalıyım?

#(a - b) kullanın. Bu, Lua çalışma zamanı içinde yerel vektör aritmetiğidir; Vdist ise bir oyun native'idir ve her native çağrısı ek yük getirir. Her karede çalışan bir döngüde fark ölçülebilir düzeydedir.

2D mesafe ne zaman doğru tercihtir?

Yüksekliğin önemsiz olması gereken her durumda, örneğin bir binanın tüm katlarını kapsayan bir bölge veya bir yamaçtaki işaretçi. 3D mesafede bir üst kattaki oyuncu bölgenin dışına çıkar ve bu durum bir hata gibi algılanır.

Her karede mesafe kontrolü yapmaktan nasıl kaçınabilirim?

İki aşamalı bir döngü kullanın. Uzaktayken 1000 ms bekletin ve yalnızca oyuncu dış yarıçapın içindeyken asıl etkileşim için 0 ms döngüsüne geçin. Yalnızca bu bile boşta çalışma sırasında çoğu script'in gecikmesini birkaç milisaniyeden neredeyse sıfıra düşürür.

Bunun yerine kare mesafeleri karşılaştırabilir miyim?

Evet, ayrıca karekök alma işleminden tasarruf sağlar. #(a - b) değerini yalnızca eşiğin de karesini alırsanız karesi alınmış bir eşikle karşılaştırın. Yalnızca çok sayıda entity içeren döngülerde gerçek bir optimizasyondur, aksi takdirde okunabilirlik önceliklidir.