Entity:PhysicsInitConvex

  boolean Entity:PhysicsInitConvex( table points, string surfaceprop = "default", Vector massCenterOverride = nil )

Açıklama

Varlığın fiziksel modelini (physics mesh), bir noktalar tablosu tarafından tanımlanan dışbükey bir model (convex mesh) ile başlatır. Ortaya çıkan model, tüm girdi noktalarının dışbükey zarfıdır (convex hull). Başarılı olursa, önceki fizik nesnesi kaldırılacaktır.

Bu, özel bir dışbükey şekle sahip hareketli fizik nesneleri oluşturmanın standart yoludur. Daha karmaşık, içbükey şekiller için Entity:PhysicsInitMultiConvex sayfasına bakın.

Bu fonksiyonu çağırmadan önce istediğiniz katılık türüyle Entity:SetSolid fonksiyonunu çağırmanız gerekebilir.

Sunucu taraflı varlıklar üzerindeki istemci taraflı fizik nesneleri bazı durumlarda düzgün hareket etmez. Fizik nesneleri yalnızca sunucuda oluşturulmalıdır, aksi takdirde yanlış physgun ışını konumu, tahmin (prediction) sorunları ve diğer beklenmedik davranışlarla karşılaşırsınız.

Aşağıdaki geçici çözümü hareket için kullanabilirsiniz, ancak istemci taraflı çarpışmalar yine de bozuk olacaktır.

function ENT:Think() if ( CLIENT ) then local physobj = self:GetPhysicsObject()

if ( IsValid( physobj ) ) then physobj:SetPos( self:GetPos() ) physobj:SetAngles( self:GetAngles() ) end end end


Hata Takipçisi: 5060

Argümanlar

1 table points
Dışbükey modelin hesaplanmasında kullanılacak, yerel koordinatlarda sekiz adet Vector içeren bir tablo. Sıra önemli değildir.
2 string surfaceprop = "default"
surfaceproperties.txt dosyasından gelen veya physenv.AddSurfaceData ile eklenen fiziksel malzeme.
3 Vector massCenterOverride = nil
Eğer ayarlanırsa, oluşturulan fizik nesnesinin kütle merkezini geçersiz kılar.

Dönüş Değeri

1 boolean
Başarılı olursa true, aksi takdirde false döndürür.

Örnek

Varlık için bir "kutu" fiziksel modeli oluşturur.

function ENT:Initialize() if ( CLIENT ) then return end -- We only want to run this code serverside local x0 = -20 -- Define the min corner of the box local y0 = -10 local z0 = -5 local x1 = 20 -- Define the max corner of the box local y1 = 10 local z1 = 5 self:PhysicsInitConvex( { Vector( x0, y0, z0 ), Vector( x0, y0, z1 ), Vector( x0, y1, z0 ), Vector( x0, y1, z1 ), Vector( x1, y0, z0 ), Vector( x1, y0, z1 ), Vector( x1, y1, z0 ), Vector( x1, y1, z1 ) } ) -- Set up solidity and movetype self:SetMoveType( MOVETYPE_VPHYSICS ) self:SetSolid( SOLID_VPHYSICS ) -- Enable custom collisions on the entity self:EnableCustomCollisions( true ) end

Tüm sunucular · GmodTR Launcher · Rehber · GMod Wiki · GmodTR nedir? · Sunucu ekle · Discord