1.0.0-beta Giriş SDK'sına Geçin

Bu kılavuzda, Unity oyununuzu en son giriş SDK'sını kullanacak şekilde nasıl taşıyacağınız açıklanmaktadır. 1.0.0-beta SDK'sı, önceki 0.0.4 önizlemesine göre önemli iyileştirmeler içermektedir. En kısa sürede önceki önizlemelerden geçiş yapmanız gerekir. 0.0.4 SDK'sı Mart 2023'e kadar çalışmaya devam edecektir.

Referansları güncelleme

Sınıflara, Unity ile adlandırma çakışmalarını önlemek için Play öneki eklendi. Aşağıdakine benzer bir hata mesajı gördüğünüzde:

hata CS0246: "InputMappingProvider" türü veya ad alanı adı bulunamadı (bir using yönergesi veya bir derleme referansı eksik mi?)

sınıf adına Play ön ekini eklemeniz gerekir. Örneğin, InputMappingProvider PlayInputMappingProvider olur.

Her InputAction'ı güncelleyin

InputAction, adlandırılmış alanlara sahip yeni bir struct oluşturmak yerine artık PlayInputAction.Create çağrısıyla oluşturuluyor.

new InputAction numaralı telefonu arayan tüm kodları bulun:

var driveAction = new InputAction
{
    ActionLabel = "Drive",
    UniqueId = (int)InputEventIds.DRIVE,
    InputControls = new InputControls
    {
        AndroidKeycodes = new[] { AndroidKeyCode.KEYCODE_SPACE }
    }
};

Bu ifadeyi PlayInputAction.Create aramasıyla değiştirin:

var driveAction = PlayInputAction.Create(
    "Drive",
    (int)InputEventIds.DRIVE,
    PlayInputControls.Create(
        new[] { AndroidKeyCode.KEYCODE_SPACE },
        null
    )
);

Her InputGroup'ı güncelleme

InputAction gibi InputGroup için de artık struct formunu manuel olarak doldurmanız gerekmiyor. Bunun yerine PlayInputGroup.Create araması yapılıyor.

Bu nedenle, new InputGroup numaralı telefonla yapılan tüm aramaları bulmanız gerekir:

var gameInputGroup = new InputGroup
{
    GroupLabel = "Game controls",
    InputActions = new List<InputAction>
    {
        driveAction,
        turboAction,
        openGarageAction,
        openStoreAction
    }
};

Bu aramayı PlayInputGroup.Create numaralı telefona yönlendiren bir aramayla değiştirin:

var gameInputGroup = PlayInputGroup.Create(
    "Game controls",
    new List<PlayInputAction>
    {
        driveAction,
        turboAction,
        openGarageAction,
        openStoreAction
    }
);

InputMap'i güncelleme

InputMap, yeni bir yapı oluşturmak yerine PlayInputMap.Create'u da kullanır.

new InputMap numaralı telefona yapılan aramaları bulun:

return new InputMap
{
    InputGroups = new List<InputGroup>
    {
        gameInputGroup,
        menuInputGroup
    },
    MouseSettings = new MouseSettings
    {
        AllowMouseSensitivityAdjustment = false,
        InvertMouseMovement = false
    }
};

Bu ifadeyi PlayInputMap.Create aramasıyla değiştirin:

return PlayInputMap.Create(
    new List<PlayInputGroup>
    {
        gameInputGroup,
        menuInputGroup
    },
    PlayMouseSettings.Create(false, false)
);

PlayInputMappingClient yöntemlerini yeniden adlandırma

PlayInputMappingClient için RegisterInputMappingProvider, SetInputMappingProvider olarak yeniden adlandırıldı.

Bu nedenle, RegisterInputMappingProvider numaralı telefona yapılan aramaları bulun:

Input.GetInputMappingClient().RegisterInputMappingProvider(_inputMappingProvider);

Bunları SetInputMappingProvider çağrısıyla değiştirin:

PlayInputMappingClient inputMappingClient =
    Google.Play.InputMapping.PlayInput.GetInputMappingClient();
inputMappingClient.SetInputMappingProvider(_inputMapProvider);

UnregisterInputMappingProvider, ClearInputMappingProvider olarak da yeniden adlandırıldı ve artık parametre olarak daha önce kaydettiğiniz InputMappingProvider değerini gerektirmiyor.

UnregisterInputMappingProvider numaralı telefona yapılan aramaları bulun:

Input.GetInputMappingClient().UnregisterInputMappingProvider(_inputMapProvider);

Ardından bunları ClearInputMappingProvider ile değiştirin:

PlayInput.GetInputMappingClient().ClearInputMappingProvider();