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