# Entity:PhysicsInitMultiConvex

- **Ortam:** İstemci, Sunucu
- **İngilizce aslı:** https://wiki.facepunch.com/gmod/Entity:PhysicsInitMultiConvex
- **Çeviri tarihi:** 2025-09-08

```lua
boolean Entity:PhysicsInitMultiConvex( table vertices, string surfaceprop = "default", Vector massCenterOverride = nil )
```

## Açıklama

[Entity:PhysicsInitConvex](https://gmod.tr/wiki/Entity:PhysicsInitConvex) fonksiyonunun, bir fizik nesnesini birden çok dışbükey (convex) ağdan başlatan gelişmiş bir versiyonudur. Bu, tek bir dışbükey ağ ile temsil edilemeyen özel bir şekle sahip fizik nesneleri için kullanılmalıdır.

Başarılı olursa, önceki fizik nesnesi kaldırılacaktır.

Bu fonksiyonu çağırmadan **önce** istenen katılık türü ile [Entity:SetSolid](https://gmod.tr/wiki/Entity:SetSolid) fonksiyonunu çağırmanız beklenebilir.

> **HATA:** Sunucu taraflı varlıklardaki istemci taraflı fizik nesneleri bazı durumlarda düzgün hareket etmez. Fizik nesneleri yalnızca sunucuda oluşturulmalıdır, aksi takdirde yanlış fizik silahı (physgun) ışın konumu, tahmin (prediction) sorunları ve diğer beklenmedik davranışlarla karşılaşırsınız.
>
> [Entity:PhysicsInitConvex](https://gmod.tr/wiki/Entity:PhysicsInitConvex) sayfasında bir geçici çözüm mevcuttur.
> Sorun Takipçisi: [5060](https://github.com/Facepunch/garrysmod-issues/issues/5060)

## Argümanlar

1. [table](https://gmod.tr/wiki/table) **vertices**: [Vector](https://gmod.tr/wiki/Vector) tablolarından oluşan bir tablodur. Her bir alt tablo, bir dışbükey ağın hesaplanmasında kullanılacak bir dizi noktayı tanımlar.
2. [string](https://gmod.tr/wiki/string) **surfaceprop** = "default": [surfaceproperties.txt](https://github.com/Facepunch/garrysmod/blob/master/garrysmod/scripts/surfaceproperties.txt) dosyasından veya [physenv.AddSurfaceData](https://gmod.tr/wiki/physenv.AddSurfaceData) ile eklenmiş fiziksel materyal.
3. [Vector](https://gmod.tr/wiki/Vector) **massCenterOverride** = nil: Eğer ayarlanırsa, oluşturulan fizik nesnesinin kütle merkezinin üzerine yazar.

## Döndürülen Değerler

1. [boolean](https://gmod.tr/wiki/boolean): Başarılı olursa `true`, aksi takdirde `nil` döndürür.

### Örnek

Varlık için iki kutudan oluşan bir fizik ağı oluşturur.

```lua
local min1 = Vector( -30, -10, 0 ) -- Kutu1 minimum köşe
local max1 = Vector( -10, 10, 20 ) -- Kutu1 maksimum köşe

local min2 = Vector( 10, -5, 10 ) -- Kutu2 minimum köşe
local max2 = Vector( 30, 5, 40 ) -- Kutu2 maksimum köşe

if SERVER then
    local convex = {
        { -- Her bir alt tablo, bir dışbükey parçanın köşe noktaları kümesidir, sıra önemli değildir
            Vector( min1.x, min1.y, min1.z ), -- Birinci kutunun köşe noktaları
            Vector( min1.x, min1.y, max1.z ),
            Vector( min1.x, max1.y, min1.z ),
            Vector( min1.x, max1.y, max1.z ),
            Vector( max1.x, min1.y, min1.z ),
            Vector( max1.x, min1.y, max1.z ),
            Vector( max1.x, max1.y, min1.z ),
            Vector( max1.x, max1.y, max1.z ),
        },
        { -- Tüm bu tablolar birlikte içbükey (concave) bir çarpışma ağı oluşturur
            Vector( min2.x, min2.y, min2.z ), -- İkinci kutunun köşe noktaları
            Vector( min2.x, min2.y, max2.z ),
            Vector( min2.x, max2.y, min2.z ),
            Vector( min2.x, max2.y, max2.z ),
            Vector( max2.x, min2.y, min2.z ),
            Vector( max2.x, min2.y, max2.z ),
            Vector( max2.x, max2.y, min2.z ),
            Vector( max2.x, max2.y, max2.z ),
        },
    }

	function ENT:Initialize()
		self:SetModel( "models/props_c17/oildrum001.mdl" )

		-- Çoklu dışbükey fizik ağını başlatma
		self:PhysicsInitMultiConvex( convex )

		self:SetSolid( SOLID_VPHYSICS ) -- Katılığı ayarlama
		self:SetMoveType( MOVETYPE_VPHYSICS ) -- Hareket türünü ayarlama

		self:EnableCustomCollisions( true ) -- Özel çarpışma ağını etkinleştirme

		self:PhysWake() -- Fizik hareketini etkinleştirme
	end
else
	local col = Color( 0, 0, 255, 255 )

	-- Çarpışma kutularını istemcide çizme
	function ENT:Draw()
		self:DrawModel()

		local pos, ang = self:GetPos(), self:GetAngles()

		render.DrawWireframeBox( pos, ang, min1, max1, col ) -- Birinci çarpışma kutusunu çizme
		render.DrawWireframeBox( pos, ang, min2, max2, col ) -- İkinci çarpışma kutusunu çizme
	end
end
```

**Çıktı:** ![](https://gmod.tr/api/uploads/wiki/35ee9ba92e05fe2bd947.gif)

- [GMod Wiki ana sayfası](https://gmod.tr/wiki)

---

[Tüm sunucular](https://gmod.tr/) · [GmodTR Launcher](https://gmod.tr/launcher) · [Rehber](https://gmod.tr/rehber) · [GMod Wiki](https://gmod.tr/wiki) · [GmodTR nedir?](https://gmod.tr/hakkinda) · [Sunucu ekle](https://gmod.tr/sunucu-ekle) · [Discord](https://discord.gg/gmodtr)

Kaynak: https://gmod.tr/wiki/Entity:PhysicsInitMultiConvex
