# Conflicts:
#	AxibugEmuOnline.Client/Assets/Script/AppMain/UI/OverlayUI/OverlayManager.cs
This commit is contained in:
ALIENJACK\alien 2024-12-25 18:23:48 +08:00
commit 02693523a3
28 changed files with 1652 additions and 204 deletions

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 957996f7ef8e16e4d83eace2efbcbfaa
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -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:

View File

@ -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:

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: b3de348afcfb8214ea5dced94199f16e
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: eb76ae7b43c117c449fe04e536cf3f34
MonoAssemblyImporter:
serializedVersion: 1
iconMap: {}
executionOrder: {}
userData:

View File

@ -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

View File

@ -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}

View File

@ -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

View File

@ -9,7 +9,10 @@
/// 登录成功
/// </summary>
OnLoginSucceed,
/// <summary>
/// 当登录被置为false时
/// </summary>
OnLossLoginState,
/// <summary>
/// 登录失败
/// </summary>
@ -62,11 +65,20 @@
/// <summary>
/// 服务器等待Step更新
/// </summary>
OnRoomWaitStepChange,
OnRoomWaitStepChange,
/// <summary>
/// 当房间中手柄位信息发生任何变化时触发,进入房间后也应该触发
/// </summary>
OnRoomSlotDataChanged,
OnRoomSlotDataChanged,
/// <summary>
/// 当手柄连接设置发生变化时触发
/// </summary>
OnControllerConnectChanged,
/// <summary>
/// 当本机手柄渴望插入时触发
/// <para>参数: <see cref="int"/> 本地手柄序号[0,3]</para>
/// </summary>
OnLocalJoyDesireInvert
}
}

View File

@ -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)

View File

@ -96,6 +96,8 @@ namespace AxibugEmuOnline.Client.Manager
m_controllerSetuper.SetConnect(con0Slot, con1Slot, con2Slot, con3Slot);
}
Eventer.Instance.PostEvent(EEvent.OnControllerConnectChanged);
}
public void StopGame()

View File

@ -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
//}
}
/// <summary>
/// 发送修改玩家槽位
/// </summary>
/// <param name="dictSlotIdx2LocalJoyIdx">玩家占用房间GamePlaySlot和LocalJoyIdx字典</param>
public void SendChangePlaySlotIdxWithJoyIdx(Dictionary<uint, uint> 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));
}
/// <summary>
/// 上报即时存档
/// </summary>

View File

@ -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<uint> s_temp = new HashSet<uint>(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);
}
/// <summary>
/// Nes控制器
/// </summary>
@ -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
/// <summary> 按键监听器 </summary>
KeyListener m_keyListener;
/// <summary> 指示按钮是否被按下 </summary>
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;
}
}
}
}

View File

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

View File

@ -0,0 +1,60 @@
using System;
using UnityEngine;
public class SonyVitaCommonDialog : MonoBehaviour
{
static Action<string> resultAct = null;
void Awake()
{
#if UNITY_PSP2
Sony.Vita.Dialog.Ime.OnGotIMEDialogResult += OnGotIMEDialogResult;
Sony.Vita.Dialog.Main.Initialise();
#endif
}
public void ShowPSVitaIME(Action<string> 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
}

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 7bc72e9d59cc9134d8855521049ad788
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:

View File

@ -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<string> callback, string placeHolder, string defaultText)
public static void Input(Action<string> callback, string placeHolder, string defaultText)
{
#if UNITY_PSP2
App.sonyVitaCommonDialog.ShowPSVitaIME(callback, placeHolder, defaultText);
#else
s_ins.m_InputUI.Show(new ValueTuple<Action<string>, string, string>(callback, placeHolder, defaultText));
return s_ins.m_InputUI;
#endif
}
public static void PopSideBar<T>(List<T> menus, int defaultIndex = 0, Action onClose = null) where T : OptionMenu

View File

@ -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<int>(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("--", $"<b>{hostNick}</b>的房间", $"{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<int>(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<int> freeSlots = new List<int>();
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("--", $"<b>{hostNick}</b>的房间", $"{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();
}
}
}

View File

@ -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<Sprite>("UIImage/JoyImg/P1"); break;
case 1: m_indexIcon.sprite = Resources.Load<Sprite>("UIImage/JoyImg/P2"); break;
case 2: m_indexIcon.sprite = Resources.Load<Sprite>("UIImage/JoyImg/P3"); break;
case 3: m_indexIcon.sprite = Resources.Load<Sprite>("UIImage/JoyImg/P4"); break;
}
}
}

View File

@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 1bfe4359a48b5c349b439e88eb53b8b1

View File

@ -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<int>(EEvent.OnLocalJoyDesireInvert, OnLocalJoyDesireInvert);
}
private void OnDisable()
{
Eventer.Instance.UnregisterEvent<int>(EEvent.OnLocalJoyDesireInvert, OnLocalJoyDesireInvert);
}
static List<int> s_freeSlots = new List<int>(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);
}
}
}

View File

@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 909a5b71ba48a9c46a57d43017072837

View File

@ -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();
}
/// <summary>
/// (uint lastFrame, float lastTime)
/// </summary>
ValueTuple<uint,float> m_lastFrameInfo;
}
/// <summary>
/// (uint lastFrame, float lastTime)
/// </summary>
ValueTuple<uint, float> 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()

View File

@ -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
{
/// <summary>
/// 设置本地手柄与游戏手柄槽位的映射
/// 设置本地手柄与游戏手柄槽位的映射,这个方法是一个全量更新手柄插入设置的方法
/// </summary>
void SetConnect(
uint? con0ToSlot = null,
uint? con1ToSlot = null,
uint? con2ToSlot = null,
uint? con3ToSlot = null);
/// <summary>
/// 指定手柄插槽位,获取当前槽位连接的本地手柄序号
/// </summary>
/// <param name="slotIndex"></param>
/// <returns></returns>
int? GetSlotConnectingController(int slotIndex);
/// <summary>
/// 获得一个空的槽位
/// </summary>
/// <returns></returns>
uint? GetFreeSlotIndex();
/// <summary>
/// 增量式的修改一个手柄和一个槽位的连接关系
/// </summary>
/// <param name="conIndex"></param>
/// <param name="slotIndex"></param>
void LetControllerConnect(int conIndex, uint slotIndex);
}
}

View File

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