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

Bu kılavuzda, en yeni Giriş SDK'sını kullanmak için Unity oyununuzu nasıl taşıyacağınız açıklanmaktadır. 1.0.0-beta SDK'sı, önceki 0.0.4 önizlemesine kıyasla önemli iyileştirmeler içerir. 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üncelle

Sınıflar, Unity ile adlandırma çakışması olmaması için Play ön ekini aldı. Aşağıdakilere benzer bir hata mesajı gördüğünüzde:

hatası CS0246: "InputEşlemeProvider" tür veya ad alanı adı bulunamadı (kullanma yönergesi veya derleme referansınız mı eksik?)

sınıf adına Play önekini eklemelisiniz. Örneğin, InputMappingProvider, PlayInputMappingProvider olur.

Her bir InputAction'ı güncelle

Adlandırılmış alanlarla yeni bir struct oluşturmak yerine artık InputAction, bir PlayInputAction.Create çağrısıyla oluşturulur.

new InputAction kodunu çağıran herhangi bir kodu bulun:

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

Bunu da bir PlayInputAction.Create çağrısıyla değiştir:

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

Her bir InputGroup'u güncelleme

InputAction gibi, InputGroup için de artık bir PlayInputGroup.Create çağrısı var. Bunun yerine manuel olarak bir struct doldurmanızı zorunlu tutabilirsiniz.

Bu durumda, new InputGroup numaralı telefona yapılan aramaları bulmanız gerekir:

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

Bunu da bir PlayInputGroup.Create çağrısıyla değiştir:

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

InputMap'i güncelleme

InputMap, yeni birstruct oluşturmak yerine PlayInputMap.Create 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
    }
};

Bunu da bir PlayInputMap.Create çağrısıyla değiştir:

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

PlayInputEşlemeClient yöntemlerini yeniden adlandırma

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

Dolayısıyla, RegisterInputMappingProvider numaralı telefona yapılan aramaları bulun:

Input.GetInputMappingClient().RegisterInputMappingProvider(_inputMappingProvider);

Ve bunları SetInputMappingProvider numarasına sesli aramayla değiştirin:

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

UnregisterInputMappingProvider parametresi de ClearInputMappingProvider olarak yeniden adlandırıldı ve artık parametre olarak önceden kaydedilmiş InputMappingProvider kullanılmasını gerektirmiyor.

UnregisterInputMappingProvider numaralı telefona yapılan aramaları bulun:

Input.GetInputMappingClient().UnregisterInputMappingProvider(_inputMapProvider);

Ve bunları ClearInputMappingProvider ile değiştir:

PlayInput.GetInputMappingClient().ClearInputMappingProvider();