diff --git a/AxibugEmuOnline.Client/Assets/Plugins/PSVita.meta b/AxibugEmuOnline.Client/Assets/Plugins/PSVita.meta new file mode 100644 index 0000000..d610f70 --- /dev/null +++ b/AxibugEmuOnline.Client/Assets/Plugins/PSVita.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 957996f7ef8e16e4d83eace2efbcbfaa +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/AxibugEmuOnline.Client/Assets/Plugins/PSVita/CommonDialog.suprx b/AxibugEmuOnline.Client/Assets/Plugins/PSVita/CommonDialog.suprx new file mode 100644 index 0000000..d1019d3 Binary files /dev/null and b/AxibugEmuOnline.Client/Assets/Plugins/PSVita/CommonDialog.suprx differ diff --git a/AxibugEmuOnline.Client/Assets/Plugins/PSVita/CommonDialog.suprx.meta b/AxibugEmuOnline.Client/Assets/Plugins/PSVita/CommonDialog.suprx.meta new file mode 100644 index 0000000..5769bd6 --- /dev/null +++ b/AxibugEmuOnline.Client/Assets/Plugins/PSVita/CommonDialog.suprx.meta @@ -0,0 +1,31 @@ +fileFormatVersion: 2 +guid: 255d4b97366fc9e429c8cf1a54ee47b8 +timeCreated: 1499268372 +licenseType: Pro +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + isPreloaded: 0 + isOverridable: 0 + platformData: + - first: + Any: + second: + enabled: 0 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + PSP2: PSP2 + second: + enabled: 1 + settings: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/AxibugEmuOnline.Client/Assets/Plugins/PSVita/CommonDialog_stub.a b/AxibugEmuOnline.Client/Assets/Plugins/PSVita/CommonDialog_stub.a new file mode 100644 index 0000000..c18e702 Binary files /dev/null and b/AxibugEmuOnline.Client/Assets/Plugins/PSVita/CommonDialog_stub.a differ diff --git a/AxibugEmuOnline.Client/Assets/Plugins/PSVita/CommonDialog_stub.a.meta b/AxibugEmuOnline.Client/Assets/Plugins/PSVita/CommonDialog_stub.a.meta new file mode 100644 index 0000000..52eb106 --- /dev/null +++ b/AxibugEmuOnline.Client/Assets/Plugins/PSVita/CommonDialog_stub.a.meta @@ -0,0 +1,31 @@ +fileFormatVersion: 2 +guid: e4a33d16bdff8ff418e7a5fe120bd193 +timeCreated: 1499268372 +licenseType: Pro +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + isPreloaded: 0 + isOverridable: 0 + platformData: + - first: + Any: + second: + enabled: 0 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + PSP2: PSP2 + second: + enabled: 1 + settings: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/AxibugEmuOnline.Client/Assets/Plugins/PSVita/SonyAssemblies.meta b/AxibugEmuOnline.Client/Assets/Plugins/PSVita/SonyAssemblies.meta new file mode 100644 index 0000000..bfc428b --- /dev/null +++ b/AxibugEmuOnline.Client/Assets/Plugins/PSVita/SonyAssemblies.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b3de348afcfb8214ea5dced94199f16e +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/AxibugEmuOnline.Client/Assets/Plugins/PSVita/SonyAssemblies/SonyVitaCommonDialog.dll b/AxibugEmuOnline.Client/Assets/Plugins/PSVita/SonyAssemblies/SonyVitaCommonDialog.dll new file mode 100644 index 0000000..2142c8b Binary files /dev/null and b/AxibugEmuOnline.Client/Assets/Plugins/PSVita/SonyAssemblies/SonyVitaCommonDialog.dll differ diff --git a/AxibugEmuOnline.Client/Assets/Plugins/PSVita/SonyAssemblies/SonyVitaCommonDialog.dll.meta b/AxibugEmuOnline.Client/Assets/Plugins/PSVita/SonyAssemblies/SonyVitaCommonDialog.dll.meta new file mode 100644 index 0000000..4584fa5 --- /dev/null +++ b/AxibugEmuOnline.Client/Assets/Plugins/PSVita/SonyAssemblies/SonyVitaCommonDialog.dll.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: eb76ae7b43c117c449fe04e536cf3f34 +MonoAssemblyImporter: + serializedVersion: 1 + iconMap: {} + executionOrder: {} + userData: diff --git a/AxibugEmuOnline.Client/Assets/Resources/UIPrefabs/RoomPlayerSlot/RoomPlayerSlotUnit.prefab b/AxibugEmuOnline.Client/Assets/Resources/UIPrefabs/RoomPlayerSlot/RoomPlayerSlotUnit.prefab index 5615d88..fb3a327 100644 --- a/AxibugEmuOnline.Client/Assets/Resources/UIPrefabs/RoomPlayerSlot/RoomPlayerSlotUnit.prefab +++ b/AxibugEmuOnline.Client/Assets/Resources/UIPrefabs/RoomPlayerSlot/RoomPlayerSlotUnit.prefab @@ -25,17 +25,18 @@ RectTransform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2371389415552619370} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 1727149598719982521} + m_Children: + - {fileID: 1771748875814093347} + m_Father: {fileID: 8950855035476021338} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0.5} m_AnchorMax: {x: 0, y: 0.5} - m_AnchoredPosition: {x: 84, y: 0} - m_SizeDelta: {x: 502, y: 160} + m_AnchoredPosition: {x: 49, y: 0} + m_SizeDelta: {x: 251, y: 80} m_Pivot: {x: 0, y: 0.5} --- !u!222 &6564505248202665844 CanvasRenderer: @@ -100,17 +101,17 @@ RectTransform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2721335758118728454} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 1727149598719982521} + m_Father: {fileID: 8950855035476021338} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0.5} m_AnchorMax: {x: 0, y: 0.5} m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 142, y: 160} + m_SizeDelta: {x: 71, y: 80} m_Pivot: {x: 0, y: 0.5} --- !u!222 &9075115120373129637 CanvasRenderer: @@ -159,7 +160,7 @@ GameObject: serializedVersion: 6 m_Component: - component: {fileID: 1727149598719982521} - - component: {fileID: 7654163251363580929} + - component: {fileID: 8370099016684185830} m_Layer: 5 m_Name: RoomPlayerSlotUnit m_TagString: Untagged @@ -179,20 +180,143 @@ RectTransform: m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: - - {fileID: 846681823671095772} - - {fileID: 6665974318866355999} + - {fileID: 8950855035476021338} m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 1} m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 100, y: 100} + m_SizeDelta: {x: 300, y: 100} m_Pivot: {x: 0, y: 1} ---- !u!222 &7654163251363580929 -CanvasRenderer: +--- !u!114 &8370099016684185830 +MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 5376230278482525414} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1bfe4359a48b5c349b439e88eb53b8b1, type: 3} + m_Name: + m_EditorClassIdentifier: + m_controllerIndex: 0 + m_connectInfoNode: {fileID: 2371389415552619370} + m_indexIcon: {fileID: 4536003039670490184} + m_playerName: {fileID: 6617607173830585898} +--- !u!1 &5662729590297657737 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8950855035476021338} + m_Layer: 5 + m_Name: Root + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8950855035476021338 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5662729590297657737} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 846681823671095772} + - {fileID: 6665974318866355999} + m_Father: {fileID: 1727149598719982521} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: -0.000030517578, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &7128973212336692590 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1771748875814093347} + - component: {fileID: 4464870872037843803} + - component: {fileID: 6617607173830585898} + m_Layer: 5 + m_Name: playerName + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1771748875814093347 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7128973212336692590} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 6665974318866355999} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 30.93, y: -1.59} + m_SizeDelta: {x: 146.1, y: 30.63} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &4464870872037843803 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7128973212336692590} m_CullTransparentMesh: 1 +--- !u!114 &6617607173830585898 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7128973212336692590} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 12800000, guid: 33a3bdf8f6bd1ec4eba7c4bc58183212, type: 3} + m_FontSize: 20 + m_FontStyle: 0 + m_BestFit: 1 + m_MinSize: 4 + m_MaxSize: 20 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: PLAYER_NAME diff --git a/AxibugEmuOnline.Client/Assets/Resources/UIPrefabs/XMBInfoBar.prefab b/AxibugEmuOnline.Client/Assets/Resources/UIPrefabs/XMBInfoBar.prefab index 72e61f3..50cb8d7 100644 --- a/AxibugEmuOnline.Client/Assets/Resources/UIPrefabs/XMBInfoBar.prefab +++ b/AxibugEmuOnline.Client/Assets/Resources/UIPrefabs/XMBInfoBar.prefab @@ -64,6 +64,85 @@ MonoBehaviour: m_ChildScaleWidth: 0 m_ChildScaleHeight: 0 m_ReverseArrangement: 0 +--- !u!1 &1793510994393845066 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2940710093054777883} + - component: {fileID: 6850622733671985395} + - component: {fileID: 2118483068810584522} + m_Layer: 5 + m_Name: ControlSlotInfo + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2940710093054777883 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1793510994393845066} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 2921874279820016524} + - {fileID: 3201409976408832832} + - {fileID: 2711516940043786061} + - {fileID: 3283429487447647189} + m_Father: {fileID: 6362836288749559125} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &6850622733671985395 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1793510994393845066} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 3 + m_Spacing: 0 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 0 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 +--- !u!114 &2118483068810584522 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1793510994393845066} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 909a5b71ba48a9c46a57d43017072837, type: 3} + m_Name: + m_EditorClassIdentifier: --- !u!1 &2196797712553207707 GameObject: m_ObjectHideFlags: 0 @@ -93,7 +172,8 @@ RectTransform: m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 - m_Children: [] + m_Children: + - {fileID: 2940710093054777883} m_Father: {fileID: 5353336693430589123} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} @@ -626,6 +706,7 @@ MonoBehaviour: DelayValue: {fileID: 6486398873987280650} OnlinePlayerCount: {fileID: 9033504323044377285} FPS: {fileID: 2545793518460288919} + ControlSlotInfoNode: {fileID: 1793510994393845066} --- !u!1 &5629957813601835122 GameObject: m_ObjectHideFlags: 0 @@ -1304,3 +1385,423 @@ MonoBehaviour: m_FillOrigin: 0 m_UseSpriteMesh: 0 m_PixelsPerUnitMultiplier: 1 +--- !u!1001 &3627982800791678196 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 2940710093054777883} + m_Modifications: + - target: {fileID: 1727149598719982521, guid: cf7167f02ca8e8a4eb176121ffa58f50, type: 3} + propertyPath: m_Pivot.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1727149598719982521, guid: cf7167f02ca8e8a4eb176121ffa58f50, type: 3} + propertyPath: m_Pivot.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1727149598719982521, guid: cf7167f02ca8e8a4eb176121ffa58f50, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1727149598719982521, guid: cf7167f02ca8e8a4eb176121ffa58f50, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1727149598719982521, guid: cf7167f02ca8e8a4eb176121ffa58f50, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1727149598719982521, guid: cf7167f02ca8e8a4eb176121ffa58f50, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1727149598719982521, guid: cf7167f02ca8e8a4eb176121ffa58f50, type: 3} + propertyPath: m_SizeDelta.x + value: 300 + objectReference: {fileID: 0} + - target: {fileID: 1727149598719982521, guid: cf7167f02ca8e8a4eb176121ffa58f50, type: 3} + propertyPath: m_SizeDelta.y + value: 100 + objectReference: {fileID: 0} + - target: {fileID: 1727149598719982521, guid: cf7167f02ca8e8a4eb176121ffa58f50, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1727149598719982521, guid: cf7167f02ca8e8a4eb176121ffa58f50, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1727149598719982521, guid: cf7167f02ca8e8a4eb176121ffa58f50, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1727149598719982521, guid: cf7167f02ca8e8a4eb176121ffa58f50, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1727149598719982521, guid: cf7167f02ca8e8a4eb176121ffa58f50, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1727149598719982521, guid: cf7167f02ca8e8a4eb176121ffa58f50, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1727149598719982521, guid: cf7167f02ca8e8a4eb176121ffa58f50, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1727149598719982521, guid: cf7167f02ca8e8a4eb176121ffa58f50, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1727149598719982521, guid: cf7167f02ca8e8a4eb176121ffa58f50, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1727149598719982521, guid: cf7167f02ca8e8a4eb176121ffa58f50, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1727149598719982521, guid: cf7167f02ca8e8a4eb176121ffa58f50, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1727149598719982521, guid: cf7167f02ca8e8a4eb176121ffa58f50, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5376230278482525414, guid: cf7167f02ca8e8a4eb176121ffa58f50, type: 3} + propertyPath: m_Name + value: P3 + objectReference: {fileID: 0} + - target: {fileID: 8370099016684185830, guid: cf7167f02ca8e8a4eb176121ffa58f50, type: 3} + propertyPath: m_slotIndex + value: 2 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: cf7167f02ca8e8a4eb176121ffa58f50, type: 3} +--- !u!224 &2711516940043786061 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 1727149598719982521, guid: cf7167f02ca8e8a4eb176121ffa58f50, type: 3} + m_PrefabInstance: {fileID: 3627982800791678196} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &4208900619059435628 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 2940710093054777883} + m_Modifications: + - target: {fileID: 1727149598719982521, guid: cf7167f02ca8e8a4eb176121ffa58f50, type: 3} + propertyPath: m_Pivot.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1727149598719982521, guid: cf7167f02ca8e8a4eb176121ffa58f50, type: 3} + propertyPath: m_Pivot.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1727149598719982521, guid: cf7167f02ca8e8a4eb176121ffa58f50, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1727149598719982521, guid: cf7167f02ca8e8a4eb176121ffa58f50, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1727149598719982521, guid: cf7167f02ca8e8a4eb176121ffa58f50, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1727149598719982521, guid: cf7167f02ca8e8a4eb176121ffa58f50, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1727149598719982521, guid: cf7167f02ca8e8a4eb176121ffa58f50, type: 3} + propertyPath: m_SizeDelta.x + value: 300 + objectReference: {fileID: 0} + - target: {fileID: 1727149598719982521, guid: cf7167f02ca8e8a4eb176121ffa58f50, type: 3} + propertyPath: m_SizeDelta.y + value: 100 + objectReference: {fileID: 0} + - target: {fileID: 1727149598719982521, guid: cf7167f02ca8e8a4eb176121ffa58f50, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1727149598719982521, guid: cf7167f02ca8e8a4eb176121ffa58f50, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1727149598719982521, guid: cf7167f02ca8e8a4eb176121ffa58f50, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1727149598719982521, guid: cf7167f02ca8e8a4eb176121ffa58f50, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1727149598719982521, guid: cf7167f02ca8e8a4eb176121ffa58f50, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1727149598719982521, guid: cf7167f02ca8e8a4eb176121ffa58f50, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1727149598719982521, guid: cf7167f02ca8e8a4eb176121ffa58f50, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1727149598719982521, guid: cf7167f02ca8e8a4eb176121ffa58f50, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1727149598719982521, guid: cf7167f02ca8e8a4eb176121ffa58f50, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1727149598719982521, guid: cf7167f02ca8e8a4eb176121ffa58f50, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1727149598719982521, guid: cf7167f02ca8e8a4eb176121ffa58f50, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1727149598719982521, guid: cf7167f02ca8e8a4eb176121ffa58f50, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5376230278482525414, guid: cf7167f02ca8e8a4eb176121ffa58f50, type: 3} + propertyPath: m_Name + value: P4 + objectReference: {fileID: 0} + - target: {fileID: 8370099016684185830, guid: cf7167f02ca8e8a4eb176121ffa58f50, type: 3} + propertyPath: m_slotIndex + value: 3 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: cf7167f02ca8e8a4eb176121ffa58f50, type: 3} +--- !u!224 &3283429487447647189 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 1727149598719982521, guid: cf7167f02ca8e8a4eb176121ffa58f50, type: 3} + m_PrefabInstance: {fileID: 4208900619059435628} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &4293513748768145657 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 2940710093054777883} + m_Modifications: + - target: {fileID: 1727149598719982521, guid: cf7167f02ca8e8a4eb176121ffa58f50, type: 3} + propertyPath: m_Pivot.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1727149598719982521, guid: cf7167f02ca8e8a4eb176121ffa58f50, type: 3} + propertyPath: m_Pivot.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1727149598719982521, guid: cf7167f02ca8e8a4eb176121ffa58f50, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1727149598719982521, guid: cf7167f02ca8e8a4eb176121ffa58f50, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1727149598719982521, guid: cf7167f02ca8e8a4eb176121ffa58f50, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1727149598719982521, guid: cf7167f02ca8e8a4eb176121ffa58f50, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1727149598719982521, guid: cf7167f02ca8e8a4eb176121ffa58f50, type: 3} + propertyPath: m_SizeDelta.x + value: 300 + objectReference: {fileID: 0} + - target: {fileID: 1727149598719982521, guid: cf7167f02ca8e8a4eb176121ffa58f50, type: 3} + propertyPath: m_SizeDelta.y + value: 100 + objectReference: {fileID: 0} + - target: {fileID: 1727149598719982521, guid: cf7167f02ca8e8a4eb176121ffa58f50, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1727149598719982521, guid: cf7167f02ca8e8a4eb176121ffa58f50, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1727149598719982521, guid: cf7167f02ca8e8a4eb176121ffa58f50, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1727149598719982521, guid: cf7167f02ca8e8a4eb176121ffa58f50, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1727149598719982521, guid: cf7167f02ca8e8a4eb176121ffa58f50, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1727149598719982521, guid: cf7167f02ca8e8a4eb176121ffa58f50, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1727149598719982521, guid: cf7167f02ca8e8a4eb176121ffa58f50, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1727149598719982521, guid: cf7167f02ca8e8a4eb176121ffa58f50, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1727149598719982521, guid: cf7167f02ca8e8a4eb176121ffa58f50, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1727149598719982521, guid: cf7167f02ca8e8a4eb176121ffa58f50, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1727149598719982521, guid: cf7167f02ca8e8a4eb176121ffa58f50, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1727149598719982521, guid: cf7167f02ca8e8a4eb176121ffa58f50, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5376230278482525414, guid: cf7167f02ca8e8a4eb176121ffa58f50, type: 3} + propertyPath: m_Name + value: P2 + objectReference: {fileID: 0} + - target: {fileID: 8370099016684185830, guid: cf7167f02ca8e8a4eb176121ffa58f50, type: 3} + propertyPath: m_slotIndex + value: 1 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: cf7167f02ca8e8a4eb176121ffa58f50, type: 3} +--- !u!224 &3201409976408832832 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 1727149598719982521, guid: cf7167f02ca8e8a4eb176121ffa58f50, type: 3} + m_PrefabInstance: {fileID: 4293513748768145657} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &4572424957848191029 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 2940710093054777883} + m_Modifications: + - target: {fileID: 1727149598719982521, guid: cf7167f02ca8e8a4eb176121ffa58f50, type: 3} + propertyPath: m_Pivot.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1727149598719982521, guid: cf7167f02ca8e8a4eb176121ffa58f50, type: 3} + propertyPath: m_Pivot.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1727149598719982521, guid: cf7167f02ca8e8a4eb176121ffa58f50, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1727149598719982521, guid: cf7167f02ca8e8a4eb176121ffa58f50, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1727149598719982521, guid: cf7167f02ca8e8a4eb176121ffa58f50, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1727149598719982521, guid: cf7167f02ca8e8a4eb176121ffa58f50, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1727149598719982521, guid: cf7167f02ca8e8a4eb176121ffa58f50, type: 3} + propertyPath: m_SizeDelta.x + value: 300 + objectReference: {fileID: 0} + - target: {fileID: 1727149598719982521, guid: cf7167f02ca8e8a4eb176121ffa58f50, type: 3} + propertyPath: m_SizeDelta.y + value: 100 + objectReference: {fileID: 0} + - target: {fileID: 1727149598719982521, guid: cf7167f02ca8e8a4eb176121ffa58f50, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1727149598719982521, guid: cf7167f02ca8e8a4eb176121ffa58f50, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1727149598719982521, guid: cf7167f02ca8e8a4eb176121ffa58f50, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1727149598719982521, guid: cf7167f02ca8e8a4eb176121ffa58f50, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1727149598719982521, guid: cf7167f02ca8e8a4eb176121ffa58f50, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1727149598719982521, guid: cf7167f02ca8e8a4eb176121ffa58f50, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1727149598719982521, guid: cf7167f02ca8e8a4eb176121ffa58f50, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1727149598719982521, guid: cf7167f02ca8e8a4eb176121ffa58f50, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1727149598719982521, guid: cf7167f02ca8e8a4eb176121ffa58f50, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1727149598719982521, guid: cf7167f02ca8e8a4eb176121ffa58f50, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1727149598719982521, guid: cf7167f02ca8e8a4eb176121ffa58f50, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1727149598719982521, guid: cf7167f02ca8e8a4eb176121ffa58f50, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5376230278482525414, guid: cf7167f02ca8e8a4eb176121ffa58f50, type: 3} + propertyPath: m_Name + value: P1 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: cf7167f02ca8e8a4eb176121ffa58f50, type: 3} +--- !u!224 &2921874279820016524 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 1727149598719982521, guid: cf7167f02ca8e8a4eb176121ffa58f50, type: 3} + m_PrefabInstance: {fileID: 4572424957848191029} + m_PrefabAsset: {fileID: 0} diff --git a/AxibugEmuOnline.Client/Assets/Scene/AxibugEmuOnline.Client.unity b/AxibugEmuOnline.Client/Assets/Scene/AxibugEmuOnline.Client.unity index ae4dfb2..f1ceb1f 100644 --- a/AxibugEmuOnline.Client/Assets/Scene/AxibugEmuOnline.Client.unity +++ b/AxibugEmuOnline.Client/Assets/Scene/AxibugEmuOnline.Client.unity @@ -1170,6 +1170,18 @@ PrefabInstance: serializedVersion: 3 m_TransformParent: {fileID: 1599240741} m_Modifications: + - target: {fileID: 245821230929098307, guid: 3b211f31b55a35e44a8fa38666f63383, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 245821230929098307, guid: 3b211f31b55a35e44a8fa38666f63383, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 245821230929098307, guid: 3b211f31b55a35e44a8fa38666f63383, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} - target: {fileID: 1108503213262670097, guid: 3b211f31b55a35e44a8fa38666f63383, type: 3} propertyPath: m_AnchorMax.y value: 0 @@ -1194,6 +1206,22 @@ PrefabInstance: propertyPath: m_AnchoredPosition.y value: 0 objectReference: {fileID: 0} + - target: {fileID: 1700008050955832379, guid: 3b211f31b55a35e44a8fa38666f63383, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1700008050955832379, guid: 3b211f31b55a35e44a8fa38666f63383, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1700008050955832379, guid: 3b211f31b55a35e44a8fa38666f63383, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1700008050955832379, guid: 3b211f31b55a35e44a8fa38666f63383, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} - target: {fileID: 1710183501897154830, guid: 3b211f31b55a35e44a8fa38666f63383, type: 3} propertyPath: m_AnchorMax.y value: 0 @@ -1282,6 +1310,22 @@ PrefabInstance: propertyPath: m_AnchoredPosition.y value: 0 objectReference: {fileID: 0} + - target: {fileID: 2256656160383605798, guid: 3b211f31b55a35e44a8fa38666f63383, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2256656160383605798, guid: 3b211f31b55a35e44a8fa38666f63383, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2256656160383605798, guid: 3b211f31b55a35e44a8fa38666f63383, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2256656160383605798, guid: 3b211f31b55a35e44a8fa38666f63383, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} - target: {fileID: 2580867844924924490, guid: 3b211f31b55a35e44a8fa38666f63383, type: 3} propertyPath: m_AnchorMax.y value: 0 @@ -1310,6 +1354,158 @@ PrefabInstance: propertyPath: m_AnchoredPosition.y value: 0 objectReference: {fileID: 0} + - target: {fileID: 2711516940043786061, guid: 3b211f31b55a35e44a8fa38666f63383, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2711516940043786061, guid: 3b211f31b55a35e44a8fa38666f63383, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2711516940043786061, guid: 3b211f31b55a35e44a8fa38666f63383, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2711516940043786061, guid: 3b211f31b55a35e44a8fa38666f63383, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2711516940043786061, guid: 3b211f31b55a35e44a8fa38666f63383, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2921874279820016524, guid: 3b211f31b55a35e44a8fa38666f63383, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2921874279820016524, guid: 3b211f31b55a35e44a8fa38666f63383, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2940710093054777883, guid: 3b211f31b55a35e44a8fa38666f63383, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2940710093054777883, guid: 3b211f31b55a35e44a8fa38666f63383, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2940710093054777883, guid: 3b211f31b55a35e44a8fa38666f63383, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2940710093054777883, guid: 3b211f31b55a35e44a8fa38666f63383, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2940710093054777883, guid: 3b211f31b55a35e44a8fa38666f63383, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2940710093054777883, guid: 3b211f31b55a35e44a8fa38666f63383, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2940710093054777883, guid: 3b211f31b55a35e44a8fa38666f63383, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3082393374055389930, guid: 3b211f31b55a35e44a8fa38666f63383, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3082393374055389930, guid: 3b211f31b55a35e44a8fa38666f63383, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3082393374055389930, guid: 3b211f31b55a35e44a8fa38666f63383, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3082393374055389930, guid: 3b211f31b55a35e44a8fa38666f63383, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3201409976408832832, guid: 3b211f31b55a35e44a8fa38666f63383, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3201409976408832832, guid: 3b211f31b55a35e44a8fa38666f63383, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3201409976408832832, guid: 3b211f31b55a35e44a8fa38666f63383, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3201409976408832832, guid: 3b211f31b55a35e44a8fa38666f63383, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3283429487447647189, guid: 3b211f31b55a35e44a8fa38666f63383, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3283429487447647189, guid: 3b211f31b55a35e44a8fa38666f63383, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3283429487447647189, guid: 3b211f31b55a35e44a8fa38666f63383, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3283429487447647189, guid: 3b211f31b55a35e44a8fa38666f63383, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3283429487447647189, guid: 3b211f31b55a35e44a8fa38666f63383, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3382122818573208955, guid: 3b211f31b55a35e44a8fa38666f63383, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3382122818573208955, guid: 3b211f31b55a35e44a8fa38666f63383, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3515422821744378301, guid: 3b211f31b55a35e44a8fa38666f63383, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3515422821744378301, guid: 3b211f31b55a35e44a8fa38666f63383, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3515422821744378301, guid: 3b211f31b55a35e44a8fa38666f63383, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3515422821744378301, guid: 3b211f31b55a35e44a8fa38666f63383, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3515422821744378301, guid: 3b211f31b55a35e44a8fa38666f63383, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3638410964911123998, guid: 3b211f31b55a35e44a8fa38666f63383, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3638410964911123998, guid: 3b211f31b55a35e44a8fa38666f63383, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3638410964911123998, guid: 3b211f31b55a35e44a8fa38666f63383, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3638410964911123998, guid: 3b211f31b55a35e44a8fa38666f63383, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} - target: {fileID: 4195056312044822544, guid: 3b211f31b55a35e44a8fa38666f63383, type: 3} propertyPath: m_AnchorMax.y value: 0 @@ -1350,6 +1546,18 @@ PrefabInstance: propertyPath: m_AnchoredPosition.y value: 0 objectReference: {fileID: 0} + - target: {fileID: 4671900371089820408, guid: 3b211f31b55a35e44a8fa38666f63383, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4671900371089820408, guid: 3b211f31b55a35e44a8fa38666f63383, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4671900371089820408, guid: 3b211f31b55a35e44a8fa38666f63383, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} - target: {fileID: 4701095282238438274, guid: 3b211f31b55a35e44a8fa38666f63383, type: 3} propertyPath: m_AnchorMax.y value: 0 @@ -1398,6 +1606,22 @@ PrefabInstance: propertyPath: m_AnchoredPosition.y value: 0 objectReference: {fileID: 0} + - target: {fileID: 5155040771471469003, guid: 3b211f31b55a35e44a8fa38666f63383, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5155040771471469003, guid: 3b211f31b55a35e44a8fa38666f63383, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5155040771471469003, guid: 3b211f31b55a35e44a8fa38666f63383, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5155040771471469003, guid: 3b211f31b55a35e44a8fa38666f63383, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} - target: {fileID: 5179542162941529357, guid: 3b211f31b55a35e44a8fa38666f63383, type: 3} propertyPath: m_AnchorMax.y value: 0 @@ -1518,6 +1742,22 @@ PrefabInstance: propertyPath: m_SizeDelta.y value: 0 objectReference: {fileID: 0} + - target: {fileID: 6064974212694732928, guid: 3b211f31b55a35e44a8fa38666f63383, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6064974212694732928, guid: 3b211f31b55a35e44a8fa38666f63383, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6064974212694732928, guid: 3b211f31b55a35e44a8fa38666f63383, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6064974212694732928, guid: 3b211f31b55a35e44a8fa38666f63383, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} - target: {fileID: 6228199563403754553, guid: 3b211f31b55a35e44a8fa38666f63383, type: 3} propertyPath: m_AnchorMax.y value: 0 @@ -1590,6 +1830,26 @@ PrefabInstance: propertyPath: m_LocalPosition.y value: 0 objectReference: {fileID: 0} + - target: {fileID: 6384207385666895815, guid: 3b211f31b55a35e44a8fa38666f63383, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6384207385666895815, guid: 3b211f31b55a35e44a8fa38666f63383, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6384207385666895815, guid: 3b211f31b55a35e44a8fa38666f63383, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6384207385666895815, guid: 3b211f31b55a35e44a8fa38666f63383, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6384207385666895815, guid: 3b211f31b55a35e44a8fa38666f63383, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} - target: {fileID: 6462781698725903427, guid: 3b211f31b55a35e44a8fa38666f63383, type: 3} propertyPath: m_AnchorMax.y value: 0 @@ -1646,6 +1906,46 @@ PrefabInstance: propertyPath: m_AnchoredPosition.y value: 0 objectReference: {fileID: 0} + - target: {fileID: 6696282460080611485, guid: 3b211f31b55a35e44a8fa38666f63383, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6696282460080611485, guid: 3b211f31b55a35e44a8fa38666f63383, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6696282460080611485, guid: 3b211f31b55a35e44a8fa38666f63383, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6696282460080611485, guid: 3b211f31b55a35e44a8fa38666f63383, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6696282460080611485, guid: 3b211f31b55a35e44a8fa38666f63383, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7042646075262940748, guid: 3b211f31b55a35e44a8fa38666f63383, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7042646075262940748, guid: 3b211f31b55a35e44a8fa38666f63383, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7042646075262940748, guid: 3b211f31b55a35e44a8fa38666f63383, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7042646075262940748, guid: 3b211f31b55a35e44a8fa38666f63383, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7042646075262940748, guid: 3b211f31b55a35e44a8fa38666f63383, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} - target: {fileID: 7158194035478552859, guid: 3b211f31b55a35e44a8fa38666f63383, type: 3} propertyPath: m_AnchorMax.y value: 0 @@ -1698,6 +1998,18 @@ PrefabInstance: propertyPath: m_AnchoredPosition.y value: 0 objectReference: {fileID: 0} + - target: {fileID: 7294832541871909085, guid: 3b211f31b55a35e44a8fa38666f63383, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7294832541871909085, guid: 3b211f31b55a35e44a8fa38666f63383, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7294832541871909085, guid: 3b211f31b55a35e44a8fa38666f63383, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} - target: {fileID: 7535416527851975519, guid: 3b211f31b55a35e44a8fa38666f63383, type: 3} propertyPath: m_AnchorMax.y value: 0 @@ -1726,6 +2038,34 @@ PrefabInstance: propertyPath: m_AnchoredPosition.y value: 0 objectReference: {fileID: 0} + - target: {fileID: 8720207225742131896, guid: 3b211f31b55a35e44a8fa38666f63383, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8720207225742131896, guid: 3b211f31b55a35e44a8fa38666f63383, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8720207225742131896, guid: 3b211f31b55a35e44a8fa38666f63383, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8720207225742131896, guid: 3b211f31b55a35e44a8fa38666f63383, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9044517244222250025, guid: 3b211f31b55a35e44a8fa38666f63383, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9044517244222250025, guid: 3b211f31b55a35e44a8fa38666f63383, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9044517244222250025, guid: 3b211f31b55a35e44a8fa38666f63383, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} m_RemovedComponents: [] m_RemovedGameObjects: [] m_AddedGameObjects: [] @@ -1965,9 +2305,9 @@ RectTransform: m_Children: - {fileID: 1124446957} - {fileID: 1983793178} + - {fileID: 1469631713} - {fileID: 939125854} - {fileID: 1318590597} - - {fileID: 1469631713} m_Father: {fileID: 1335662459} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} @@ -2241,6 +2581,10 @@ PrefabInstance: propertyPath: m_AnchoredPosition.y value: 0 objectReference: {fileID: 0} + - target: {fileID: 406143166925924216, guid: 1de15a80c8c1aa94486563740a15d91c, type: 3} + propertyPath: m_AnchoredPosition.x + value: -5 + objectReference: {fileID: 0} - target: {fileID: 736530578155193984, guid: 1de15a80c8c1aa94486563740a15d91c, type: 3} propertyPath: m_AnchorMax.y value: 0 diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/Event/EEvent.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/Event/EEvent.cs index 7517420..2814d83 100644 --- a/AxibugEmuOnline.Client/Assets/Script/AppMain/Event/EEvent.cs +++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/Event/EEvent.cs @@ -9,7 +9,10 @@ /// 登录成功 /// OnLoginSucceed, - + /// + /// 当登录被置为false时 + /// + OnLossLoginState, /// /// 登录失败 /// @@ -62,11 +65,20 @@ /// /// 服务器等待Step更新 /// - OnRoomWaitStepChange, - + OnRoomWaitStepChange, + /// /// 当房间中手柄位信息发生任何变化时触发,进入房间后也应该触发 /// - OnRoomSlotDataChanged, + OnRoomSlotDataChanged, + /// + /// 当手柄连接设置发生变化时触发 + /// + OnControllerConnectChanged, + /// + /// 当本机手柄渴望插入时触发 + /// 参数: 本地手柄序号[0,3] + /// + OnLocalJoyDesireInvert } } diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/Filter/FilterManager.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/Filter/FilterManager.cs index 03a6b8a..054185a 100644 --- a/AxibugEmuOnline.Client/Assets/Script/AppMain/Filter/FilterManager.cs +++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/Filter/FilterManager.cs @@ -4,7 +4,6 @@ using System.Collections.Generic; using System.Linq; using UnityEngine; using static AxibugEmuOnline.Client.FilterEffect; -using static AxibugEmuOnline.Client.FilterManager; namespace AxibugEmuOnline.Client { @@ -33,8 +32,6 @@ namespace AxibugEmuOnline.Client m_previewFilterWraper = new AlphaWraper(mainBg, filterPreview, false); ShutDownFilterPreview(); ShutDownFilter(); - - } private RenderTexture result = null; @@ -42,6 +39,11 @@ namespace AxibugEmuOnline.Client { if (result == null) result = RenderTexture.GetTemporary(Screen.width, Screen.height); + else if (result.width != Screen.width || result.height != Screen.height) + { + RenderTexture.ReleaseTemporary(result); + result = RenderTexture.GetTemporary(Screen.width, Screen.height); + } bool anyFilterEnable = false; foreach (var filter in Filters) diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/AppEmu.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/AppEmu.cs index 8000a1f..6ed55dd 100644 --- a/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/AppEmu.cs +++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/AppEmu.cs @@ -96,6 +96,8 @@ namespace AxibugEmuOnline.Client.Manager m_controllerSetuper.SetConnect(con0Slot, con1Slot, con2Slot, con3Slot); } + + Eventer.Instance.PostEvent(EEvent.OnControllerConnectChanged); } public void StopGame() diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/AppRoom.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/AppRoom.cs index 9706c80..9f790a2 100644 --- a/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/AppRoom.cs +++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/AppRoom.cs @@ -35,6 +35,7 @@ namespace AxibugEmuOnline.Client.Manager Protobuf_Room_Create _Protobuf_Room_Create = new Protobuf_Room_Create(); Protobuf_Room_Join _Protobuf_Room_Join = new Protobuf_Room_Join(); Protobuf_Room_Leave _Protobuf_Room_Leave = new Protobuf_Room_Leave(); + Protobuf_Room_Change_PlaySlotWithJoy _Protobuf_Room_Change_PlaySlotWithJoy = new Protobuf_Room_Change_PlaySlotWithJoy(); Protobuf_Room_Player_Ready _Protobuf_Room_Player_Ready = new Protobuf_Room_Player_Ready(); Protobuf_Room_SinglePlayerInputData _Protobuf_Room_SinglePlayerInputData = new Protobuf_Room_SinglePlayerInputData(); Protobuf_Screnn_Frame _Protobuf_Screnn_Frame = new Protobuf_Screnn_Frame(); @@ -401,6 +402,29 @@ namespace AxibugEmuOnline.Client.Manager //} } + /// + /// 发送修改玩家槽位 + /// + /// 玩家占用房间GamePlaySlot和LocalJoyIdx字典 + public void SendChangePlaySlotIdxWithJoyIdx(Dictionary dictSlotIdx2LocalJoyIdx) + { + if (!InRoom) + return; + + _Protobuf_Room_Change_PlaySlotWithJoy.SlotWithJoy.Clear(); + + foreach (var slotdata in dictSlotIdx2LocalJoyIdx) + { + _Protobuf_Room_Change_PlaySlotWithJoy.SlotWithJoy.Add(new Protobuf_PlaySlotIdxWithJoyIdx() + { + PlayerSlotIdx = (int)slotdata.Key, + PlayerLocalJoyIdx = (int)slotdata.Value, + }); + } + + App.log.Info($"SendChangePlaySlotIdxWithJoyIdx"); + App.network.SendToServer((int)CommandID.CmdRoomChangePlayerWithJoy, ProtoBufHelper.Serizlize(_Protobuf_Room_Change_PlaySlotWithJoy)); + } /// /// 上报即时存档 /// diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/NesEmulator/NesControllerMapper.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/NesEmulator/NesControllerMapper.cs index 3fb6985..45adb8c 100644 --- a/AxibugEmuOnline.Client/Assets/Script/AppMain/NesEmulator/NesControllerMapper.cs +++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/NesEmulator/NesControllerMapper.cs @@ -1,4 +1,7 @@ -using UnityEngine; +using AxibugEmuOnline.Client.Event; +using System.Collections.Generic; +using System.Linq; +using UnityEngine; using VirtualNes.Core; namespace AxibugEmuOnline.Client @@ -17,14 +20,77 @@ namespace AxibugEmuOnline.Client m_states[0] = m_states[1] = m_states[2] = m_states[3] = 0; if (Controller0.ConnectSlot.HasValue) m_states[Controller0.ConnectSlot.Value] = Controller0.GetButtons(); + else if (Controller0.AnyButtonPressed()) Eventer.Instance.PostEvent(EEvent.OnLocalJoyDesireInvert, 0); + if (Controller1.ConnectSlot.HasValue) m_states[Controller1.ConnectSlot.Value] = Controller1.GetButtons(); + else if (Controller1.AnyButtonPressed()) Eventer.Instance.PostEvent(EEvent.OnLocalJoyDesireInvert, 1); + if (Controller2.ConnectSlot.HasValue) m_states[Controller2.ConnectSlot.Value] = Controller2.GetButtons(); + else if (Controller2.AnyButtonPressed()) Eventer.Instance.PostEvent(EEvent.OnLocalJoyDesireInvert, 2); + if (Controller3.ConnectSlot.HasValue) m_states[Controller3.ConnectSlot.Value] = Controller3.GetButtons(); + else if (Controller3.AnyButtonPressed()) Eventer.Instance.PostEvent(EEvent.OnLocalJoyDesireInvert, 3); var result = new ControllerState(m_states); return result; } + public void SetConnect(uint? con0ToSlot = null, + uint? con1ToSlot = null, + uint? con2ToSlot = null, + uint? con3ToSlot = null) + { + Controller0.ConnectSlot = con0ToSlot; + Controller1.ConnectSlot = con1ToSlot; + Controller2.ConnectSlot = con2ToSlot; + Controller3.ConnectSlot = con3ToSlot; + } + + public int? GetSlotConnectingController(int slotIndex) + { + if (Controller0.ConnectSlot.HasValue && Controller0.ConnectSlot.Value == slotIndex) return 0; + else if (Controller1.ConnectSlot.HasValue && Controller1.ConnectSlot.Value == slotIndex) return 1; + else if (Controller2.ConnectSlot.HasValue && Controller2.ConnectSlot.Value == slotIndex) return 2; + else if (Controller3.ConnectSlot.HasValue && Controller3.ConnectSlot.Value == slotIndex) return 3; + else return null; + } + + static HashSet s_temp = new HashSet(4); + public uint? GetFreeSlotIndex() + { + s_temp.Clear(); + s_temp.Add(0); + s_temp.Add(1); + s_temp.Add(2); + s_temp.Add(3); + + if (Controller0.ConnectSlot.HasValue) s_temp.Remove(Controller0.ConnectSlot.Value); + if (Controller1.ConnectSlot.HasValue) s_temp.Remove(Controller1.ConnectSlot.Value); + if (Controller2.ConnectSlot.HasValue) s_temp.Remove(Controller2.ConnectSlot.Value); + if (Controller3.ConnectSlot.HasValue) s_temp.Remove(Controller3.ConnectSlot.Value); + + if (s_temp.Count > 0) return s_temp.First(); + else return null; + } + + public void LetControllerConnect(int conIndex, uint slotIndex) + { + var targetController = conIndex switch + { + 0 => Controller0, + 1 => Controller1, + 2 => Controller2, + 3 => Controller3, + _ => throw new System.Exception($"Not Allowed conIndex Range: {conIndex}") + }; + + if (targetController.ConnectSlot.HasValue) return; + + targetController.ConnectSlot = slotIndex; + + Eventer.Instance.PostEvent(EEvent.OnControllerConnectChanged); + } + /// /// Nes控制器 /// @@ -85,6 +151,20 @@ namespace AxibugEmuOnline.Client return res; } + public bool AnyButtonPressed() + { + return + UP.IsPressing || + DOWN.IsPressing || + LEFT.IsPressing || + RIGHT.IsPressing || + A.IsPressing || + B.IsPressing || + SELECT.IsPressing || + START.IsPressing || + MIC.IsPressing; + } + public static KeyListener GetKey(int controllerInput, EnumButtonType nesConBtnType) { string configKey = $"NES_{controllerInput}_{nesConBtnType}"; @@ -115,6 +195,9 @@ namespace AxibugEmuOnline.Client /// 按键监听器 KeyListener m_keyListener; + /// 指示按钮是否被按下 + public bool IsPressing => m_keyListener.IsPressing(); + public Button(Controller controller, EnumButtonType buttonType) { m_hostController = controller; @@ -136,11 +219,11 @@ namespace AxibugEmuOnline.Client { m_keyListener = Controller.GetKey(m_hostController.ControllerIndex, m_buttonType); } - } - //low C# readonly - //public readonly struct KeyListener - - public struct KeyListener + } + //low C# readonly + //public readonly struct KeyListener + + public struct KeyListener { private readonly KeyCode m_key; @@ -154,8 +237,8 @@ namespace AxibugEmuOnline.Client { m_key = KeyCode.None; - int result; - if (int.TryParse(confStr, out result)) + int result; + if (int.TryParse(confStr, out result)) m_key = (KeyCode)result; } @@ -225,17 +308,6 @@ namespace AxibugEmuOnline.Client return default(KeyListener); } - } - - public void SetConnect(uint? con0ToSlot = null, - uint? con1ToSlot = null, - uint? con2ToSlot = null, - uint? con3ToSlot = null) - { - Controller0.ConnectSlot = con0ToSlot; - Controller1.ConnectSlot = con1ToSlot; - Controller2.ConnectSlot = con2ToSlot; - Controller3.ConnectSlot = con3ToSlot; - } + } } } \ No newline at end of file diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/Network/NetworkHelper.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/Network/NetworkHelper.cs index e6c0c53..4a8babf 100644 --- a/AxibugEmuOnline.Client/Assets/Script/AppMain/Network/NetworkHelper.cs +++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/Network/NetworkHelper.cs @@ -1,4 +1,5 @@ using AxibugEmuOnline.Client.ClientCore; +using AxibugEmuOnline.Client.Event; using AxibugProtobuf; using HaoYueNet.ClientNetwork; using System; @@ -99,6 +100,7 @@ namespace AxibugEmuOnline.Client.Network public void OnConnectClose() { NetworkDeBugLog("OnConnectClose"); + Eventer.Instance.PostEvent(EEvent.OnLossLoginState); App.user.LoginOutData(); diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/PSVita/SonyVitaCommonDialog.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/PSVita/SonyVitaCommonDialog.cs new file mode 100644 index 0000000..7c4b771 --- /dev/null +++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/PSVita/SonyVitaCommonDialog.cs @@ -0,0 +1,60 @@ +using System; +using UnityEngine; +public class SonyVitaCommonDialog : MonoBehaviour +{ + static Action resultAct = null; + void Awake() + { +#if UNITY_PSP2 + Sony.Vita.Dialog.Ime.OnGotIMEDialogResult += OnGotIMEDialogResult; + Sony.Vita.Dialog.Main.Initialise(); +#endif + } + + public void ShowPSVitaIME(Action callback, string placeHolder, string defaultText) + { + resultAct = callback; +#if UNITY_PSP2 + Sony.Vita.Dialog.Ime.ImeDialogParams info = new Sony.Vita.Dialog.Ime.ImeDialogParams(); + + // Set supported languages, 'or' flags together or set to 0 to support all languages. + info.supportedLanguages = Sony.Vita.Dialog.Ime.FlagsSupportedLanguages.LANGUAGE_JAPANESE | + Sony.Vita.Dialog.Ime.FlagsSupportedLanguages.LANGUAGE_ENGLISH_GB | + Sony.Vita.Dialog.Ime.FlagsSupportedLanguages.LANGUAGE_DANISH; + info.languagesForced = true; + + info.type = Sony.Vita.Dialog.Ime.EnumImeDialogType.TYPE_DEFAULT; + info.option = 0; + info.canCancel = true; + info.textBoxMode = Sony.Vita.Dialog.Ime.FlagsTextBoxMode.TEXTBOX_MODE_WITH_CLEAR; + info.enterLabel = Sony.Vita.Dialog.Ime.EnumImeDialogEnterLabel.ENTER_LABEL_DEFAULT; + info.maxTextLength = 128; + info.title = placeHolder; + info.initialText = defaultText; + Sony.Vita.Dialog.Ime.Open(info); +#endif + } + +#if UNITY_PSP2 + void OnGotIMEDialogResult(Sony.Vita.Dialog.Messages.PluginMessage msg) + { + Sony.Vita.Dialog.Ime.ImeDialogResult result = Sony.Vita.Dialog.Ime.GetResult(); + Debug.Log("IME result: " + result.result); + Debug.Log("IME button: " + result.button); + Debug.Log("IME text: " + result.text); + if (result.result == Sony.Vita.Dialog.Ime.EnumImeDialogResult.RESULT_OK) + { + resultAct.Invoke(result); + } + } +#endif + + +#if UNITY_PSP2 + void Update () + { + Sony.Vita.Dialog.Main.Update(); + } +#endif + +} diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/PSVita/SonyVitaCommonDialog.cs.meta b/AxibugEmuOnline.Client/Assets/Script/AppMain/PSVita/SonyVitaCommonDialog.cs.meta new file mode 100644 index 0000000..6794921 --- /dev/null +++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/PSVita/SonyVitaCommonDialog.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7bc72e9d59cc9134d8855521049ad788 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/OverlayUI/OverlayManager.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/OverlayUI/OverlayManager.cs index b82f089..0f62a3b 100644 --- a/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/OverlayUI/OverlayManager.cs +++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/OverlayUI/OverlayManager.cs @@ -1,4 +1,5 @@ -using System; +using AxibugEmuOnline.Client.ClientCore; +using System; using System.Collections.Generic; using UnityEngine; @@ -20,11 +21,13 @@ namespace AxibugEmuOnline.Client m_InputUI.gameObject.SetActive(false); } - public static InputUI Input(Action callback, string placeHolder, string defaultText) + public static void Input(Action callback, string placeHolder, string defaultText) { +#if UNITY_PSP2 + App.sonyVitaCommonDialog.ShowPSVitaIME(callback, placeHolder, defaultText); +#else s_ins.m_InputUI.Show(new ValueTuple, string, string>(callback, placeHolder, defaultText)); - - return s_ins.m_InputUI; +#endif } public static void PopSideBar(List menus, int defaultIndex = 0, Action onClose = null) where T : OptionMenu diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/RoomUI/RoomItem.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/RoomUI/RoomItem.cs index 1a04dbf..541a517 100644 --- a/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/RoomUI/RoomItem.cs +++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/RoomUI/RoomItem.cs @@ -3,142 +3,143 @@ using AxibugEmuOnline.Client.Event; using AxibugEmuOnline.Client.Manager; using AxibugEmuOnline.Client.UI; using AxibugProtobuf; +using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using Debug = System.Diagnostics.Debug; namespace AxibugEmuOnline.Client -{ - public class RoomItem : MenuItem, IVirtualItem - { - [SerializeField] Image m_roomPreview; - [SerializeField] Slider m_downloadProgress; - [SerializeField] GameObject m_downloadingFlag; - [SerializeField] GameObject m_romReadyFlag; - - private RomFile m_romFile; - - public int Index { get; set; } - public int RoomID { get; private set; } - - protected override void Awake() - { - base.Awake(); - - Eventer.Instance.RegisterEvent(EEvent.OnRoomListSingleUpdate, OnRoomSignelUpdate); - } - - private void OnRoomSignelUpdate(int roomID) - { - if (this.RoomID != roomID) return; - - Protobuf_Room_MiniInfo roomInfo; - if (App.roomMgr.GetRoomListMiniInfo(roomID, out roomInfo)) - UpdateUI(roomInfo); - } - - public void SetData(object data) - { - Debug.Assert(data is Protobuf_Room_MiniInfo); - - var roomInfo = (Protobuf_Room_MiniInfo)data; - RoomID = roomInfo.RoomID; - - UpdateUI(roomInfo); - } - - public override bool OnEnterItem() - { - if (m_romFile == null) return false; - - if (!m_romFile.RomReady) - { - m_romFile.BeginDownload(); - return false; - } - else - { - Protobuf_Room_MiniInfo MiniInfo; - if (!App.roomMgr.GetRoomListMiniInfo(RoomID, out MiniInfo)) - { - OverlayManager.PopTip("房间不存在"); - return false; - } - int[] freeSlots; - if (!MiniInfo.GetFreeSlot(out freeSlots)) - { - OverlayManager.PopTip("无空闲位置"); - return false; - } - - App.roomMgr.SendJoinRoom(RoomID); - return true; - } - } - - private void UpdateUI(Protobuf_Room_MiniInfo roomInfo) - { - var hostNick = roomInfo.GetHostNickName(); - int cur; int max; - - roomInfo.GetRoomPlayers(out cur, out max); - SetBaseInfo("--", $"{hostNick}的房间", $"{cur}/{max}"); - SetIcon(null); - - roomInfo.FetchRomFileInRoomInfo(EnumPlatform.NES, (room, romFile) => - { - if (room.RoomID != RoomID) return; - - m_romFile = romFile; - Txt.text = romFile.Alias; - - UpdateRomInfoView(); - App.CacheMgr.GetSpriteCache(romFile.ImageURL, OnGetRomImage); - }); - } - - protected override void Update() - { - UpdateRomInfoView(); - base.Update(); - } - - private void UpdateRomInfoView() - { - float? downloadingProgress = null; - bool romReady = false; - - if (m_romFile != null) - { - if (m_romFile.IsDownloading) - downloadingProgress = m_romFile.Progress; - if (m_romFile.RomReady) - romReady = true; - } - - m_downloadingFlag.SetActiveEx(downloadingProgress.HasValue); - if (downloadingProgress.HasValue) - m_downloadProgress.value = downloadingProgress.Value; - - m_romReadyFlag.SetActiveEx(romReady); - } - - private void OnGetRomImage(Sprite sprite, string url) - { - if (m_romFile == null) return; - if (m_romFile.ImageURL != url) return; - - SetIcon(sprite); - } - - public void SetDependencyProperty(object data) - { - SetSelectState((data is ThirdMenuRoot && ((ThirdMenuRoot)data).SelectIndex == Index)); - } - - public void Release() - { - Reset(); - } - } +{ + public class RoomItem : MenuItem, IVirtualItem + { + [SerializeField] Image m_roomPreview; + [SerializeField] Slider m_downloadProgress; + [SerializeField] GameObject m_downloadingFlag; + [SerializeField] GameObject m_romReadyFlag; + + private RomFile m_romFile; + + public int Index { get; set; } + public int RoomID { get; private set; } + + protected override void Awake() + { + base.Awake(); + + Eventer.Instance.RegisterEvent(EEvent.OnRoomListSingleUpdate, OnRoomSignelUpdate); + } + + private void OnRoomSignelUpdate(int roomID) + { + if (this.RoomID != roomID) return; + + Protobuf_Room_MiniInfo roomInfo; + if (App.roomMgr.GetRoomListMiniInfo(roomID, out roomInfo)) + UpdateUI(roomInfo); + } + + public void SetData(object data) + { + Debug.Assert(data is Protobuf_Room_MiniInfo); + + var roomInfo = (Protobuf_Room_MiniInfo)data; + RoomID = roomInfo.RoomID; + + UpdateUI(roomInfo); + } + + public override bool OnEnterItem() + { + if (m_romFile == null) return false; + + if (!m_romFile.RomReady) + { + m_romFile.BeginDownload(); + return false; + } + else + { + Protobuf_Room_MiniInfo MiniInfo; + if (!App.roomMgr.GetRoomListMiniInfo(RoomID, out MiniInfo)) + { + OverlayManager.PopTip("房间不存在"); + return false; + } + List freeSlots = new List(); + if (!MiniInfo.GetFreeSlot(ref freeSlots)) + { + OverlayManager.PopTip("无空闲位置"); + return false; + } + + App.roomMgr.SendJoinRoom(RoomID); + return true; + } + } + + private void UpdateUI(Protobuf_Room_MiniInfo roomInfo) + { + var hostNick = roomInfo.GetHostNickName(); + int cur; int max; + + roomInfo.GetRoomPlayers(out cur, out max); + SetBaseInfo("--", $"{hostNick}的房间", $"{cur}/{max}"); + SetIcon(null); + + roomInfo.FetchRomFileInRoomInfo(EnumPlatform.NES, (room, romFile) => + { + if (room.RoomID != RoomID) return; + + m_romFile = romFile; + Txt.text = romFile.Alias; + + UpdateRomInfoView(); + App.CacheMgr.GetSpriteCache(romFile.ImageURL, OnGetRomImage); + }); + } + + protected override void Update() + { + UpdateRomInfoView(); + base.Update(); + } + + private void UpdateRomInfoView() + { + float? downloadingProgress = null; + bool romReady = false; + + if (m_romFile != null) + { + if (m_romFile.IsDownloading) + downloadingProgress = m_romFile.Progress; + if (m_romFile.RomReady) + romReady = true; + } + + m_downloadingFlag.SetActiveEx(downloadingProgress.HasValue); + if (downloadingProgress.HasValue) + m_downloadProgress.value = downloadingProgress.Value; + + m_romReadyFlag.SetActiveEx(romReady); + } + + private void OnGetRomImage(Sprite sprite, string url) + { + if (m_romFile == null) return; + if (m_romFile.ImageURL != url) return; + + SetIcon(sprite); + } + + public void SetDependencyProperty(object data) + { + SetSelectState((data is ThirdMenuRoot && ((ThirdMenuRoot)data).SelectIndex == Index)); + } + + public void Release() + { + Reset(); + } + } } \ No newline at end of file diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/XMBTopGroupUI/ControllerInfo.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/XMBTopGroupUI/ControllerInfo.cs new file mode 100644 index 0000000..3feabb0 --- /dev/null +++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/XMBTopGroupUI/ControllerInfo.cs @@ -0,0 +1,130 @@ +using AxibugEmuOnline.Client; +using AxibugEmuOnline.Client.ClientCore; +using AxibugEmuOnline.Client.Event; +using System; +using UnityEngine; +using UnityEngine.UI; +using VirtualNes.Core; + +public class ControllerInfo : MonoBehaviour +{ + [Header("手柄槽位序号[0,3]")] + [SerializeField] + int m_slotIndex; + + [SerializeField] + GameObject m_connectInfoNode; + [SerializeField] + Image m_indexIcon; + [SerializeField] + Text m_playerName; + + int m_localJoyIndex; + bool m_isLocal; + + public int SlotIndex + { + get => m_slotIndex; + set + { + if (m_slotIndex == value) return; + m_slotIndex = value; + UpdateIndexIcon(); + } + } + + private void Awake() + { + UpdateIndexIcon(); + } + + + private void OnEnable() + { + Eventer.Instance.RegisterEvent(EEvent.OnMineJoinRoom, OnJoinRoom); + Eventer.Instance.RegisterEvent(EEvent.OnMineRoomCreated, OnMineRoomCreated); + Eventer.Instance.RegisterEvent(EEvent.OnMineLeavnRoom, OnLeaveRoom); + Eventer.Instance.RegisterEvent(EEvent.OnLoginSucceed, OnLoginSuccess); + Eventer.Instance.RegisterEvent(EEvent.OnLossLoginState, OnLossLoginState); + Eventer.Instance.RegisterEvent(EEvent.OnControllerConnectChanged, OnControlConnectChanged); + UpdateConnectInfo(); + } + + private void OnDisable() + { + Eventer.Instance.UnregisterEvent(EEvent.OnMineJoinRoom, OnJoinRoom); + Eventer.Instance.UnregisterEvent(EEvent.OnMineRoomCreated, OnMineRoomCreated); + Eventer.Instance.UnregisterEvent(EEvent.OnMineLeavnRoom, OnLeaveRoom); + Eventer.Instance.UnregisterEvent(EEvent.OnLoginSucceed, OnLoginSuccess); + Eventer.Instance.UnregisterEvent(EEvent.OnLossLoginState, OnLossLoginState); + Eventer.Instance.UnregisterEvent(EEvent.OnControllerConnectChanged, OnControlConnectChanged); + } + + private void OnMineRoomCreated() => UpdateConnectInfo(); + private void OnJoinRoom() => UpdateConnectInfo(); + private void OnLeaveRoom() => UpdateConnectInfo(); + private void OnLoginSuccess() => UpdateConnectInfo(); + private void OnLossLoginState() => UpdateConnectInfo(); + private void OnControlConnectChanged() => UpdateConnectInfo(); + + private void UpdateConnectInfo() + { + if (App.roomMgr.InRoom) + { + var slotInfo = App.roomMgr.mineRoomMiniInfo.GamePlaySlotList[SlotIndex]; + if (slotInfo.PlayerUID <= 0) + SetDisconnect(); + else + UpdateStateView(App.user.userdata.UID == slotInfo.PlayerUID, slotInfo.PlayerNickName, slotInfo.PlayerLocalJoyIdx); + } + else + { + var connecter = Supporter.GetControllerSetuper(); + if (connecter == null) + { + SetDisconnect(); + return; + } + + var localControlIndex = connecter.GetSlotConnectingController(SlotIndex); + if (localControlIndex == null) + SetDisconnect(); + else + { + if (App.user.IsLoggedIn) + UpdateStateView(true, App.user.userdata.NickName, localControlIndex.Value); + else + UpdateStateView(true, "Player", localControlIndex.Value); + } + } + } + + private void UpdateStateView(bool isLocal, string playerName, int slotIndex) + { + m_localJoyIndex = slotIndex; + m_isLocal = isLocal; + + m_connectInfoNode.SetActiveEx(true); + m_playerName.text = playerName; + } + + private void SetDisconnect() + { + m_localJoyIndex = -1; + m_isLocal = false; + + m_connectInfoNode.SetActiveEx(false); + m_playerName.text = null; + } + + private void UpdateIndexIcon() + { + switch (SlotIndex) + { + case 0: m_indexIcon.sprite = Resources.Load("UIImage/JoyImg/P1"); break; + case 1: m_indexIcon.sprite = Resources.Load("UIImage/JoyImg/P2"); break; + case 2: m_indexIcon.sprite = Resources.Load("UIImage/JoyImg/P3"); break; + case 3: m_indexIcon.sprite = Resources.Load("UIImage/JoyImg/P4"); break; + } + } +} diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/XMBTopGroupUI/ControllerInfo.cs.meta b/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/XMBTopGroupUI/ControllerInfo.cs.meta new file mode 100644 index 0000000..2ce16b9 --- /dev/null +++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/XMBTopGroupUI/ControllerInfo.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 1bfe4359a48b5c349b439e88eb53b8b1 \ No newline at end of file diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/XMBTopGroupUI/ControllerInfoPanel.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/XMBTopGroupUI/ControllerInfoPanel.cs new file mode 100644 index 0000000..0486db7 --- /dev/null +++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/XMBTopGroupUI/ControllerInfoPanel.cs @@ -0,0 +1,43 @@ +using AxibugEmuOnline.Client.ClientCore; +using AxibugEmuOnline.Client.Event; +using AxibugEmuOnline.Client.Manager; +using System; +using System.Collections.Generic; +using UnityEngine; +using VirtualNes.Core; + +public class ControllerInfoPanel : MonoBehaviour +{ + private void OnEnable() + { + Eventer.Instance.RegisterEvent(EEvent.OnLocalJoyDesireInvert, OnLocalJoyDesireInvert); + } + + private void OnDisable() + { + Eventer.Instance.UnregisterEvent(EEvent.OnLocalJoyDesireInvert, OnLocalJoyDesireInvert); + } + + static List s_freeSlots = new List(4); + private void OnLocalJoyDesireInvert(int joyIndex) + { + if (App.roomMgr.InRoom) + { + if (!App.roomMgr.mineRoomMiniInfo.GetFreeSlot(ref s_freeSlots)) return; + + //找到第一个空闲手柄插槽 + var freeSlotIndex = s_freeSlots[0]; + //App.roomMgr.SendRoomSingelPlayerInput + } + else //不在房间中,直接设置 + { + var setuper = Supporter.GetControllerSetuper(); + if (setuper == null) return; + + var freeSlotIndex = setuper.GetFreeSlotIndex(); + if (freeSlotIndex == null) return; + + setuper.LetControllerConnect(joyIndex, freeSlotIndex.Value); + } + } +} diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/XMBTopGroupUI/ControllerInfoPanel.cs.meta b/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/XMBTopGroupUI/ControllerInfoPanel.cs.meta new file mode 100644 index 0000000..69be886 --- /dev/null +++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/XMBTopGroupUI/ControllerInfoPanel.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 909a5b71ba48a9c46a57d43017072837 \ No newline at end of file diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/XMBTopGroupUI/XMBInfoBar.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/XMBTopGroupUI/XMBInfoBar.cs index 264881f..58087c4 100644 --- a/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/XMBTopGroupUI/XMBInfoBar.cs +++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/XMBTopGroupUI/XMBInfoBar.cs @@ -1,4 +1,4 @@ -using AxibugEmuOnline.Client; +using AxibugEmuOnline.Client; using AxibugEmuOnline.Client.ClientCore; using System; using UnityEngine; @@ -14,6 +14,7 @@ public class XMBInfoBar : MonoBehaviour public Text DelayValue; public Text OnlinePlayerCount; public Text FPS; + public GameObject ControlSlotInfoNode; void OnEnable() { @@ -21,6 +22,11 @@ public class XMBInfoBar : MonoBehaviour RefreshAll(); } + private void Update() + { + ControlSlotInfoNode.SetActiveEx(!App.emu.Core.IsNull()); + } + void OnDisable() { TickLoop.LoopAction_1s -= RefreshAll; @@ -32,31 +38,31 @@ public class XMBInfoBar : MonoBehaviour RefreshPower(); RefreshDelay(); RefreshFps(); - } - - /// - /// (uint lastFrame, float lastTime) - /// - ValueTuple m_lastFrameInfo; + } + + /// + /// (uint lastFrame, float lastTime) + /// + ValueTuple m_lastFrameInfo; private void RefreshFps() { if (App.emu.Core.IsNull()) FPS.gameObject.SetActiveEx(false); else { - FPS.gameObject.SetActiveEx(true); - //var gap = App.emu.Core.Frame - m_lastFrameInfo.lastFrame; - //var time = Time.realtimeSinceStartup - m_lastFrameInfo.lastTime; - var gap = App.emu.Core.Frame - m_lastFrameInfo.Item1; - var time = Time.realtimeSinceStartup - m_lastFrameInfo.Item2; - var fps = gap / time; - FPS.text = $"FPS:{fps:.#}"; - - //m_lastFrameInfo.lastFrame = App.emu.Core.Frame; - //m_lastFrameInfo.lastTime = Time.realtimeSinceStartup; - m_lastFrameInfo.Item1 = App.emu.Core.Frame; - m_lastFrameInfo.Item2 = Time.realtimeSinceStartup; - } + FPS.gameObject.SetActiveEx(true); + //var gap = App.emu.Core.Frame - m_lastFrameInfo.lastFrame; + //var time = Time.realtimeSinceStartup - m_lastFrameInfo.lastTime; + var gap = App.emu.Core.Frame - m_lastFrameInfo.Item1; + var time = Time.realtimeSinceStartup - m_lastFrameInfo.Item2; + var fps = gap / time; + FPS.text = $"FPS:{fps:.#}"; + + //m_lastFrameInfo.lastFrame = App.emu.Core.Frame; + //m_lastFrameInfo.lastTime = Time.realtimeSinceStartup; + m_lastFrameInfo.Item1 = App.emu.Core.Frame; + m_lastFrameInfo.Item2 = Time.realtimeSinceStartup; + } } private void RefreshDelay() diff --git a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Supporter/Supporter.cs b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Supporter/Supporter.cs index 3701159..913e2f5 100644 --- a/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Supporter/Supporter.cs +++ b/AxibugEmuOnline.Client/Assets/VirtualNes.Core/Supporter/Supporter.cs @@ -1,4 +1,4 @@ -using System.IO; +using System.IO; namespace VirtualNes.Core { @@ -68,7 +68,7 @@ namespace VirtualNes.Core public static IControllerSetuper GetControllerSetuper() { - return s_support.GetControllerSetuper(); + return s_support?.GetControllerSetuper(); } public static EmulatorConfig Config => s_support.Config; @@ -98,12 +98,32 @@ namespace VirtualNes.Core public interface IControllerSetuper { /// - /// 设置本地手柄与游戏手柄槽位的映射 + /// 设置本地手柄与游戏手柄槽位的映射,这个方法是一个全量更新手柄插入设置的方法 /// void SetConnect( uint? con0ToSlot = null, uint? con1ToSlot = null, uint? con2ToSlot = null, uint? con3ToSlot = null); + + /// + /// 指定手柄插槽位,获取当前槽位连接的本地手柄序号 + /// + /// + /// + int? GetSlotConnectingController(int slotIndex); + + /// + /// 获得一个空的槽位 + /// + /// + uint? GetFreeSlotIndex(); + + /// + /// 增量式的修改一个手柄和一个槽位的连接关系 + /// + /// + /// + void LetControllerConnect(int conIndex, uint slotIndex); } } \ No newline at end of file diff --git a/AxibugEmuOnline.Server/Manager/RoomManager.cs b/AxibugEmuOnline.Server/Manager/RoomManager.cs index 401e7e5..f9bd21e 100644 --- a/AxibugEmuOnline.Server/Manager/RoomManager.cs +++ b/AxibugEmuOnline.Server/Manager/RoomManager.cs @@ -642,7 +642,11 @@ namespace AxibugEmuOnline.Server ScreenProviderUID = hostUId; if (PlayerSlot == null) + { PlayerSlot = new Data_RoomSlot[4]; + for (uint i = 0; i < PlayerSlot.Length; i++) + PlayerSlot[i] = new Data_RoomSlot(); + } for (uint i = 0; i < PlayerSlot.Length; i++) PlayerSlot[i].Init(i); @@ -814,7 +818,8 @@ namespace AxibugEmuOnline.Server foreach (var slotdata in newSlotIdx2JoyIdx) { PlayerSlot[slotdata.Key].LocalJoyIdx = slotdata.Value; - AppSrv.g_Log.Debug($"SetPlayerUID RoomID->{RoomID} _c.UID->{_c.UID} PlayerSlotIdx->{slotdata.Key} LocalJoyIdx->{slotdata.Value}"); + PlayerSlot[slotdata.Key].UID = _c.UID; + AppSrv.g_Log.DebugCmd($"SetPlayerSlot RoomID->{RoomID} _c.UID->{_c.UID} PlayerSlotIdx->{slotdata.Key} LocalJoyIdx->{slotdata.Value}"); } //更新需要同步的UID UpdateSynUIDs();