يوضِّح هذا الدليل كيفية نقل بيانات لعبتك على Unity لاستخدام أحدث إصدار إدخال حزمة تطوير البرامج (SDK) تتضمن حزمة SDK الإصدار التجريبي 1.0.0 تحسينات مهمة في الإصدار معاينة 0.0.4 السابقة. يجب نقل البيانات من المعاينات السابقة في أقرب وقت ممكن. قدر الإمكان. ستستمر حزمة SDK 0.0.4 في العمل حتى آذار (مارس) 2023.
تعديل المراجع
تلقت الفئات البادئة Play
لتجنب تسمية التضاربات مع Unity.
كلما ظهرت لك رسالة خطأ مشابهة لما يلي:
الخطأ CS0246: النوع أو اسم مساحة الاسم 'InputMappingProvider' تعذَّر تم العثور عليها (هل تفتقد إلى توجيه استخدام أو مرجع تجميع؟)
يجب إضافة البادئة Play
إلى اسم الفئة. على سبيل المثال:
يصبح InputMappingProvider
PlayInputMappingProvider
.
تحديث كل إجراء إدخال
تم الآن إنشاء InputAction
باستخدام استدعاء PlayInputAction.Create
بدلاً من
إلى إنشاء struct
جديد باستخدام حقول مُسَمّاة
حدِّد موقع أي رمز يستدعي new InputAction
:
var driveAction = new InputAction
{
ActionLabel = "Drive",
UniqueId = (int)InputEventIds.DRIVE,
InputControls = new InputControls
{
AndroidKeycodes = new[] { AndroidKeyCode.KEYCODE_SPACE }
}
};
واستبدِلها بمكالمة إلى PlayInputAction.Create
:
var driveAction = PlayInputAction.Create(
"Drive",
(int)InputEventIds.DRIVE,
PlayInputControls.Create(
new[] { AndroidKeyCode.KEYCODE_SPACE },
null
)
);
تحديث كل enterGroup
مثل "InputAction
"، بإمكان "InputGroup
" الآن إجراء مكالمة باستخدام "PlayInputGroup.Create
" بدلاً من ذلك
بدلاً من طلب ملء struct
يدويًا
وهذا يعني أنه عليك تحديد موقع أي مكالمات مع "new InputGroup
":
var gameInputGroup = new InputGroup
{
GroupLabel = "Game controls",
InputActions = new List<InputAction>
{
driveAction,
turboAction,
openGarageAction,
openStoreAction
}
};
واستبدِله بمكالمة إلى PlayInputGroup.Create
:
var gameInputGroup = PlayInputGroup.Create(
"Game controls",
new List<PlayInputAction>
{
driveAction,
turboAction,
openGarageAction,
openStoreAction
}
);
تحديث EnterMap
يستخدم InputMap
PlayInputMap.Create
أيضًا بدلاً من إنشاء صف جديد
بنية.
تحديد موقع أي مكالمات مع "new InputMap
":
return new InputMap
{
InputGroups = new List<InputGroup>
{
gameInputGroup,
menuInputGroup
},
MouseSettings = new MouseSettings
{
AllowMouseSensitivityAdjustment = false,
InvertMouseMovement = false
}
};
واستبدِلها بمكالمة إلى PlayInputMap.Create
:
return PlayInputMap.Create(
new List<PlayInputGroup>
{
gameInputGroup,
menuInputGroup
},
PlayMouseSettings.Create(false, false)
);
إعادة تسمية طرق PlayInputMappingClient
بالنسبة إلى PlayInputMappingClient
، تمت إعادة تسمية RegisterInputMappingProvider
إلى
SetInputMappingProvider
لذا ننصحك بتحديد موقع أي مكالمات مع "RegisterInputMappingProvider
":
Input.GetInputMappingClient().RegisterInputMappingProvider(_inputMappingProvider);
واستبدِلها بمكالمة إلى SetInputMappingProvider
:
PlayInputMappingClient inputMappingClient =
Google.Play.InputMapping.PlayInput.GetInputMappingClient();
inputMappingClient.SetInputMappingProvider(_inputMapProvider);
تمت إعادة تسمية UnregisterInputMappingProvider
أيضًا إلى
ClearInputMappingProvider
ولم يعُد يتطلّب تسجيلك مسبقًا
InputMappingProvider
كمَعلمة.
تحديد موقع أي مكالمات مع "UnregisterInputMappingProvider
":
Input.GetInputMappingClient().UnregisterInputMappingProvider(_inputMapProvider);
واستبدِلها بـ ClearInputMappingProvider
:
PlayInput.GetInputMappingClient().ClearInputMappingProvider();