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