คำแนะนำนี้จะอธิบายวิธีย้ายข้อมูลเกม Unity ไปใช้เวอร์ชันล่าสุด SDK อินพุต SDK 1.0.0-เบต้า มีการปรับปรุงที่สำคัญมากกว่า 0.0.4 ก่อนหน้า คุณควรย้ายข้อมูลจากการแสดงตัวอย่างก่อนหน้านี้โดยเร็วที่สุด ให้มากที่สุด SDK 0.0.4 จะยังทำงานต่อไปจนถึงเดือนมีนาคม 2023
อัปเดตข้อมูลอ้างอิง
ชั้นเรียนได้รับคำนำหน้า Play
เพื่อไม่ให้ชื่อขัดแย้งกันใน Unity
เมื่อใดก็ตามที่คุณเห็นข้อความแสดงข้อผิดพลาดที่คล้ายกับ:
ข้อผิดพลาด CS0246: ประเภทหรือชื่อเนมสเปซ "InputMappingProvider" ไม่สามารถเป็น พบ (ไม่มีคำสั่งที่ใช้หรือการอ้างอิงการประกอบ)
คุณต้องเพิ่มคำนำหน้า Play
ในชื่อชั้นเรียน ตัวอย่างเช่น
InputMappingProvider
เปลี่ยนเป็น PlayInputMappingProvider
อัปเดต InputAction แต่ละรายการ
ขณะนี้ 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
)
);
อัปเดต InputGroup แต่ละรายการ
เช่นเดียวกับ 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
}
);
อัปเดต InputMap
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();