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();