Bu rehberde, oyununuzu Unity için 1.0'dan 1.1 Giriş SDK'sına nasıl yükselteceğiniz açıklanmaktadır. Burayı tıklayın bölümüne göz atın.
Sürüm Notları
PC Üzerinde Google Play Games, klavye kontrollerinin yeniden eşlenmesini destekliyor. giriş SDK'sı kullanarak oyununuzun tuş bağlamaları üzerinde daha fazla kontrol sahibi olmanızı sağlar.
Kullanıcılar bu özelliğe kontrolleri seçerek yer paylaşımını ve yeniden eşlemek istedikleri işlemi tıklamaktır.
PC Üzerinde Google Play Games, kullanıcı tarafından yeniden eşlenen her girişi oyununuzun varsayılan bilgileriyle eşler giriş. Böylece oyununuz, oyuncunun yeniden eşlendiğini fark etmek zorunda kalmaz. Eğer her bir oyun içi işlem için yeni girişi bilmeniz gerekir. Örneğin, klavye denetimleri kullanıyorsanız, isteğe bağlı olarak bir geri çağırma yeniden eşleme etkinlikleri için bildirim gönderildi.
PC Üzerinde Google Play Games, kullanıcıların yeniden eşlenen kontrollerini yerel olarak depolar çok daha fazla ilgi görüyor. Bu ayarlar yerel olarak depolandığından Mobil deneyimi etkiler ve PC Üzerinde Google Play Games'in kaldırılmasından sonra silinirler. Ayarlar, birden çok PC cihazında kalıcı olmaz.
Tuş yeniden eşlemeyi etkinleştirmek için Giriş SDK'sını yeni sürüme geçirmeniz gerekmez yeniden eşleme özelliği devre dışı kalır. desteklenmeyen yapılandırma tespit edildiğinde.
Giriş yeniden eşleme deneyimini veya yeniden eşleme özelliğini kontrol etmek istiyorsanız oyununuzda devre dışı bırakılmışsa şu adımları uygulayın:
- Giriş SDK'sı
1.1.0-beta
sürümüne yükseltin. - Hatanın yaşanmaması için tüm tuş bağlamalarını güncelleyin desteklenmeyen yapılandırmalar.
- Yeniden eşleme özelliğini etkin olarak ayarlamak için
InputMap
öğenizi güncelleyin.
Yine de oyununuzun yeniden eşleme özelliğini devre dışı bırakmak olarak görüntülemek için şu adımları uygulayın:
- Giriş SDK'sı
1.1.0-beta
sürümüne yükseltin. - Yeniden eşleme özelliğini devre dışı olarak ayarlamak için
InputMap
öğenizi güncelleyin.
Kullanmak için Giriş SDK'sı sürümünüzü 1.1.0-beta
sürümüne yükseltebilirsiniz
PC Üzerinde Google Play Games'de gelişmiş yeniden eşleme özelliklerinin avantajından
Oyununuzun farklı sahnelerine yönelik kontrolleri tanımlamak için InputContexts
,
yeniden eşleme etkinliklerini dinlemek için geri çağırma seçenekleri sunar,
kullanıcı yeniden eşleme özelliğini InputAction
uyarınca yeniden eşleyemez ve devre dışı bırakamaz.
InputGroup
veya InputMap
.
Yükseltme yaparken aşağıdaki istisnaları göz önünde bulundurun:
Desteklenmeyen yapılandırmalar
Aşağıdaki koşullar karşılanmazsa giriş yeniden eşleme devre dışı bırakılır:
Birden çok anahtar kullanan
InputAction
bir değiştiriciden oluşmalıdır ve değiştirilmeyen tuşa basın. Örneğin,Üst Karakter + A geçerlidir ancakA + B ,Ctrl + Alt veÜst Karakter + A + Sekme geçersizdir.İki veya daha fazla
InputAction
ya daInputGroup
nesnesi aynı olamaz benzersiz kimlik.
GirişBağlamı ile Tanışın
InputContext
, bir oyunun şurada farklı işlemler için aynı anahtarı kullanmasına izin verir:
tutarlı bir şekilde sunmanızı sağlar. Bu şekilde, oyunda zıplamak için boşluk
Menü seçimini onaylamak için oyuncular oyun sırasında
menülere
Aşağıdaki sıra şemasında setInputContext()
API'nin nasıl çalıştığı gösterilmektedir
çalışma zamanı:
Yükselt
Giriş SDK'sının önceki uygulamalarını kullanan oyunlar hâlâ desteklenmektedir kullanmadıkları sürece temel yeniden eşleme desteklenmeyen yapılandırma. Oyununuzda için giriş SDK'sının eski sürümünü kullanıyorsanız 0.0.4'ten 1.0.0-beta'ya yükseltme kılavuzu.
1.1.0-beta sürümüne yükselterek aşağıdakiler gibi yeni özellikleri kullanabilirsiniz:
- Bağlam değişikliklerini tetikleme.
- Önemli eşleme etkinlikleri için bildirim alma
- İşlem, Grup, Bağlam veya Harita başına yeniden eşlemeyi devre dışı bırakma.
Kurulum
Unity eklentisi v1.1.0-beta sürümünü kullanabilirsiniz. Mevcut önerileri silme sürümünüzde yüklü Giriş SDK'sının önceki sürümlerini kullanabilir ve güncel sürüm var.
Giriş SDK'sı v1.1.0-beta sürümünü oyununuza eklemek için şuraya bakın: SDK'yı ekleme.
Statik alanları tanımlayın
1.1.0-beta sürümünde InputActions
, hedef EBM veya
InputGroups
, InputContexts
ve InputMap
InputMappingProvider
class, çünkü bu alanlara diğer
bazı bölümleri kapsıyor:
#if PLAY_GAMES_PC
using Java.Lang;
using Java.Util;
using Google.Android.Libraries.Play.Games.Inputmapping;
using Google.Android.Libraries.Play.Games.Inputmapping.Datamodel;
public class InputSDKMappingProvider : InputMappingProviderCallbackHelper
{
public static readonly string INPUT_MAP_VERSION = "1.0.0";
private static readonly InputAction driveInputAction =
InputAction.Create(...);
private static readonly InputGroup roadInputGroup = InputGroup.Create(...);
public static readonly InputContext roadControlsContext =
InputContext.Create(...);
public static readonly InputMap inputMap = InputMap.Create(...);
public override InputMap OnProvideInputMap()
{
return inputMap;
}
}
#endif
Giriş Eylemlerinizi güncelleme
InputAction.create()
için giriş SDK'sı 1.0.0-beta
yöntemi:
desteği sonlandırıldı. InputAction
, sürüm tanımlayıcısına sahiptir ve şu şekilde işaretlenebilir:
yeniden eşlenebilir olup olmaması gerekir. Giriş SDK'sı kullanılarak tanımlanan InputAction
1.0.0-beta
create()
yöntemi varsayılan olarak yeniden eşlenebilir ve sürüm oluşturmaz
bilgi:
Giriş SDK'sı 1.0.0-beta'da Giriş İşlemi
var driveAction = PlayInputAction.Create(
"Drive",
(long)InputEventIds.DRIVE,
PlayInputControls.Create(
new[] { AndroidKeyCode.KEYCODE_SPACE },
new List<PlayMouseAction>()
)
);
Giriş SDK'sı 1.1.0-beta'da Giriş İşlemi
private static readonly InputAction driveInputAction = InputAction.Create(
"Drive",
(long)InputEventIds.DRIVE,
InputControls.Create(
new[] { new Integer(AndroidKeyCode.KEYCODE_SPACE) }.ToJavaList(),
new ArrayList<Integer>()),
InputEnums.REMAP_OPTION_ENABLED
);
Giriş SDK'sı 1.1.0-beta'da Giriş İşlemi (sürüm dizesiyle)
private static readonly InputAction driveInputAction = InputAction.Create(
"Drive",
InputControls.Create(
new[] { new Integer(AndroidKeyCode.KEYCODE_SPACE) }.ToJavaList(),
new ArrayList<Integer>()),
InputIdentifier.Create(
INPUT_MAP_VERSION, (long)InputEventIds.DRIVE),
InputEnums.REMAP_OPTION_ENABLED
);
Anahtar bağlamalarınızın sürümünü oluşturma hakkında daha fazla bilgi için bkz. İzleme anahtarı kimlikleri.
Giriş Gruplarınızı güncelleme
1.1.0-beta
Giriş SDK'sında her birini benzersiz şekilde tanımlamanız gerekir
InputGroup
. Her InputAction
bir InputGroup
koleksiyonuna aittir.
ilgili işlemler. Bu, kontrollerde gezinmeyi ve keşfedilebilirliği iyileştirir
dikkat edin. Tıpkı InputAction
öğesinin benzersiz bir tanımlayıcısı olması gerektiği gibi
tek bir InputContext
içindeki tüm işlemler arasında
bir InputGroup
mevcut gruplar arasında benzersiz kimlik.
Bu bölümdeki örneklerde, bir oyunda iki InputContext
nesnesi vardır
ana menüyü ve oynanabilirliği temsil eder. Her biri için uygun kimlikler izlenir
Bu bağlamlarda InputGroup
değerini kullanarak aşağıdaki numaralandırmayı kullanın:
public enum InputGroupsIds
{
// Main menu scene
BASIC_NAVIGATION, // WASD, Enter, Backspace
MENU_ACTIONS, // C: chat, Space: quick game, S: store
// Gameplay scene
BASIC_MOVEMENT, // WASD, space: jump, Shift: run
MOUSE_ACTIONS, // Left click: shoot, Right click: aim
EMOJIS, // Emojis with keys 1,2,3,4 and 5
GAME_ACTIONS, // M: map, P: pause, R: reload
}
InputAction
gibi, Giriş SDK'sının InputGroup.create()
yöntemi
1.0.0-beta
desteği sonlandırıldı. Oyununuzda InputGroup
bilgisini güncellemeniz gerekiyor
InputAction
sürümünün geçerli olup olmadığını gösteren bir sürüm tanımlayıcısı ve
nesnelerin yeniden eşlenebilir olduğunu unutmayın. Desteği sonlandırılan Giriş SDK'sı 1.0.0-beta
create()
yöntemiyle oluşturulan gruplar yeniden eşleştirilebilir. Bu gruplar kimliği 0'dır.
ve sürüm kimliği boş bir dizedir (""
):
Giriş SDK'sı 1.0.0-beta'da Giriş Grubu
var gameInputGroup = PlayInputGroup.Create(
"Road controls",
new List<PlayInputAction>
{
driveAction,
turboAction,
openGarageAction,
openPgsAction,
openStoreAction
}
);
Giriş SDK'sı 1.1.0-beta'da Giriş Grubu
private static readonly InputGroup roadInputGroup = InputGroup.Create(
"Road controls",
new[]
{
driveInputAction,
turboInputAction,
openGarageInputAction,
openPgsInputAction,
openStoreInputAction,
}.ToJavaList(),
(long)InputGroupsIds.ROAD_CONTROLS,
// All input actions of this group will be remappable unless specified
// the contrary by the individual input actions.
InputEnums.REMAP_OPTION_ENABLED
);
Giriş SDK'sı 1.1.0-beta'da Giriş Grubu (sürüm dizesiyle)
private static readonly InputGroup roadInputGroup = InputGroup.Create(
"Road controls",
new[]
{
driveInputAction,
turboInputAction,
openGarageInputAction,
openPgsInputAction,
openStoreInputAction,
}.ToJavaList(),
InputIdentifier.Create(
INPUT_MAP_VERSION, (long)InputGroupsIds.ROAD_CONTROLS),
// All input actions of this group will be remappable unless specified
// the contrary by the individual input actions.
InputEnums.REMAP_OPTION_ENABLED
);
Anahtar bağlamalarınızın sürümünü oluşturma hakkında daha fazla bilgi için bkz. İzleme anahtarı kimlikleri.
Giriş Haritası'nı güncelleme
InputMap.create()
için 1.0.0-beta
Giriş SDK'sı yöntemi kullanıldı
desteği sonlandırıldı. Sürüm tanımlayıcısı atamak için InputMap
öğenizi güncelleyin, kapsam dışında kalmayı seçin
özelliğini kullanın veya cihazınız için ayrılmış tuşların bir listesini
için kullanılmasını istemediğiniz bir oyun. Her InputMap
Giriş SDK'sı 1.0.0-beta
create()
yöntemi kullanılarak tanımlanır.
varsayılan olarak yeniden eşlenebilir, 0
kimliğiyle tanımlanır ve
anahtar sayısı.
Giriş SDK'sı 1.0.0-beta'da Giriş Haritası
var gameInputMap = PlayInputMap.Create(
new List<PlayInputGroup>
{
gameInputGroup,
menuInputGroup
},
PlayMouseSettings.Create(false, false)
);
Giriş SDK'sı 1.1.0-beta'da Giriş Haritası
public static readonly string INPUT_MAP_VERSION = "1.0.0";
public static readonly long INPUT_MAP_ID = 0;
public static readonly InputMap inputMap = InputMap.Create(
new[] { roadInputGroup, menuInputGroup }.ToJavaList(),
MouseSettings.Create(false, false),
InputIdentifier.Create(INPUT_MAP_VERSION, INPUT_MAP_ID),
// Use ESC as reserved key
InputEnums.REMAP_OPTION_ENABLED,
new[]
{
InputControls.Create(new[]
{
new Integer(AndroidKeyCode.KEYCODE_ESCAPE)
}.ToJavaList(),
new ArrayList<Integer>())
}.ToJavaList()
);
Sırada ne var?
1.1.0-beta sürümüne geçme işlemine devam edin
Farklı sahneler için farklı kontroller atama
InputContexts
kullanarak veya oyununuzun kullanıcı arayüzünü güncelleyerek
Yeniden eşleme etkinlikleri hakkında bildirim alma
InputRemappingListeners
.
Tuş bağlamalarınızı güncellerken şuraya bakın: Anahtar bağlamaları tasarlamayla ilgili en iyi uygulamalar ve kısıtlamaları yeniden eşleme özelliğiyle ilgili kısıtlamalar vardır.