Avatar Bağlam Menüsü (ACM) kullanıcıların birbirleriyle etkileşimde bulunmalarını kolaylaştırır. ACM oyununuzda etkinleştirildiğinde, bir kullanıcı başka bir kullanıcının karakterinin yanına gidebilir ve onlara tıklayarak birkaç varsayılan seçenekle birlikte küçük bir menü açabilir. Oyuncu bir arkadaşlık isteği gönderebilir, özel bir sohbete başlayabilir, kullanıcının profilini görüntüleyebilir veya el sallayabilir.
ACM'yi oyununuzda etkinleştirdikten sonra, ACM'yi aşağıdaki şekilde özelleştirebilirsiniz:
- Belirli kullanıcılar için ACM'yi programlı olarak açıp kapatın.
- ACM'ye özel seçenekler ekleyin ve mevcut seçenekleri kaldırın.
- ACM'nin görünümünü özelleştirin ve eşsiz bir kullanıcı arayüzü oluşturun.
Avatar Bağlam Menüsünü Etkinleştir
Avatar Bağlam Menüsü, bir LocalScript içinde StarterGui:SetCore() seçeneği "AvatarContextMenuEnabled" kullanılarak etkinleştirilmelidir. ACM, diğer kullanıcılara tıklama için önceden tanımlanmış bir davranışın olmadığı oyunlarda en iyi şekilde kullanılır.
Aşağıdaki kod örneğini kullanarak ACM'yi bir LocalScript içinde etkinleştirin:
-- LocalScript içinde çalıştırın, tercihen "StarterPlayerScripts" içindelocal StarterGui = game:GetService("StarterGui")StarterGui:SetCore("AvatarContextMenuEnabled", true)
ACM'nin etkin olup olmadığını tespit etmeniz gerekiyorsa, ACM'nin mevcut durumu hakkında bir boolean döndüren aşağıdaki kodu kullanabilirsiniz:
---ACM'nin şu anda etkin olup olmadığını belirten bir boolean döndürür.StarterGui:GetCore(AvatarContextMenuEnabled)
ACM'yi Açma ve Kapatma
Etkin hale getirildikten sonra, ACM'yi programlı olarak StarterGui ile açıp kapatabilirsiniz.
ACM'yi programlı olarak açmak için aşağıdaki kodu kullanın:
-- TargetPlayer geçerli bir Player nesnesi olmalıdırStarterGui:SetCore("AvatarContextMenuTarget", targetPlayer)
ACM'yi programlı olarak kapatmak için aşağıdaki kodu kullanın:
StarterGui:SetCore("AvatarContextMenuTarget", nil)
Menü Seçenekleri
Scripting aracılığıyla ekleme ve kaldırma işlemleri gerçekleştirebilirsiniz. Varsayılan olarak menüdeki seçenekler şunlardır:
| Menü Seçeneği | Açıklama |
|---|---|
| Arkadaş | Seçilen kullanıcıya bir arkadaşlık isteği gönderir. |
| Sohbet | Seçilen kullanıcıyla oyundaki sohbet içinde özel bir konuşma açar. |
| Görüntüle | Seçilen kullanıcının görünümünü incelemek için bir pencere açar. |
| El Salla | Seçilen kullanıcıya bir el sallama animasyonu başlatır. |
ACM açıldığında, kullanıcı karakter seçim karuseli üzerinde diğer kullanıcıları kaydırıp seçebilir. Karakterler, seçilen karakterle olan uzaklığa göre sıralanır. Menü yalnızca açıldığında güncellenir ve mevcut kullanıcıların listesi kaydırıldığında tekrarlanır.

Menü Seçenekleri Ekleme
Etkin hale getirildikten sonra, oyuna özgü eylemler ACM'ye eklenebilir. Örneğin, bir oyun ticaret isteklerine, partilere ekleme seçeneklerine veya diğer özel etkileşimlere izin verebilir.
Aşağıdaki örnek, Avatar Bağlam Menüsüne özel bir eylemi nasıl ekleyeceğinizi gösterir:
local Players = game:GetService("Players")
local StarterGui = game:GetService("StarterGui")
local player = Players.LocalPlayer
-- Bir "BindableEvent" ile bir işlev bağlayın
local bindableEvent = Instance.new("BindableEvent")
local function onCustomACMAction(targetPlayer)
-- Bu noktada, sunucuya seçimin bildirimi için InvokeServer() çağrısı yapabilirsiniz
print("ACM olayı " .. player.Name .. " tarafından " .. targetPlayer.Name + " seçildi.")
end
bindableEvent.Event:Connect(onCustomACMAction)
-- "AddAvatarContextMenuOption" ile SetCore() kullanarak ACM seçeneğini ekleyin
local options = {"Özel ACM Eylemi", bindableEvent}
StarterGui:SetCore("AddAvatarContextMenuOption", options)
Menü Seçenekleri Kaldırma
Özel ve varsayılan Arkadaşlık, Sohbet, Görüntüle ve El Salla seçeneklerini, özel Eylem adını veya varsayılan Enum.AvatarContextMenuOption enumunu referans alarak kaldırabilirsiniz.
Bir varsayılan ve özel menü seçeneğini kaldırmak için aşağıdaki kodu kullanın:
-- "Özel ACM Eylemi" seçeneğini kaldırStarterGui:SetCore("RemoveAvatarContextMenuOption", "Özel ACM Eylemi")-- AvatarContextMenuOption.Friend Enum'una referans vererek varsayılan "Arkadaş" seçeneğini kaldırStarterGui:SetCore("RemoveAvatarContextMenuOption", Enum.AvatarContextMenuOption.Friend)
Menü Görünümünü Özelleştirme
Avatar Bağlam Menüsünün görünümünü değiştirmek için StarterGui:SetCore()'yu "AvatarContextMenuTheme" seçeneği ile çağırarak menü görünümünü ayarlamak için bir parametreler ve değerler tablosu sağlayın.
ACM kullanıcı arayüzü aşağıdaki bölümleri içerir:

A. İsim Etiketi: Etkileşimde bulunulan karakterin kullanıcı adı.
B. Buton Çerçevesi: Tüm ACM butonlarını içerir.
C. Butonlar: Varsayılan veya özel ACM eylemleri için bireysel butonlar.
Görünüm Parametreleri
ACM ile ilgili özelleştirme parametreleri şunlardır:
Arka Plan
| BackgroundColor | ACM'nin genel arka planı için bir Color3 (arka plan resmi kullanmadığınızda en faydalı olanıdır). |
| BackgroundTransparency | ACM'nin genel arka planı için şeffaflık değeri (0–1) (arka plan resmi kullanmadığınızda en faydalı olanıdır). |
| BackgroundImage | ACM arka planı için geçerli bir varlık kimliği. |
| BackgroundImageTransparency | Arka plan resmi için şeffaflık değeri (0–1). |
| BackgroundImageScaleType | Arka plan resmi ölçeklendirme için bir Enum.ScaleType enumu. |
| BackgroundImageSliceCenter | BackgroundImageScaleType Enum.ScaleType.Slice olarak ayarlandığında dokuz dilimli bir görüntünün merkezini belirten bir Rect. |
İsim etiketi
| NameTagColor | Etkileşimde bulunulan oyuncunun gösterildiği çubuk için bir Color3. |
| NameUnderlineColor | İsim etiketi ile eylem butonları arasındaki ince çizgi için bir Color3. |
Buton çerçevesi
| ButtonFrameColor | Eylem butonlarını içeren bölüm (çerçeve) için bir Color3. |
| ButtonFrameTransparency | Buton çerçevesi bölümü için şeffaflık değeri (0–1). |
Buton
| ButtonColor | ACM eylem butonlarının arka planı için bir Color3. |
| ButtonTransparency | Eylem butonlarının arka plan rengi için şeffaflık değeri (0–1). |
| ButtonHoverColor | Eylem butonlarının "hover" durumu için bir Color3. |
| ButtonHoverTransparency | Eylem butonlarının "hover" rengi için şeffaflık değeri (0–1). |
| ButtonUnderlineColor | Her bir eylem butonunu ayıran ince çizgi için bir Color3. |
| ButtonImage | Butonların arka planı için geçerli bir varlık kimliği. |
| ButtonImageScaleType | Buton görüntüsü ölçeklendirmesi için bir Enum.ScaleType enumu. |
| ButtonImageSliceCenter | ButtonImageScaleType Enum.ScaleType.Slice olarak ayarlandığında dokuz dilimli bir görüntünün merkezini belirten bir Rect. |
Metin
| Font | İsim etiketi ve buton metni için bir Enum.Font enum değeri. |
| TextColor | ACM içindeki tüm metinler için bir Color3. |
| TextScale | Her bir öğenin varsayılan metin boyutlarını ölçeklendirmek için bir float değeri. |
Çeşitli resimler
| LeaveMenuImage | ACM kapatma butonu için bir varlık kimliği. |
| ScrollLeftImage | Karuseldeki "sola kaydır" butonu için bir varlık kimliği. |
| ScrollRightImage | Karuseldeki "sağa kaydır" butonu için geçerli bir varlık kimliği. |
Seçilen karakter
| SelectedCharacterIndicator | Seçili olduklarını göstermek için bir karakterin başının üzerinde yüzen MeshPart. |
Boyut ve Konum
| Size | ACM'nin genel boyutu için bir UDim2. |
| MinSize | ACM'nin minimum boyutunu belirten bir Vector2. |
| MaxSize | ACM'nin maksimum boyutunu belirten bir Vector2. |
| AspectRatio | ACM'nin oranını belirten bir float değeri. |
| AnchorPoint | ACM'nin AnchorPoint'u. |
| OnScreenPosition | Açıldığında animasyonun gerçekleşeceği ACM'nin ekrandaki konumunu belirten bir UDim2. |
| OffScreenPosition | Açıldığında/kapatıldığında animasyonun gerçekleşeceği ACM'nin ekrandan dışarıdaki konumunu belirten bir UDim2. |
Özelleştirme Örneği
Aşağıdaki kod örneği, bazı temel parametreleri kullanarak ACM temasını özelleştirir:
local StarterGui = game:GetService("StarterGui")StarterGui:SetCore("AvatarContextMenuTheme", {BackgroundImage = "",BackgroundTransparency = 0.5,BackgroundColor = Color3.fromRGB(111, 145, 242),NameTagColor = Color3.fromRGB(0, 0, 200),NameUnderlineColor = Color3.fromRGB(213, 233, 255),ButtonFrameColor = Color3.fromRGB(15, 24, 65),ButtonFrameTransparency = 0.2,ButtonUnderlineColor = Color3.fromRGB(213, 233, 255),Font = Enum.Font.SciFi})
