mirror of https://github.com/tuyoogame/YooAsset
update sample
parent
82cff36194
commit
5718d57b88
|
@ -85,7 +85,7 @@ MonoBehaviour:
|
|||
CollectorGUID: 12d33f33f3a55224c9c747d7bffa1c68
|
||||
CollectorType: 0
|
||||
AddressRuleName: AddressByFileName
|
||||
PackRuleName: PackDirectory
|
||||
PackRuleName: PackSeparately
|
||||
FilterRuleName: CollectAll
|
||||
AssetTags:
|
||||
- CollectPath: Assets/Samples/Space Shooter/GameRes/UISprite
|
||||
|
|
|
@ -121,89 +121,6 @@ NavMeshSettings:
|
|||
debug:
|
||||
m_Flags: 0
|
||||
m_NavMeshData: {fileID: 0}
|
||||
--- !u!1 &882660809
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 882660812}
|
||||
- component: {fileID: 882660811}
|
||||
- component: {fileID: 882660810}
|
||||
m_Layer: 0
|
||||
m_Name: Camera
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!81 &882660810
|
||||
AudioListener:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 882660809}
|
||||
m_Enabled: 1
|
||||
--- !u!20 &882660811
|
||||
Camera:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 882660809}
|
||||
m_Enabled: 1
|
||||
serializedVersion: 2
|
||||
m_ClearFlags: 2
|
||||
m_BackGroundColor: {r: 0, g: 0, b: 0, a: 0}
|
||||
m_projectionMatrixMode: 1
|
||||
m_GateFitMode: 2
|
||||
m_FOVAxisMode: 0
|
||||
m_SensorSize: {x: 36, y: 24}
|
||||
m_LensShift: {x: 0, y: 0}
|
||||
m_FocalLength: 50
|
||||
m_NormalizedViewPortRect:
|
||||
serializedVersion: 2
|
||||
x: 0
|
||||
y: 0
|
||||
width: 1
|
||||
height: 1
|
||||
near clip plane: 0.3
|
||||
far clip plane: 1000
|
||||
field of view: 60
|
||||
orthographic: 0
|
||||
orthographic size: 5
|
||||
m_Depth: 0
|
||||
m_CullingMask:
|
||||
serializedVersion: 2
|
||||
m_Bits: 4294967295
|
||||
m_RenderingPath: -1
|
||||
m_TargetTexture: {fileID: 0}
|
||||
m_TargetDisplay: 0
|
||||
m_TargetEye: 3
|
||||
m_HDR: 1
|
||||
m_AllowMSAA: 1
|
||||
m_AllowDynamicResolution: 0
|
||||
m_ForceIntoRT: 0
|
||||
m_OcclusionCulling: 1
|
||||
m_StereoConvergence: 10
|
||||
m_StereoSeparation: 0.022
|
||||
--- !u!4 &882660812
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 882660809}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: -0.09431402, y: 0.086022705, z: -11.001953}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_Children: []
|
||||
m_Father: {fileID: 0}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!1 &1281760859
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
|
@ -248,3 +165,86 @@ Transform:
|
|||
m_Father: {fileID: 0}
|
||||
m_RootOrder: 1
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!1 &6920458660802423023
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 6920458660802423026}
|
||||
- component: {fileID: 6920458660802423025}
|
||||
- component: {fileID: 6920458660802423024}
|
||||
m_Layer: 0
|
||||
m_Name: Main Camera
|
||||
m_TagString: MainCamera
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!81 &6920458660802423024
|
||||
AudioListener:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6920458660802423023}
|
||||
m_Enabled: 1
|
||||
--- !u!20 &6920458660802423025
|
||||
Camera:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6920458660802423023}
|
||||
m_Enabled: 1
|
||||
serializedVersion: 2
|
||||
m_ClearFlags: 2
|
||||
m_BackGroundColor: {r: 0, g: 0, b: 0, a: 0.043137256}
|
||||
m_projectionMatrixMode: 1
|
||||
m_GateFitMode: 2
|
||||
m_FOVAxisMode: 0
|
||||
m_SensorSize: {x: 36, y: 24}
|
||||
m_LensShift: {x: 0, y: 0}
|
||||
m_FocalLength: 50
|
||||
m_NormalizedViewPortRect:
|
||||
serializedVersion: 2
|
||||
x: 0
|
||||
y: 0
|
||||
width: 1
|
||||
height: 1
|
||||
near clip plane: 0.3
|
||||
far clip plane: 1000
|
||||
field of view: 60
|
||||
orthographic: 1
|
||||
orthographic size: 10
|
||||
m_Depth: 0
|
||||
m_CullingMask:
|
||||
serializedVersion: 2
|
||||
m_Bits: 4294967295
|
||||
m_RenderingPath: -1
|
||||
m_TargetTexture: {fileID: 0}
|
||||
m_TargetDisplay: 0
|
||||
m_TargetEye: 3
|
||||
m_HDR: 1
|
||||
m_AllowMSAA: 1
|
||||
m_AllowDynamicResolution: 0
|
||||
m_ForceIntoRT: 0
|
||||
m_OcclusionCulling: 1
|
||||
m_StereoConvergence: 10
|
||||
m_StereoSeparation: 0.022
|
||||
--- !u!4 &6920458660802423026
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6920458660802423023}
|
||||
m_LocalRotation: {x: 0.7071068, y: 0, z: 0, w: 0.7071068}
|
||||
m_LocalPosition: {x: 0, y: 10, z: 5}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_Children: []
|
||||
m_Father: {fileID: 0}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 90, y: 0, z: 0}
|
||||
|
|
|
@ -168,24 +168,6 @@ GameObject:
|
|||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!1 &15
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 28}
|
||||
- component: {fileID: 61}
|
||||
- component: {fileID: 69}
|
||||
m_Layer: 0
|
||||
m_Name: EventSystem
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!1 &16
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
|
@ -198,6 +180,7 @@ GameObject:
|
|||
- component: {fileID: 35}
|
||||
- component: {fileID: 33}
|
||||
- component: {fileID: 70}
|
||||
- component: {fileID: 18}
|
||||
m_Layer: 0
|
||||
m_Name: Background
|
||||
m_TagString: Untagged
|
||||
|
@ -223,24 +206,102 @@ GameObject:
|
|||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!1 &18
|
||||
GameObject:
|
||||
--- !u!82 &18
|
||||
AudioSource:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 31}
|
||||
- component: {fileID: 39}
|
||||
- component: {fileID: 26}
|
||||
m_Layer: 0
|
||||
m_Name: BattleRoom
|
||||
m_TagString: GameController
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
m_GameObject: {fileID: 16}
|
||||
m_Enabled: 1
|
||||
serializedVersion: 4
|
||||
OutputAudioMixerGroup: {fileID: 0}
|
||||
m_audioClip: {fileID: 8300000, guid: 7b04c59dd84f14039b601e1abbe7b884, type: 3}
|
||||
m_PlayOnAwake: 1
|
||||
m_Volume: 0.5
|
||||
m_Pitch: 1
|
||||
Loop: 1
|
||||
Mute: 0
|
||||
Spatialize: 0
|
||||
SpatializePostEffects: 0
|
||||
Priority: 128
|
||||
DopplerLevel: 1
|
||||
MinDistance: 1
|
||||
MaxDistance: 500
|
||||
Pan2D: 0
|
||||
rolloffMode: 0
|
||||
BypassEffects: 0
|
||||
BypassListenerEffects: 0
|
||||
BypassReverbZones: 0
|
||||
rolloffCustomCurve:
|
||||
serializedVersion: 2
|
||||
m_Curve:
|
||||
- serializedVersion: 3
|
||||
time: 0
|
||||
value: 1
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.33333334
|
||||
- serializedVersion: 3
|
||||
time: 1
|
||||
value: 0
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.33333334
|
||||
m_PreInfinity: 2
|
||||
m_PostInfinity: 2
|
||||
m_RotationOrder: 4
|
||||
panLevelCustomCurve:
|
||||
serializedVersion: 2
|
||||
m_Curve:
|
||||
- serializedVersion: 3
|
||||
time: 0
|
||||
value: 0
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.33333334
|
||||
m_PreInfinity: 2
|
||||
m_PostInfinity: 2
|
||||
m_RotationOrder: 0
|
||||
spreadCustomCurve:
|
||||
serializedVersion: 2
|
||||
m_Curve:
|
||||
- serializedVersion: 3
|
||||
time: 0
|
||||
value: 0
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.33333334
|
||||
m_PreInfinity: 2
|
||||
m_PostInfinity: 2
|
||||
m_RotationOrder: 0
|
||||
reverbZoneMixCustomCurve:
|
||||
serializedVersion: 2
|
||||
m_Curve:
|
||||
- serializedVersion: 3
|
||||
time: 0
|
||||
value: 0
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.33333334
|
||||
m_PreInfinity: 2
|
||||
m_PostInfinity: 2
|
||||
m_RotationOrder: 0
|
||||
--- !u!4 &19
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
|
@ -328,7 +389,7 @@ Transform:
|
|||
m_LocalScale: {x: 15, y: 2, z: 40}
|
||||
m_Children: []
|
||||
m_Father: {fileID: 0}
|
||||
m_RootOrder: 7
|
||||
m_RootOrder: 4
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!4 &25
|
||||
Transform:
|
||||
|
@ -344,23 +405,6 @@ Transform:
|
|||
m_Father: {fileID: 20}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!114 &26
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 18}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 43ab5a1b8ae5c2b4a8995952e7e01f3f, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
SpawnValues: {x: 6, y: 0, z: 20}
|
||||
EnemyCount: 10
|
||||
SpawnWait: 0.75
|
||||
StartWait: 1
|
||||
WaveWait: 4
|
||||
--- !u!4 &27
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
|
@ -375,20 +419,6 @@ Transform:
|
|||
m_Father: {fileID: 20}
|
||||
m_RootOrder: 2
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!4 &28
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 15}
|
||||
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_Children: []
|
||||
m_Father: {fileID: 0}
|
||||
m_RootOrder: 4
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!4 &29
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
|
@ -418,20 +448,6 @@ Transform:
|
|||
m_Father: {fileID: 29}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!4 &31
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 18}
|
||||
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_Children: []
|
||||
m_Father: {fileID: 0}
|
||||
m_RootOrder: 6
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!23 &33
|
||||
MeshRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
|
@ -539,102 +555,6 @@ BoxCollider:
|
|||
serializedVersion: 2
|
||||
m_Size: {x: 1, y: 5.8, z: 1}
|
||||
m_Center: {x: 0, y: 0.15, z: 0}
|
||||
--- !u!82 &39
|
||||
AudioSource:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 18}
|
||||
m_Enabled: 1
|
||||
serializedVersion: 4
|
||||
OutputAudioMixerGroup: {fileID: 0}
|
||||
m_audioClip: {fileID: 8300000, guid: 7b04c59dd84f14039b601e1abbe7b884, type: 3}
|
||||
m_PlayOnAwake: 1
|
||||
m_Volume: 0.5
|
||||
m_Pitch: 1
|
||||
Loop: 1
|
||||
Mute: 0
|
||||
Spatialize: 0
|
||||
SpatializePostEffects: 0
|
||||
Priority: 128
|
||||
DopplerLevel: 1
|
||||
MinDistance: 1
|
||||
MaxDistance: 500
|
||||
Pan2D: 0
|
||||
rolloffMode: 0
|
||||
BypassEffects: 0
|
||||
BypassListenerEffects: 0
|
||||
BypassReverbZones: 0
|
||||
rolloffCustomCurve:
|
||||
serializedVersion: 2
|
||||
m_Curve:
|
||||
- serializedVersion: 3
|
||||
time: 0
|
||||
value: 1
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.33333334
|
||||
- serializedVersion: 3
|
||||
time: 1
|
||||
value: 0
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.33333334
|
||||
m_PreInfinity: 2
|
||||
m_PostInfinity: 2
|
||||
m_RotationOrder: 4
|
||||
panLevelCustomCurve:
|
||||
serializedVersion: 2
|
||||
m_Curve:
|
||||
- serializedVersion: 3
|
||||
time: 0
|
||||
value: 0
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.33333334
|
||||
m_PreInfinity: 2
|
||||
m_PostInfinity: 2
|
||||
m_RotationOrder: 0
|
||||
spreadCustomCurve:
|
||||
serializedVersion: 2
|
||||
m_Curve:
|
||||
- serializedVersion: 3
|
||||
time: 0
|
||||
value: 0
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.33333334
|
||||
m_PreInfinity: 2
|
||||
m_PostInfinity: 2
|
||||
m_RotationOrder: 0
|
||||
reverbZoneMixCustomCurve:
|
||||
serializedVersion: 2
|
||||
m_Curve:
|
||||
- serializedVersion: 3
|
||||
time: 0
|
||||
value: 0
|
||||
inSlope: 0
|
||||
outSlope: 0
|
||||
tangentMode: 0
|
||||
weightedMode: 0
|
||||
inWeight: 0.33333334
|
||||
outWeight: 0.33333334
|
||||
m_PreInfinity: 2
|
||||
m_PostInfinity: 2
|
||||
m_RotationOrder: 0
|
||||
--- !u!104 &41
|
||||
RenderSettings:
|
||||
m_ObjectHideFlags: 0
|
||||
|
@ -11053,119 +10973,6 @@ ParticleSystemRenderer:
|
|||
m_Mesh2: {fileID: 0}
|
||||
m_Mesh3: {fileID: 0}
|
||||
m_MaskInteraction: 0
|
||||
--- !u!223 &55
|
||||
Canvas:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1657258425}
|
||||
m_Enabled: 1
|
||||
serializedVersion: 3
|
||||
m_RenderMode: 0
|
||||
m_Camera: {fileID: 0}
|
||||
m_PlaneDistance: 100
|
||||
m_PixelPerfect: 0
|
||||
m_ReceivesEvents: 1
|
||||
m_OverrideSorting: 0
|
||||
m_OverridePixelPerfect: 0
|
||||
m_SortingBucketNormalizedSize: 0
|
||||
m_AdditionalShaderChannelsFlag: 0
|
||||
m_SortingLayerID: 0
|
||||
m_SortingOrder: 0
|
||||
m_TargetDisplay: 0
|
||||
--- !u!224 &57
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1657258425}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 0, y: 0, z: 0}
|
||||
m_Children: []
|
||||
m_Father: {fileID: 0}
|
||||
m_RootOrder: 0
|
||||
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: 0}
|
||||
m_Pivot: {x: 0, y: 0}
|
||||
--- !u!114 &61
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 15}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 76c392e42b5098c458856cdf6ecaaaa1, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_FirstSelected: {fileID: 0}
|
||||
m_sendNavigationEvents: 1
|
||||
m_DragThreshold: 5
|
||||
--- !u!114 &63
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1657258425}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_IgnoreReversedGraphics: 1
|
||||
m_BlockingObjects: 0
|
||||
m_BlockingMask:
|
||||
serializedVersion: 2
|
||||
m_Bits: 4294967295
|
||||
--- !u!114 &64
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1657258425}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_UiScaleMode: 0
|
||||
m_ReferencePixelsPerUnit: 100
|
||||
m_ScaleFactor: 1
|
||||
m_ReferenceResolution: {x: 800, y: 600}
|
||||
m_ScreenMatchMode: 0
|
||||
m_MatchWidthOrHeight: 0
|
||||
m_PhysicalUnit: 3
|
||||
m_FallbackScreenDPI: 96
|
||||
m_DefaultSpriteDPI: 96
|
||||
m_DynamicPixelsPerUnit: 1
|
||||
--- !u!114 &69
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 15}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 4f231c4fb786f3946a6b90b886c48677, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_HorizontalAxis: Horizontal
|
||||
m_VerticalAxis: Vertical
|
||||
m_SubmitButton: Submit
|
||||
m_CancelButton: Cancel
|
||||
m_InputActionsPerSecond: 10
|
||||
m_RepeatDelay: 0.5
|
||||
m_ForceModuleActive: 0
|
||||
--- !u!114 &70
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
|
@ -11180,108 +10987,6 @@ MonoBehaviour:
|
|||
m_EditorClassIdentifier:
|
||||
ScrollSpeed: -0.25
|
||||
TileSizeZ: 30
|
||||
--- !u!1 &8321295
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 8321298}
|
||||
- component: {fileID: 8321297}
|
||||
- component: {fileID: 8321296}
|
||||
m_Layer: 0
|
||||
m_Name: Main Camera
|
||||
m_TagString: MainCamera
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!81 &8321296
|
||||
AudioListener:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8321295}
|
||||
m_Enabled: 1
|
||||
--- !u!20 &8321297
|
||||
Camera:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8321295}
|
||||
m_Enabled: 1
|
||||
serializedVersion: 2
|
||||
m_ClearFlags: 2
|
||||
m_BackGroundColor: {r: 0, g: 0, b: 0, a: 0.043137256}
|
||||
m_projectionMatrixMode: 1
|
||||
m_GateFitMode: 2
|
||||
m_FOVAxisMode: 0
|
||||
m_SensorSize: {x: 36, y: 24}
|
||||
m_LensShift: {x: 0, y: 0}
|
||||
m_FocalLength: 50
|
||||
m_NormalizedViewPortRect:
|
||||
serializedVersion: 2
|
||||
x: 0
|
||||
y: 0
|
||||
width: 1
|
||||
height: 1
|
||||
near clip plane: 0.3
|
||||
far clip plane: 1000
|
||||
field of view: 60
|
||||
orthographic: 1
|
||||
orthographic size: 10
|
||||
m_Depth: 0
|
||||
m_CullingMask:
|
||||
serializedVersion: 2
|
||||
m_Bits: 4294967295
|
||||
m_RenderingPath: -1
|
||||
m_TargetTexture: {fileID: 0}
|
||||
m_TargetDisplay: 0
|
||||
m_TargetEye: 3
|
||||
m_HDR: 1
|
||||
m_AllowMSAA: 1
|
||||
m_AllowDynamicResolution: 0
|
||||
m_ForceIntoRT: 0
|
||||
m_OcclusionCulling: 1
|
||||
m_StereoConvergence: 10
|
||||
m_StereoSeparation: 0.022
|
||||
--- !u!4 &8321298
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8321295}
|
||||
m_LocalRotation: {x: 0.7071068, y: 0, z: 0, w: 0.7071068}
|
||||
m_LocalPosition: {x: 0, y: 10, z: 5}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_Children: []
|
||||
m_Father: {fileID: 0}
|
||||
m_RootOrder: 5
|
||||
m_LocalEulerAnglesHint: {x: 90, y: 0, z: 0}
|
||||
--- !u!1 &1657258425
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 57}
|
||||
- component: {fileID: 55}
|
||||
- component: {fileID: 64}
|
||||
- component: {fileID: 63}
|
||||
m_Layer: 5
|
||||
m_Name: Canvas
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!1 &1691764578
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
|
@ -11324,5 +11029,88 @@ Transform:
|
|||
m_LocalScale: {x: 38.1, y: 7.1, z: 105.4}
|
||||
m_Children: []
|
||||
m_Father: {fileID: 0}
|
||||
m_RootOrder: 8
|
||||
m_RootOrder: 5
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!1 &3992189574601221031
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 3992189574601221050}
|
||||
- component: {fileID: 3992189574601221049}
|
||||
- component: {fileID: 3992189574601221048}
|
||||
m_Layer: 0
|
||||
m_Name: Main Camera
|
||||
m_TagString: MainCamera
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!81 &3992189574601221048
|
||||
AudioListener:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3992189574601221031}
|
||||
m_Enabled: 1
|
||||
--- !u!20 &3992189574601221049
|
||||
Camera:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3992189574601221031}
|
||||
m_Enabled: 1
|
||||
serializedVersion: 2
|
||||
m_ClearFlags: 2
|
||||
m_BackGroundColor: {r: 0, g: 0, b: 0, a: 0.043137256}
|
||||
m_projectionMatrixMode: 1
|
||||
m_GateFitMode: 2
|
||||
m_FOVAxisMode: 0
|
||||
m_SensorSize: {x: 36, y: 24}
|
||||
m_LensShift: {x: 0, y: 0}
|
||||
m_FocalLength: 50
|
||||
m_NormalizedViewPortRect:
|
||||
serializedVersion: 2
|
||||
x: 0
|
||||
y: 0
|
||||
width: 1
|
||||
height: 1
|
||||
near clip plane: 0.3
|
||||
far clip plane: 1000
|
||||
field of view: 60
|
||||
orthographic: 1
|
||||
orthographic size: 10
|
||||
m_Depth: 0
|
||||
m_CullingMask:
|
||||
serializedVersion: 2
|
||||
m_Bits: 4294967295
|
||||
m_RenderingPath: -1
|
||||
m_TargetTexture: {fileID: 0}
|
||||
m_TargetDisplay: 0
|
||||
m_TargetEye: 3
|
||||
m_HDR: 1
|
||||
m_AllowMSAA: 1
|
||||
m_AllowDynamicResolution: 0
|
||||
m_ForceIntoRT: 0
|
||||
m_OcclusionCulling: 1
|
||||
m_StereoConvergence: 10
|
||||
m_StereoSeparation: 0.022
|
||||
--- !u!4 &3992189574601221050
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3992189574601221031}
|
||||
m_LocalRotation: {x: 0.7071068, y: 0, z: 0, w: 0.7071068}
|
||||
m_LocalPosition: {x: 0, y: 10, z: 5}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_Children: []
|
||||
m_Father: {fileID: 0}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 90, y: 0, z: 0}
|
|
@ -38,7 +38,7 @@ RenderSettings:
|
|||
m_ReflectionIntensity: 1
|
||||
m_CustomReflection: {fileID: 0}
|
||||
m_Sun: {fileID: 0}
|
||||
m_IndirectSpecularColor: {r: 0.44657898, g: 0.4964133, b: 0.5748178, a: 1}
|
||||
m_IndirectSpecularColor: {r: 0.37311953, g: 0.38074014, b: 0.3587274, a: 1}
|
||||
m_UseRadianceAmbientProbe: 0
|
||||
--- !u!157 &3
|
||||
LightmapSettings:
|
||||
|
@ -121,388 +121,6 @@ NavMeshSettings:
|
|||
debug:
|
||||
m_Flags: 0
|
||||
m_NavMeshData: {fileID: 0}
|
||||
--- !u!1 &916616400
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 916616404}
|
||||
- component: {fileID: 916616403}
|
||||
- component: {fileID: 916616402}
|
||||
- component: {fileID: 916616401}
|
||||
m_Layer: 5
|
||||
m_Name: Canvas
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!114 &916616401
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 916616400}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_IgnoreReversedGraphics: 1
|
||||
m_BlockingObjects: 0
|
||||
m_BlockingMask:
|
||||
serializedVersion: 2
|
||||
m_Bits: 4294967295
|
||||
--- !u!114 &916616402
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 916616400}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_UiScaleMode: 0
|
||||
m_ReferencePixelsPerUnit: 100
|
||||
m_ScaleFactor: 1
|
||||
m_ReferenceResolution: {x: 800, y: 600}
|
||||
m_ScreenMatchMode: 0
|
||||
m_MatchWidthOrHeight: 0
|
||||
m_PhysicalUnit: 3
|
||||
m_FallbackScreenDPI: 96
|
||||
m_DefaultSpriteDPI: 96
|
||||
m_DynamicPixelsPerUnit: 1
|
||||
--- !u!223 &916616403
|
||||
Canvas:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 916616400}
|
||||
m_Enabled: 1
|
||||
serializedVersion: 3
|
||||
m_RenderMode: 0
|
||||
m_Camera: {fileID: 0}
|
||||
m_PlaneDistance: 100
|
||||
m_PixelPerfect: 0
|
||||
m_ReceivesEvents: 1
|
||||
m_OverrideSorting: 0
|
||||
m_OverridePixelPerfect: 0
|
||||
m_SortingBucketNormalizedSize: 0
|
||||
m_AdditionalShaderChannelsFlag: 0
|
||||
m_SortingLayerID: 0
|
||||
m_SortingOrder: 0
|
||||
m_TargetDisplay: 0
|
||||
--- !u!224 &916616404
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 916616400}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 0, y: 0, z: 0}
|
||||
m_Children:
|
||||
- {fileID: 2129969559}
|
||||
m_Father: {fileID: 0}
|
||||
m_RootOrder: 3
|
||||
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: 0}
|
||||
m_Pivot: {x: 0, y: 0}
|
||||
--- !u!1 &1221815198
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 1221815201}
|
||||
- component: {fileID: 1221815200}
|
||||
- component: {fileID: 1221815199}
|
||||
m_Layer: 0
|
||||
m_Name: EventSystem
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!114 &1221815199
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1221815198}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 4f231c4fb786f3946a6b90b886c48677, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_HorizontalAxis: Horizontal
|
||||
m_VerticalAxis: Vertical
|
||||
m_SubmitButton: Submit
|
||||
m_CancelButton: Cancel
|
||||
m_InputActionsPerSecond: 10
|
||||
m_RepeatDelay: 0.5
|
||||
m_ForceModuleActive: 0
|
||||
--- !u!114 &1221815200
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1221815198}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 76c392e42b5098c458856cdf6ecaaaa1, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_FirstSelected: {fileID: 0}
|
||||
m_sendNavigationEvents: 1
|
||||
m_DragThreshold: 10
|
||||
--- !u!4 &1221815201
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1221815198}
|
||||
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_Children: []
|
||||
m_Father: {fileID: 0}
|
||||
m_RootOrder: 4
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!1 &1334075221
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 1334075223}
|
||||
- component: {fileID: 1334075222}
|
||||
m_Layer: 0
|
||||
m_Name: Directional Light
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!108 &1334075222
|
||||
Light:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1334075221}
|
||||
m_Enabled: 1
|
||||
serializedVersion: 10
|
||||
m_Type: 1
|
||||
m_Shape: 0
|
||||
m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1}
|
||||
m_Intensity: 1
|
||||
m_Range: 10
|
||||
m_SpotAngle: 30
|
||||
m_InnerSpotAngle: 21.80208
|
||||
m_CookieSize: 10
|
||||
m_Shadows:
|
||||
m_Type: 2
|
||||
m_Resolution: -1
|
||||
m_CustomResolution: -1
|
||||
m_Strength: 1
|
||||
m_Bias: 0.05
|
||||
m_NormalBias: 0.4
|
||||
m_NearPlane: 0.2
|
||||
m_CullingMatrixOverride:
|
||||
e00: 1
|
||||
e01: 0
|
||||
e02: 0
|
||||
e03: 0
|
||||
e10: 0
|
||||
e11: 1
|
||||
e12: 0
|
||||
e13: 0
|
||||
e20: 0
|
||||
e21: 0
|
||||
e22: 1
|
||||
e23: 0
|
||||
e30: 0
|
||||
e31: 0
|
||||
e32: 0
|
||||
e33: 1
|
||||
m_UseCullingMatrixOverride: 0
|
||||
m_Cookie: {fileID: 0}
|
||||
m_DrawHalo: 0
|
||||
m_Flare: {fileID: 0}
|
||||
m_RenderMode: 0
|
||||
m_CullingMask:
|
||||
serializedVersion: 2
|
||||
m_Bits: 4294967295
|
||||
m_RenderingLayerMask: 1
|
||||
m_Lightmapping: 4
|
||||
m_LightShadowCasterMode: 0
|
||||
m_AreaSize: {x: 1, y: 1}
|
||||
m_BounceIntensity: 1
|
||||
m_ColorTemperature: 6570
|
||||
m_UseColorTemperature: 0
|
||||
m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_UseBoundingSphereOverride: 0
|
||||
m_ShadowRadius: 0
|
||||
m_ShadowAngle: 0
|
||||
--- !u!4 &1334075223
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1334075221}
|
||||
m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261}
|
||||
m_LocalPosition: {x: 0, y: 3, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_Children: []
|
||||
m_Father: {fileID: 0}
|
||||
m_RootOrder: 2
|
||||
m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0}
|
||||
--- !u!1001 &2129969558
|
||||
PrefabInstance:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 2
|
||||
m_Modification:
|
||||
m_TransformParent: {fileID: 916616404}
|
||||
m_Modifications:
|
||||
- target: {fileID: 4142826567245113224, guid: f33f75c4ce22cf248abf851242ac4363,
|
||||
type: 3}
|
||||
propertyPath: m_Pivot.x
|
||||
value: 0.5
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4142826567245113224, guid: f33f75c4ce22cf248abf851242ac4363,
|
||||
type: 3}
|
||||
propertyPath: m_Pivot.y
|
||||
value: 0.5
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4142826567245113224, guid: f33f75c4ce22cf248abf851242ac4363,
|
||||
type: 3}
|
||||
propertyPath: m_RootOrder
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4142826567245113224, guid: f33f75c4ce22cf248abf851242ac4363,
|
||||
type: 3}
|
||||
propertyPath: m_AnchorMax.x
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4142826567245113224, guid: f33f75c4ce22cf248abf851242ac4363,
|
||||
type: 3}
|
||||
propertyPath: m_AnchorMax.y
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4142826567245113224, guid: f33f75c4ce22cf248abf851242ac4363,
|
||||
type: 3}
|
||||
propertyPath: m_AnchorMin.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4142826567245113224, guid: f33f75c4ce22cf248abf851242ac4363,
|
||||
type: 3}
|
||||
propertyPath: m_AnchorMin.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4142826567245113224, guid: f33f75c4ce22cf248abf851242ac4363,
|
||||
type: 3}
|
||||
propertyPath: m_SizeDelta.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4142826567245113224, guid: f33f75c4ce22cf248abf851242ac4363,
|
||||
type: 3}
|
||||
propertyPath: m_SizeDelta.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4142826567245113224, guid: f33f75c4ce22cf248abf851242ac4363,
|
||||
type: 3}
|
||||
propertyPath: m_LocalPosition.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4142826567245113224, guid: f33f75c4ce22cf248abf851242ac4363,
|
||||
type: 3}
|
||||
propertyPath: m_LocalPosition.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4142826567245113224, guid: f33f75c4ce22cf248abf851242ac4363,
|
||||
type: 3}
|
||||
propertyPath: m_LocalPosition.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4142826567245113224, guid: f33f75c4ce22cf248abf851242ac4363,
|
||||
type: 3}
|
||||
propertyPath: m_LocalRotation.w
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4142826567245113224, guid: f33f75c4ce22cf248abf851242ac4363,
|
||||
type: 3}
|
||||
propertyPath: m_LocalRotation.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4142826567245113224, guid: f33f75c4ce22cf248abf851242ac4363,
|
||||
type: 3}
|
||||
propertyPath: m_LocalRotation.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4142826567245113224, guid: f33f75c4ce22cf248abf851242ac4363,
|
||||
type: 3}
|
||||
propertyPath: m_LocalRotation.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4142826567245113224, guid: f33f75c4ce22cf248abf851242ac4363,
|
||||
type: 3}
|
||||
propertyPath: m_AnchoredPosition.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4142826567245113224, guid: f33f75c4ce22cf248abf851242ac4363,
|
||||
type: 3}
|
||||
propertyPath: m_AnchoredPosition.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4142826567245113224, guid: f33f75c4ce22cf248abf851242ac4363,
|
||||
type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4142826567245113224, guid: f33f75c4ce22cf248abf851242ac4363,
|
||||
type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4142826567245113224, guid: f33f75c4ce22cf248abf851242ac4363,
|
||||
type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4142826567245113227, guid: f33f75c4ce22cf248abf851242ac4363,
|
||||
type: 3}
|
||||
propertyPath: m_Name
|
||||
value: UILogin
|
||||
objectReference: {fileID: 0}
|
||||
m_RemovedComponents: []
|
||||
m_SourcePrefab: {fileID: 100100000, guid: f33f75c4ce22cf248abf851242ac4363, type: 3}
|
||||
--- !u!224 &2129969559 stripped
|
||||
RectTransform:
|
||||
m_CorrespondingSourceObject: {fileID: 4142826567245113224, guid: f33f75c4ce22cf248abf851242ac4363,
|
||||
type: 3}
|
||||
m_PrefabInstance: {fileID: 2129969558}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
--- !u!4 &3517166543428106988
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
|
|
|
@ -0,0 +1,350 @@
|
|||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &4099142336341904240
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 7126978470340264304}
|
||||
- component: {fileID: 3359586880618602463}
|
||||
- component: {fileID: 8175961594734719007}
|
||||
m_Layer: 5
|
||||
m_Name: info
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &7126978470340264304
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4099142336341904240}
|
||||
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_Children: []
|
||||
m_Father: {fileID: 3997691783514560453}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 1, y: 1}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 0, y: 0}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &3359586880618602463
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4099142336341904240}
|
||||
m_CullTransparentMesh: 0
|
||||
--- !u!114 &8175961594734719007
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4099142336341904240}
|
||||
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: 0
|
||||
m_Maskable: 1
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_FontData:
|
||||
m_Font: {fileID: 12800000, guid: 8297a2bf97dbbba468bd2518d003a876, type: 3}
|
||||
m_FontSize: 28
|
||||
m_FontStyle: 0
|
||||
m_BestFit: 0
|
||||
m_MinSize: 2
|
||||
m_MaxSize: 40
|
||||
m_Alignment: 4
|
||||
m_AlignByGeometry: 0
|
||||
m_RichText: 1
|
||||
m_HorizontalOverflow: 0
|
||||
m_VerticalOverflow: 0
|
||||
m_LineSpacing: 1
|
||||
m_Text: Powered by YooAsset
|
||||
--- !u!1 &4142826567245113227
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 4142826567245113224}
|
||||
- component: {fileID: 4142826567245113225}
|
||||
- component: {fileID: 446002385128238495}
|
||||
m_Layer: 5
|
||||
m_Name: UIAbout
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &4142826567245113224
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4142826567245113227}
|
||||
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_Children:
|
||||
- {fileID: 5343213182511549108}
|
||||
- {fileID: 3997691783514560453}
|
||||
m_Father: {fileID: 0}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 1, y: 1}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 0, y: 0}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!223 &4142826567245113225
|
||||
Canvas:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4142826567245113227}
|
||||
m_Enabled: 1
|
||||
serializedVersion: 3
|
||||
m_RenderMode: 2
|
||||
m_Camera: {fileID: 0}
|
||||
m_PlaneDistance: 100
|
||||
m_PixelPerfect: 0
|
||||
m_ReceivesEvents: 1
|
||||
m_OverrideSorting: 1
|
||||
m_OverridePixelPerfect: 0
|
||||
m_SortingBucketNormalizedSize: 0
|
||||
m_AdditionalShaderChannelsFlag: 0
|
||||
m_SortingLayerID: 0
|
||||
m_SortingOrder: 0
|
||||
m_TargetDisplay: 0
|
||||
--- !u!114 &446002385128238495
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4142826567245113227}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_IgnoreReversedGraphics: 1
|
||||
m_BlockingObjects: 0
|
||||
m_BlockingMask:
|
||||
serializedVersion: 2
|
||||
m_Bits: 4294967295
|
||||
--- !u!1 &6154978740135451069
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 5343213182511549108}
|
||||
- component: {fileID: 8369344421515876960}
|
||||
- component: {fileID: 7080476478489546113}
|
||||
- component: {fileID: 8806219243094360206}
|
||||
m_Layer: 5
|
||||
m_Name: mask
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &5343213182511549108
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6154978740135451069}
|
||||
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_Children: []
|
||||
m_Father: {fileID: 4142826567245113224}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 1, y: 1}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 0, y: 0}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &8369344421515876960
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6154978740135451069}
|
||||
m_CullTransparentMesh: 0
|
||||
--- !u!114 &7080476478489546113
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6154978740135451069}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 0, g: 0, b: 0, a: 1}
|
||||
m_RaycastTarget: 1
|
||||
m_Maskable: 1
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_Type: 1
|
||||
m_PreserveAspect: 0
|
||||
m_FillCenter: 1
|
||||
m_FillMethod: 4
|
||||
m_FillAmount: 1
|
||||
m_FillClockwise: 1
|
||||
m_FillOrigin: 0
|
||||
m_UseSpriteMesh: 0
|
||||
m_PixelsPerUnitMultiplier: 1
|
||||
--- !u!114 &8806219243094360206
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6154978740135451069}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Navigation:
|
||||
m_Mode: 3
|
||||
m_SelectOnUp: {fileID: 0}
|
||||
m_SelectOnDown: {fileID: 0}
|
||||
m_SelectOnLeft: {fileID: 0}
|
||||
m_SelectOnRight: {fileID: 0}
|
||||
m_Transition: 0
|
||||
m_Colors:
|
||||
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
|
||||
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
|
||||
m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
|
||||
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
|
||||
m_ColorMultiplier: 1
|
||||
m_FadeDuration: 0.1
|
||||
m_SpriteState:
|
||||
m_HighlightedSprite: {fileID: 0}
|
||||
m_PressedSprite: {fileID: 0}
|
||||
m_SelectedSprite: {fileID: 0}
|
||||
m_DisabledSprite: {fileID: 0}
|
||||
m_AnimationTriggers:
|
||||
m_NormalTrigger: Normal
|
||||
m_HighlightedTrigger: Highlighted
|
||||
m_PressedTrigger: Pressed
|
||||
m_SelectedTrigger: Selected
|
||||
m_DisabledTrigger: Disabled
|
||||
m_Interactable: 1
|
||||
m_TargetGraphic: {fileID: 7080476478489546113}
|
||||
m_OnClick:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
--- !u!1 &8989319042809547364
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 3997691783514560453}
|
||||
- component: {fileID: 7677845000641202694}
|
||||
- component: {fileID: 4438684259955260312}
|
||||
m_Layer: 5
|
||||
m_Name: bg
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &3997691783514560453
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8989319042809547364}
|
||||
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_Children:
|
||||
- {fileID: 7126978470340264304}
|
||||
m_Father: {fileID: 4142826567245113224}
|
||||
m_RootOrder: 1
|
||||
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: 0, y: 0}
|
||||
m_SizeDelta: {x: 520, y: 286.62195}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &7677845000641202694
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8989319042809547364}
|
||||
m_CullTransparentMesh: 0
|
||||
--- !u!114 &4438684259955260312
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8989319042809547364}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_RaycastTarget: 1
|
||||
m_Maskable: 1
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_Sprite: {fileID: 21300000, guid: 06edc4e02f9c48647adfed0a778cb8aa, type: 3}
|
||||
m_Type: 0
|
||||
m_PreserveAspect: 0
|
||||
m_FillCenter: 1
|
||||
m_FillMethod: 4
|
||||
m_FillAmount: 1
|
||||
m_FillClockwise: 1
|
||||
m_FillOrigin: 0
|
||||
m_UseSpriteMesh: 0
|
||||
m_PixelsPerUnitMultiplier: 1
|
|
@ -0,0 +1,7 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 2e0f217747ebd544c82e9ddd1b47525e
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -36,7 +36,7 @@ RectTransform:
|
|||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 1, y: 1}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 620, y: 924}
|
||||
m_SizeDelta: {x: 0, y: 0}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &1168652661830625159
|
||||
CanvasRenderer:
|
||||
|
@ -206,10 +206,10 @@ RectTransform:
|
|||
m_Father: {fileID: 4142826567245113224}
|
||||
m_RootOrder: 2
|
||||
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_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 1, y: 1}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 100, y: 100}
|
||||
m_SizeDelta: {x: 0, y: 0}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!1 &3580699901832812969
|
||||
GameObject:
|
||||
|
@ -341,7 +341,6 @@ GameObject:
|
|||
- component: {fileID: 4142826567245113224}
|
||||
- component: {fileID: 4142826567245113225}
|
||||
- component: {fileID: 446002385128238495}
|
||||
- component: {fileID: 3910061912146487027}
|
||||
m_Layer: 5
|
||||
m_Name: UIBattle
|
||||
m_TagString: Untagged
|
||||
|
@ -409,18 +408,6 @@ MonoBehaviour:
|
|||
m_BlockingMask:
|
||||
serializedVersion: 2
|
||||
m_Bits: 4294967295
|
||||
--- !u!114 &3910061912146487027
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4142826567245113227}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 9776c197a7f86e94c9484946495616bb, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
--- !u!1 &5051316305113654670
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
|
|
|
@ -0,0 +1,203 @@
|
|||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &1457738500883128975
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 1457738500883128971}
|
||||
- component: {fileID: 1457738500883128972}
|
||||
- component: {fileID: 1457738500883128973}
|
||||
- component: {fileID: 1457738500883128974}
|
||||
m_Layer: 5
|
||||
m_Name: UICanvas
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &1457738500883128971
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1457738500883128975}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 0, y: 0, z: 0}
|
||||
m_Children:
|
||||
- {fileID: 4471021202605196124}
|
||||
- {fileID: 3071470527211293446}
|
||||
m_Father: {fileID: 0}
|
||||
m_RootOrder: 0
|
||||
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: 0}
|
||||
m_Pivot: {x: 0, y: 0}
|
||||
--- !u!223 &1457738500883128972
|
||||
Canvas:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1457738500883128975}
|
||||
m_Enabled: 1
|
||||
serializedVersion: 3
|
||||
m_RenderMode: 0
|
||||
m_Camera: {fileID: 0}
|
||||
m_PlaneDistance: 100
|
||||
m_PixelPerfect: 0
|
||||
m_ReceivesEvents: 1
|
||||
m_OverrideSorting: 0
|
||||
m_OverridePixelPerfect: 0
|
||||
m_SortingBucketNormalizedSize: 0
|
||||
m_AdditionalShaderChannelsFlag: 0
|
||||
m_SortingLayerID: 0
|
||||
m_SortingOrder: 0
|
||||
m_TargetDisplay: 0
|
||||
--- !u!114 &1457738500883128973
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1457738500883128975}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_UiScaleMode: 0
|
||||
m_ReferencePixelsPerUnit: 100
|
||||
m_ScaleFactor: 1
|
||||
m_ReferenceResolution: {x: 800, y: 600}
|
||||
m_ScreenMatchMode: 0
|
||||
m_MatchWidthOrHeight: 0
|
||||
m_PhysicalUnit: 3
|
||||
m_FallbackScreenDPI: 96
|
||||
m_DefaultSpriteDPI: 96
|
||||
m_DynamicPixelsPerUnit: 1
|
||||
--- !u!114 &1457738500883128974
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1457738500883128975}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_IgnoreReversedGraphics: 1
|
||||
m_BlockingObjects: 0
|
||||
m_BlockingMask:
|
||||
serializedVersion: 2
|
||||
m_Bits: 4294967295
|
||||
--- !u!1 &3071470527211293447
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 3071470527211293446}
|
||||
m_Layer: 5
|
||||
m_Name: Desktop
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &3071470527211293446
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3071470527211293447}
|
||||
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_Children: []
|
||||
m_Father: {fileID: 1457738500883128971}
|
||||
m_RootOrder: 1
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 1, y: 1}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 0, y: 0}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!1 &4471021202605196131
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 4471021202605196124}
|
||||
- component: {fileID: 4471021202605196125}
|
||||
- component: {fileID: 4471021202605196130}
|
||||
m_Layer: 0
|
||||
m_Name: EventSystem
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &4471021202605196124
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4471021202605196131}
|
||||
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_Children: []
|
||||
m_Father: {fileID: 1457738500883128971}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!114 &4471021202605196125
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4471021202605196131}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 76c392e42b5098c458856cdf6ecaaaa1, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_FirstSelected: {fileID: 0}
|
||||
m_sendNavigationEvents: 1
|
||||
m_DragThreshold: 10
|
||||
--- !u!114 &4471021202605196130
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4471021202605196131}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 4f231c4fb786f3946a6b90b886c48677, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_HorizontalAxis: Horizontal
|
||||
m_VerticalAxis: Vertical
|
||||
m_SubmitButton: Submit
|
||||
m_CancelButton: Cancel
|
||||
m_InputActionsPerSecond: 10
|
||||
m_RepeatDelay: 0.5
|
||||
m_ForceModuleActive: 0
|
|
@ -0,0 +1,7 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 1700631a871f2da418ca3815faed9394
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -130,9 +130,8 @@ GameObject:
|
|||
- component: {fileID: 4142826567245113224}
|
||||
- component: {fileID: 4142826567245113225}
|
||||
- component: {fileID: 446002385128238495}
|
||||
- component: {fileID: -4265997780860394554}
|
||||
m_Layer: 5
|
||||
m_Name: UILogin
|
||||
m_Name: UIHome
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
|
@ -197,18 +196,6 @@ MonoBehaviour:
|
|||
m_BlockingMask:
|
||||
serializedVersion: 2
|
||||
m_Bits: 4294967295
|
||||
--- !u!114 &-4265997780860394554
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4142826567245113227}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 4792d7c57be85c845bc50d7215160853, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
--- !u!1 &4691699994207377690
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
|
@ -222,7 +209,7 @@ GameObject:
|
|||
- component: {fileID: 1411896437987713300}
|
||||
- component: {fileID: 6457600995492259680}
|
||||
m_Layer: 5
|
||||
m_Name: Setting
|
||||
m_Name: About
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
|
@ -483,4 +470,4 @@ MonoBehaviour:
|
|||
m_HorizontalOverflow: 0
|
||||
m_VerticalOverflow: 0
|
||||
m_LineSpacing: 1
|
||||
m_Text: Setting
|
||||
m_Text: About
|
|
@ -0,0 +1,231 @@
|
|||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &213995007158037226
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 2380612195453094903}
|
||||
- component: {fileID: 95677582635961211}
|
||||
- component: {fileID: 5262699309239441798}
|
||||
m_Layer: 5
|
||||
m_Name: bg
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &2380612195453094903
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 213995007158037226}
|
||||
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_Children: []
|
||||
m_Father: {fileID: 4142826567245113224}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 1, y: 1}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 0, y: 0}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &95677582635961211
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 213995007158037226}
|
||||
m_CullTransparentMesh: 0
|
||||
--- !u!114 &5262699309239441798
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 213995007158037226}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_RaycastTarget: 1
|
||||
m_Maskable: 1
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_Sprite: {fileID: 21300000, guid: b76b8b216adf64f4bbdb78f7977f0310, type: 3}
|
||||
m_Type: 0
|
||||
m_PreserveAspect: 0
|
||||
m_FillCenter: 1
|
||||
m_FillMethod: 4
|
||||
m_FillAmount: 1
|
||||
m_FillClockwise: 1
|
||||
m_FillOrigin: 0
|
||||
m_UseSpriteMesh: 0
|
||||
m_PixelsPerUnitMultiplier: 1
|
||||
--- !u!1 &867898397607806311
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 6184545274827739511}
|
||||
- component: {fileID: 6671564359713877752}
|
||||
- component: {fileID: 5054946357839069556}
|
||||
m_Layer: 5
|
||||
m_Name: info
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &6184545274827739511
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 867898397607806311}
|
||||
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_Children: []
|
||||
m_Father: {fileID: 4142826567245113224}
|
||||
m_RootOrder: 1
|
||||
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: 113.6, y: 0}
|
||||
m_SizeDelta: {x: 372.8026, y: 60}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &6671564359713877752
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 867898397607806311}
|
||||
m_CullTransparentMesh: 0
|
||||
--- !u!114 &5054946357839069556
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 867898397607806311}
|
||||
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_Maskable: 1
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_FontData:
|
||||
m_Font: {fileID: 12800000, guid: 8297a2bf97dbbba468bd2518d003a876, type: 3}
|
||||
m_FontSize: 36
|
||||
m_FontStyle: 0
|
||||
m_BestFit: 0
|
||||
m_MinSize: 3
|
||||
m_MaxSize: 40
|
||||
m_Alignment: 3
|
||||
m_AlignByGeometry: 0
|
||||
m_RichText: 1
|
||||
m_HorizontalOverflow: 0
|
||||
m_VerticalOverflow: 0
|
||||
m_LineSpacing: 1
|
||||
m_Text: Loading...
|
||||
--- !u!1 &4142826567245113227
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 4142826567245113224}
|
||||
- component: {fileID: 4142826567245113225}
|
||||
- component: {fileID: 446002385128238495}
|
||||
m_Layer: 5
|
||||
m_Name: UILoading
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &4142826567245113224
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4142826567245113227}
|
||||
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_Children:
|
||||
- {fileID: 2380612195453094903}
|
||||
- {fileID: 6184545274827739511}
|
||||
m_Father: {fileID: 0}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 1, y: 1}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 0, y: 0}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!223 &4142826567245113225
|
||||
Canvas:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4142826567245113227}
|
||||
m_Enabled: 1
|
||||
serializedVersion: 3
|
||||
m_RenderMode: 2
|
||||
m_Camera: {fileID: 0}
|
||||
m_PlaneDistance: 100
|
||||
m_PixelPerfect: 0
|
||||
m_ReceivesEvents: 1
|
||||
m_OverrideSorting: 1
|
||||
m_OverridePixelPerfect: 0
|
||||
m_SortingBucketNormalizedSize: 0
|
||||
m_AdditionalShaderChannelsFlag: 0
|
||||
m_SortingLayerID: 0
|
||||
m_SortingOrder: 0
|
||||
m_TargetDisplay: 0
|
||||
--- !u!114 &446002385128238495
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4142826567245113227}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_IgnoreReversedGraphics: 1
|
||||
m_BlockingObjects: 0
|
||||
m_BlockingMask:
|
||||
serializedVersion: 2
|
||||
m_Bits: 4294967295
|
|
@ -0,0 +1,7 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 79ae622f4c23c47449fc3ea70abaca51
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -46,7 +46,7 @@ TextureImporter:
|
|||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteBorder: {x: 142, y: 145, z: 148, w: 165}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 1
|
||||
|
|
|
@ -46,7 +46,7 @@ TextureImporter:
|
|||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteBorder: {x: 157, y: 139, z: 154, w: 157}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 1
|
||||
|
|
|
@ -1,15 +0,0 @@
|
|||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
public class BattleEventDefine
|
||||
{
|
||||
public class ScoreChange : IEventMessage
|
||||
{
|
||||
public int CurrentScores;
|
||||
}
|
||||
|
||||
public class GameOver : IEventMessage
|
||||
{
|
||||
}
|
||||
}
|
|
@ -1,19 +0,0 @@
|
|||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
public static class BattleEventDispatcher
|
||||
{
|
||||
public static void SendScoreChangeMsg(int currentScores)
|
||||
{
|
||||
BattleEventDefine.ScoreChange msg = new BattleEventDefine.ScoreChange();
|
||||
msg.CurrentScores = currentScores;
|
||||
EventManager.SendMessage(msg);
|
||||
}
|
||||
|
||||
public static void SendGameOverMsg()
|
||||
{
|
||||
BattleEventDefine.GameOver msg = new BattleEventDefine.GameOver();
|
||||
EventManager.SendMessage(msg);
|
||||
}
|
||||
}
|
|
@ -1,110 +0,0 @@
|
|||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System;
|
||||
using UnityEngine;
|
||||
using YooAsset;
|
||||
using Random = UnityEngine.Random;
|
||||
|
||||
[Serializable]
|
||||
public class RoomBoundary
|
||||
{
|
||||
public float xMin, xMax, zMin, zMax;
|
||||
}
|
||||
|
||||
public class BattleRoom : MonoBehaviour
|
||||
{
|
||||
public static BattleRoom Instance;
|
||||
|
||||
public Vector3 SpawnValues;
|
||||
public int EnemyCount = 10;
|
||||
public float SpawnWait = 0.75f;
|
||||
public float StartWait = 1f;
|
||||
public float WaveWait = 4f;
|
||||
|
||||
private int _totalScore = 0;
|
||||
private bool _gameOver = false;
|
||||
private string[] _enemyLocations = new string[]
|
||||
{
|
||||
"asteroid01", "asteroid02", "asteroid03", "enemy_ship"
|
||||
};
|
||||
|
||||
private AssetOperationHandle _panelHandle;
|
||||
|
||||
void Awake()
|
||||
{
|
||||
Instance = this;
|
||||
|
||||
var canvas = GameObject.Find("Canvas");
|
||||
_panelHandle = YooAssets.LoadAssetSync<GameObject>("UIBattle");
|
||||
var go = _panelHandle.InstantiateSync(canvas.transform);
|
||||
go.transform.localPosition = Vector3.zero;
|
||||
}
|
||||
void Start()
|
||||
{
|
||||
var handle = YooAssets.LoadAssetSync<GameObject>("player_ship");
|
||||
var go = handle.InstantiateSync();
|
||||
var bhv = go.GetComponent<EntityPlayer>();
|
||||
bhv.InitEntity(handle);
|
||||
|
||||
StartCoroutine(SpawnWaves());
|
||||
}
|
||||
void OnDestroy()
|
||||
{
|
||||
Instance = null;
|
||||
|
||||
if(_panelHandle != null)
|
||||
{
|
||||
_panelHandle.Release();
|
||||
_panelHandle = null;
|
||||
}
|
||||
}
|
||||
|
||||
IEnumerator SpawnWaves()
|
||||
{
|
||||
yield return new WaitForSeconds(StartWait);
|
||||
while (true)
|
||||
{
|
||||
for (int i = 0; i < EnemyCount; i++)
|
||||
{
|
||||
var enemyLocation= _enemyLocations[Random.Range(0, 4)];
|
||||
Vector3 spawnPosition = new Vector3(Random.Range(-SpawnValues.x, SpawnValues.x), SpawnValues.y, SpawnValues.z);
|
||||
Quaternion spawnRotation = Quaternion.identity;
|
||||
|
||||
if(enemyLocation == "enemy_ship")
|
||||
{
|
||||
var handle = YooAssets.LoadAssetSync<GameObject>(enemyLocation);
|
||||
var go = handle.InstantiateSync(spawnPosition, spawnRotation);
|
||||
var bhv = go.GetComponent<EntityEnemy>();
|
||||
bhv.InitEntity(handle);
|
||||
}
|
||||
else
|
||||
{
|
||||
var handle = YooAssets.LoadAssetSync<GameObject>(enemyLocation);
|
||||
var go = handle.InstantiateSync(spawnPosition, spawnRotation);
|
||||
var bhv = go.GetComponent<EntityAsteroid>();
|
||||
bhv.InitEntity(handle);
|
||||
}
|
||||
|
||||
yield return new WaitForSeconds(SpawnWait);
|
||||
}
|
||||
yield return new WaitForSeconds(WaveWait);
|
||||
|
||||
if (_gameOver)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void GameOver()
|
||||
{
|
||||
_gameOver = true;
|
||||
BattleEventDispatcher.SendGameOverMsg();
|
||||
}
|
||||
|
||||
public void AddScore(int score)
|
||||
{
|
||||
_totalScore += score;
|
||||
BattleEventDispatcher.SendScoreChangeMsg(_totalScore);
|
||||
}
|
||||
}
|
|
@ -1,52 +0,0 @@
|
|||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using YooAsset;
|
||||
|
||||
public class EntityAsteroid : MonoBehaviour
|
||||
{
|
||||
private AssetOperationHandle _ownerHandle;
|
||||
|
||||
public float MoveSpeed = -5f;
|
||||
public float Tumble = 5f;
|
||||
|
||||
public void InitEntity(AssetOperationHandle ownerHandle)
|
||||
{
|
||||
_ownerHandle = ownerHandle;
|
||||
}
|
||||
|
||||
void Awake()
|
||||
{
|
||||
var rigidBody = this.transform.GetComponent<Rigidbody>();
|
||||
rigidBody.velocity = this.transform.forward * MoveSpeed;
|
||||
rigidBody.angularVelocity = Random.insideUnitSphere * Tumble;
|
||||
}
|
||||
void OnDestroy()
|
||||
{
|
||||
if (_ownerHandle != null)
|
||||
{
|
||||
_ownerHandle.Release();
|
||||
_ownerHandle = null;
|
||||
}
|
||||
}
|
||||
void OnTriggerEnter(Collider other)
|
||||
{
|
||||
if (other.CompareTag("PlayerBullet"))
|
||||
{
|
||||
var handle = YooAssets.LoadAssetSync<GameObject>("explosion_asteroid");
|
||||
var go = handle.InstantiateSync(other.transform.position, Quaternion.identity);
|
||||
var bhv = go.GetComponent<EntityEffect>();
|
||||
bhv.InitEntity(handle);
|
||||
|
||||
BattleRoom.Instance.AddScore(1);
|
||||
GameObject.Destroy(this.gameObject);
|
||||
}
|
||||
}
|
||||
void OnTriggerExit(Collider other)
|
||||
{
|
||||
if (other.CompareTag("Boundary"))
|
||||
{
|
||||
GameObject.Destroy(this.gameObject);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,34 +0,0 @@
|
|||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using YooAsset;
|
||||
|
||||
public class EntityEffect : MonoBehaviour
|
||||
{
|
||||
private AssetOperationHandle _ownerHandle;
|
||||
|
||||
public float DelayDestroyTime = 1f;
|
||||
|
||||
public void InitEntity(AssetOperationHandle ownerHandle)
|
||||
{
|
||||
_ownerHandle = ownerHandle;
|
||||
}
|
||||
|
||||
void Awake()
|
||||
{
|
||||
Invoke(nameof(DelayDestroy), DelayDestroyTime);
|
||||
}
|
||||
void OnDestroy()
|
||||
{
|
||||
if (_ownerHandle != null)
|
||||
{
|
||||
_ownerHandle.Release();
|
||||
_ownerHandle = null;
|
||||
}
|
||||
}
|
||||
|
||||
private void DelayDestroy()
|
||||
{
|
||||
GameObject.Destroy(this.gameObject);
|
||||
}
|
||||
}
|
|
@ -1,5 +1,5 @@
|
|||
fileFormatVersion: 2
|
||||
guid: cb1f2313c4b23304f9257ac58c1024f8
|
||||
guid: e2f6bcc746b3d984e81caafa7d25467b
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
|
@ -1,7 +1,7 @@
|
|||
using System;
|
||||
using UnityEngine;
|
||||
|
||||
public class BackgroundScroller : MonoBehaviour
|
||||
public class BhvBackgroundScroller : MonoBehaviour
|
||||
{
|
||||
public float ScrollSpeed;
|
||||
public float TileSizeZ;
|
|
@ -0,0 +1,39 @@
|
|||
using UnityEngine;
|
||||
using UniFramework.Event;
|
||||
using UniFramework.Module;
|
||||
using YooAsset;
|
||||
|
||||
public class Boot : MonoBehaviour
|
||||
{
|
||||
/// <summary>
|
||||
/// 资源系统运行模式
|
||||
/// </summary>
|
||||
public EPlayMode PlayMode = EPlayMode.EditorSimulateMode;
|
||||
|
||||
void Awake()
|
||||
{
|
||||
Debug.Log($"资源系统运行模式:{PlayMode}");
|
||||
Application.targetFrameRate = 60;
|
||||
Application.runInBackground = true;
|
||||
}
|
||||
void Start()
|
||||
{
|
||||
// 初始化BetterStreaming
|
||||
BetterStreamingAssets.Initialize();
|
||||
|
||||
// 初始化事件系统
|
||||
UniEvent.Initalize();
|
||||
|
||||
// 初始化管理系统
|
||||
UniModule.Initialize();
|
||||
|
||||
// 初始化资源系统
|
||||
YooAssets.Initialize();
|
||||
|
||||
// 创建补丁管理器
|
||||
UniModule.CreateModule<PatchManager>();
|
||||
|
||||
// 开始补丁更新流程
|
||||
PatchManager.Instance.Run(PlayMode);
|
||||
}
|
||||
}
|
|
@ -1,5 +1,5 @@
|
|||
fileFormatVersion: 2
|
||||
guid: c64420b3b1ae37943b4565f458c10b7d
|
||||
guid: 8428e7a0bb96bf946aa3034281990090
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
|
@ -0,0 +1,119 @@
|
|||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using UniFramework.Event;
|
||||
|
||||
public class BattleEventDefine
|
||||
{
|
||||
/// <summary>
|
||||
/// 分数改变
|
||||
/// </summary>
|
||||
public class ScoreChange : IEventMessage
|
||||
{
|
||||
public int CurrentScores;
|
||||
|
||||
public static void SendEventMessage(int currentScores)
|
||||
{
|
||||
var msg = new ScoreChange();
|
||||
msg.CurrentScores = currentScores;
|
||||
UniEvent.SendMessage(msg);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 游戏结束
|
||||
/// </summary>
|
||||
public class GameOver : IEventMessage
|
||||
{
|
||||
public static void SendEventMessage()
|
||||
{
|
||||
var msg = new GameOver();
|
||||
UniEvent.SendMessage(msg);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 敌人死亡
|
||||
/// </summary>
|
||||
public class EnemyDead : IEventMessage
|
||||
{
|
||||
public Vector3 Position;
|
||||
public Quaternion Rotation;
|
||||
|
||||
public static void SendEventMessage(Vector3 position, Quaternion rotation)
|
||||
{
|
||||
var msg = new EnemyDead();
|
||||
msg.Position = position;
|
||||
msg.Rotation = rotation;
|
||||
UniEvent.SendMessage(msg);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 玩家死亡
|
||||
/// </summary>
|
||||
public class PlayerDead : IEventMessage
|
||||
{
|
||||
public Vector3 Position;
|
||||
public Quaternion Rotation;
|
||||
|
||||
public static void SendEventMessage(Vector3 position, Quaternion rotation)
|
||||
{
|
||||
var msg = new PlayerDead();
|
||||
msg.Position = position;
|
||||
msg.Rotation = rotation;
|
||||
UniEvent.SendMessage(msg);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 小行星爆炸
|
||||
/// </summary>
|
||||
public class AsteroidExplosion : IEventMessage
|
||||
{
|
||||
public Vector3 Position;
|
||||
public Quaternion Rotation;
|
||||
|
||||
public static void SendEventMessage(Vector3 position, Quaternion rotation)
|
||||
{
|
||||
var msg = new AsteroidExplosion();
|
||||
msg.Position = position;
|
||||
msg.Rotation = rotation;
|
||||
UniEvent.SendMessage(msg);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 敌人发射子弹
|
||||
/// </summary>
|
||||
public class EnemyFireBullet : IEventMessage
|
||||
{
|
||||
public Vector3 Position;
|
||||
public Quaternion Rotation;
|
||||
|
||||
public static void SendEventMessage(Vector3 position, Quaternion rotation)
|
||||
{
|
||||
var msg = new EnemyFireBullet();
|
||||
msg.Position = position;
|
||||
msg.Rotation = rotation;
|
||||
UniEvent.SendMessage(msg);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 玩家发射子弹
|
||||
/// </summary>
|
||||
public class PlayerFireBullet : IEventMessage
|
||||
{
|
||||
public Vector3 Position;
|
||||
public Quaternion Rotation;
|
||||
|
||||
public static void SendEventMessage(Vector3 position, Quaternion rotation)
|
||||
{
|
||||
var msg = new PlayerFireBullet();
|
||||
msg.Position = position;
|
||||
msg.Rotation = rotation;
|
||||
UniEvent.SendMessage(msg);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,98 @@
|
|||
using UniFramework.Event;
|
||||
|
||||
public class PatchEventDefine
|
||||
{
|
||||
/// <summary>
|
||||
/// 补丁流程步骤改变
|
||||
/// </summary>
|
||||
public class PatchStatesChange : IEventMessage
|
||||
{
|
||||
public string Tips;
|
||||
|
||||
public static void SendEventMessage(string tips)
|
||||
{
|
||||
var msg = new PatchStatesChange();
|
||||
msg.Tips = tips;
|
||||
UniEvent.SendMessage(msg);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 发现更新文件
|
||||
/// </summary>
|
||||
public class FoundUpdateFiles : IEventMessage
|
||||
{
|
||||
public int TotalCount;
|
||||
public long TotalSizeBytes;
|
||||
|
||||
public static void SendEventMessage(int totalCount, long totalSizeBytes)
|
||||
{
|
||||
var msg = new FoundUpdateFiles();
|
||||
msg.TotalCount = totalCount;
|
||||
msg.TotalSizeBytes = totalSizeBytes;
|
||||
UniEvent.SendMessage(msg);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 下载进度更新
|
||||
/// </summary>
|
||||
public class DownloadProgressUpdate : IEventMessage
|
||||
{
|
||||
public int TotalDownloadCount;
|
||||
public int CurrentDownloadCount;
|
||||
public long TotalDownloadSizeBytes;
|
||||
public long CurrentDownloadSizeBytes;
|
||||
|
||||
public static void SendEventMessage(int totalDownloadCount, int currentDownloadCount, long totalDownloadSizeBytes, long currentDownloadSizeBytes)
|
||||
{
|
||||
var msg = new DownloadProgressUpdate();
|
||||
msg.TotalDownloadCount = totalDownloadCount;
|
||||
msg.CurrentDownloadCount = currentDownloadCount;
|
||||
msg.TotalDownloadSizeBytes = totalDownloadSizeBytes;
|
||||
msg.CurrentDownloadSizeBytes = currentDownloadSizeBytes;
|
||||
UniEvent.SendMessage(msg);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 资源版本号更新失败
|
||||
/// </summary>
|
||||
public class PackageVersionUpdateFailed : IEventMessage
|
||||
{
|
||||
public static void SendEventMessage()
|
||||
{
|
||||
var msg = new PackageVersionUpdateFailed();
|
||||
UniEvent.SendMessage(msg);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 补丁清单更新失败
|
||||
/// </summary>
|
||||
public class PatchManifestUpdateFailed : IEventMessage
|
||||
{
|
||||
public static void SendEventMessage()
|
||||
{
|
||||
var msg = new PatchManifestUpdateFailed();
|
||||
UniEvent.SendMessage(msg);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 网络文件下载失败
|
||||
/// </summary>
|
||||
public class WebFileDownloadFailed : IEventMessage
|
||||
{
|
||||
public string FileName;
|
||||
public string Error;
|
||||
|
||||
public static void SendEventMessage(string fileName, string error)
|
||||
{
|
||||
var msg = new WebFileDownloadFailed();
|
||||
msg.FileName = fileName;
|
||||
msg.Error = error;
|
||||
UniEvent.SendMessage(msg);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,22 @@
|
|||
using UniFramework.Event;
|
||||
|
||||
public class SceneEventDefine
|
||||
{
|
||||
public class ChangeToHomeScene : IEventMessage
|
||||
{
|
||||
public static void SendEventMessage()
|
||||
{
|
||||
var msg = new ChangeToHomeScene();
|
||||
UniEvent.SendMessage(msg);
|
||||
}
|
||||
}
|
||||
|
||||
public class ChangeToBattleScene : IEventMessage
|
||||
{
|
||||
public static void SendEventMessage()
|
||||
{
|
||||
var msg = new ChangeToBattleScene();
|
||||
UniEvent.SendMessage(msg);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,5 +1,5 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 5915c7b5006a8384dbefdf32da34a3e6
|
||||
guid: c56a83939686d3a4aa76b7d4ec704889
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
|
@ -0,0 +1,52 @@
|
|||
using UniFramework.Event;
|
||||
|
||||
public class UserEventDefine
|
||||
{
|
||||
/// <summary>
|
||||
/// 用户开始下载网络文件
|
||||
/// </summary>
|
||||
public class UserBeginDownloadWebFiles : IEventMessage
|
||||
{
|
||||
public static void SendEventMessage()
|
||||
{
|
||||
var msg = new UserBeginDownloadWebFiles();
|
||||
UniEvent.SendMessage(msg);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 用户尝试再次更新静态版本
|
||||
/// </summary>
|
||||
public class UserTryUpdatePackageVersion : IEventMessage
|
||||
{
|
||||
public static void SendEventMessage()
|
||||
{
|
||||
var msg = new UserTryUpdatePackageVersion();
|
||||
UniEvent.SendMessage(msg);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 用户尝试再次更新补丁清单
|
||||
/// </summary>
|
||||
public class UserTryUpdatePatchManifest : IEventMessage
|
||||
{
|
||||
public static void SendEventMessage()
|
||||
{
|
||||
var msg = new UserTryUpdatePatchManifest();
|
||||
UniEvent.SendMessage(msg);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 用户尝试再次下载网络文件
|
||||
/// </summary>
|
||||
public class UserTryDownloadWebFiles : IEventMessage
|
||||
{
|
||||
public static void SendEventMessage()
|
||||
{
|
||||
var msg = new UserTryDownloadWebFiles();
|
||||
UniEvent.SendMessage(msg);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,5 +1,5 @@
|
|||
fileFormatVersion: 2
|
||||
guid: bcbf86a86eb115a41b6aa61fb0945d43
|
||||
guid: 1bfe7ffc460fb234da96624844ab7e51
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
|
@ -1,5 +1,5 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 1a79eedc3fa88c8429b085954a7e9093
|
||||
guid: 2673676235c2ebf4790768011d015d1d
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
|
@ -0,0 +1,43 @@
|
|||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using UniFramework.Pooling;
|
||||
|
||||
public class EntityAsteroid : MonoBehaviour
|
||||
{
|
||||
public float MoveSpeed = -5f;
|
||||
public float Tumble = 5f;
|
||||
|
||||
private SpawnHandle _handle;
|
||||
private Rigidbody _rigidbody;
|
||||
|
||||
public void InitEntity(SpawnHandle handle)
|
||||
{
|
||||
_handle = handle;
|
||||
|
||||
_rigidbody.velocity = this.transform.forward * MoveSpeed;
|
||||
_rigidbody.angularVelocity = Random.insideUnitSphere * Tumble;
|
||||
}
|
||||
|
||||
void Awake()
|
||||
{
|
||||
_rigidbody = this.transform.GetComponent<Rigidbody>();
|
||||
}
|
||||
void OnTriggerEnter(Collider other)
|
||||
{
|
||||
if (other.CompareTag("PlayerBullet"))
|
||||
{
|
||||
BattleEventDefine.AsteroidExplosion.SendEventMessage(this.transform.position, this.transform.rotation);
|
||||
_handle.Restore();
|
||||
_handle = null;
|
||||
}
|
||||
}
|
||||
void OnTriggerExit(Collider other)
|
||||
{
|
||||
if (other.CompareTag("Boundary"))
|
||||
{
|
||||
_handle.Restore();
|
||||
_handle = null;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,32 +1,25 @@
|
|||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using YooAsset;
|
||||
using UniFramework.Pooling;
|
||||
|
||||
public class EntityBullet : MonoBehaviour
|
||||
{
|
||||
private AssetOperationHandle _ownerHandle;
|
||||
|
||||
public float MoveSpeed = 20f;
|
||||
public float DelayDestroyTime = 5f;
|
||||
|
||||
public void InitEntity(AssetOperationHandle ownerHandle)
|
||||
private SpawnHandle _handle;
|
||||
private Rigidbody _rigidbody;
|
||||
|
||||
public void InitEntity(SpawnHandle handle)
|
||||
{
|
||||
_ownerHandle = ownerHandle;
|
||||
_handle = handle;
|
||||
_rigidbody.velocity = this.transform.forward * MoveSpeed;
|
||||
}
|
||||
|
||||
void Awake()
|
||||
{
|
||||
var rigidBody = this.transform.GetComponent<Rigidbody>();
|
||||
rigidBody.velocity = this.transform.forward * MoveSpeed;
|
||||
}
|
||||
void OnDestroy()
|
||||
{
|
||||
if (_ownerHandle != null)
|
||||
{
|
||||
_ownerHandle.Release();
|
||||
_ownerHandle = null;
|
||||
}
|
||||
_rigidbody = this.transform.GetComponent<Rigidbody>();
|
||||
}
|
||||
void OnTriggerEnter(Collider other)
|
||||
{
|
||||
|
@ -36,20 +29,27 @@ public class EntityBullet : MonoBehaviour
|
|||
if (this.gameObject.CompareTag("EnemyBullet"))
|
||||
{
|
||||
if (other.CompareTag("Enemy") == false)
|
||||
GameObject.Destroy(this.gameObject);
|
||||
{
|
||||
_handle.Restore();
|
||||
_handle = null;
|
||||
}
|
||||
}
|
||||
|
||||
if (this.gameObject.CompareTag("PlayerBullet"))
|
||||
{
|
||||
if (other.CompareTag("Player") == false)
|
||||
GameObject.Destroy(this.gameObject);
|
||||
{
|
||||
_handle.Restore();
|
||||
_handle = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
void OnTriggerExit(Collider other)
|
||||
{
|
||||
if (other.CompareTag("Boundary"))
|
||||
{
|
||||
GameObject.Destroy(this.gameObject);
|
||||
_handle.Restore();
|
||||
_handle = null;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,23 @@
|
|||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using UniFramework.Pooling;
|
||||
|
||||
public class EntityEffect : MonoBehaviour
|
||||
{
|
||||
public float DelayDestroyTime = 1f;
|
||||
|
||||
private SpawnHandle _handle;
|
||||
|
||||
public void InitEntity(SpawnHandle handle)
|
||||
{
|
||||
_handle = handle;
|
||||
|
||||
Invoke(nameof(DelayDestroy), DelayDestroyTime);
|
||||
}
|
||||
private void DelayDestroy()
|
||||
{
|
||||
_handle.Restore();
|
||||
_handle = null;
|
||||
}
|
||||
}
|
|
@ -1,7 +1,7 @@
|
|||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using YooAsset;
|
||||
using UniFramework.Pooling;
|
||||
using Random = UnityEngine.Random;
|
||||
|
||||
public class EntityEnemy : MonoBehaviour
|
||||
|
@ -9,8 +9,6 @@ public class EntityEnemy : MonoBehaviour
|
|||
private const float Dodge = 5f;
|
||||
private const float Smoothing = 7.5f;
|
||||
|
||||
private AssetOperationHandle _ownerHandle;
|
||||
|
||||
public RoomBoundary Boundary;
|
||||
public float MoveSpeed = 20f;
|
||||
public float FireInterval = 2f;
|
||||
|
@ -19,17 +17,24 @@ public class EntityEnemy : MonoBehaviour
|
|||
public Vector2 ManeuverTime = new Vector2(1, 2);
|
||||
public Vector2 ManeuverWait = new Vector2(1, 2);
|
||||
|
||||
private SpawnHandle _handle;
|
||||
private Transform _shotSpawn;
|
||||
private Rigidbody _rigidbody;
|
||||
private AudioSource _audioSource;
|
||||
private float _lastFireTime = 0f;
|
||||
private float _currentSpeed;
|
||||
private float _targetManeuver;
|
||||
|
||||
float _currentSpeed;
|
||||
float targetManeuver;
|
||||
|
||||
public void InitEntity(AssetOperationHandle ownerHandle)
|
||||
public void InitEntity(SpawnHandle handle)
|
||||
{
|
||||
_ownerHandle = ownerHandle;
|
||||
_handle = handle;
|
||||
|
||||
_rigidbody.velocity = this.transform.forward * -5f;
|
||||
_lastFireTime = Time.time;
|
||||
_currentSpeed = _rigidbody.velocity.z;
|
||||
_targetManeuver = 0f;
|
||||
StartCoroutine(Evade());
|
||||
}
|
||||
|
||||
void Awake()
|
||||
|
@ -37,40 +42,19 @@ public class EntityEnemy : MonoBehaviour
|
|||
_rigidbody = this.gameObject.GetComponent<Rigidbody>();
|
||||
_audioSource = this.gameObject.GetComponent<AudioSource>();
|
||||
_shotSpawn = this.transform.Find("shot_spawn");
|
||||
|
||||
_rigidbody.velocity = this.transform.forward * -5f;
|
||||
_currentSpeed = _rigidbody.velocity.z;
|
||||
StartCoroutine(Evade());
|
||||
}
|
||||
void Start()
|
||||
{
|
||||
_lastFireTime = Time.time;
|
||||
}
|
||||
void OnDestroy()
|
||||
{
|
||||
if (_ownerHandle != null)
|
||||
{
|
||||
_ownerHandle.Release();
|
||||
_ownerHandle = null;
|
||||
}
|
||||
}
|
||||
void Update()
|
||||
{
|
||||
if (Time.time - _lastFireTime >= FireInterval)
|
||||
{
|
||||
_lastFireTime = Time.time;
|
||||
|
||||
var handle = YooAssets.LoadAssetSync<GameObject>("enemy_bullet");
|
||||
var go = handle.InstantiateSync(_shotSpawn.position, _shotSpawn.rotation);
|
||||
var bhv = go.GetComponent<EntityBullet>();
|
||||
bhv.InitEntity(handle);
|
||||
|
||||
_audioSource.Play();
|
||||
BattleEventDefine.EnemyFireBullet.SendEventMessage(_shotSpawn.position, _shotSpawn.rotation);
|
||||
}
|
||||
}
|
||||
void FixedUpdate()
|
||||
{
|
||||
float newManeuver = Mathf.MoveTowards(_rigidbody.velocity.x, targetManeuver, Smoothing * Time.deltaTime);
|
||||
float newManeuver = Mathf.MoveTowards(_rigidbody.velocity.x, _targetManeuver, Smoothing * Time.deltaTime);
|
||||
_rigidbody.velocity = new Vector3(newManeuver, 0.0f, _currentSpeed);
|
||||
_rigidbody.position = new Vector3
|
||||
(
|
||||
|
@ -86,20 +70,17 @@ public class EntityEnemy : MonoBehaviour
|
|||
{
|
||||
if (other.CompareTag("PlayerBullet"))
|
||||
{
|
||||
var handle = YooAssets.LoadAssetSync<GameObject>("explosion_enemy");
|
||||
var go = handle.InstantiateSync(this.transform.position, this.transform.rotation);
|
||||
var bhv = go.GetComponent<EntityEffect>();
|
||||
bhv.InitEntity(handle);
|
||||
|
||||
BattleRoom.Instance.AddScore(10);
|
||||
GameObject.Destroy(this.gameObject);
|
||||
BattleEventDefine.EnemyDead.SendEventMessage(this.transform.position, this.transform.rotation);
|
||||
_handle.Restore();
|
||||
_handle = null;
|
||||
}
|
||||
}
|
||||
void OnTriggerExit(Collider other)
|
||||
{
|
||||
if (other.CompareTag("Boundary"))
|
||||
{
|
||||
GameObject.Destroy(this.gameObject);
|
||||
_handle.Restore();
|
||||
_handle = null;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -108,9 +89,9 @@ public class EntityEnemy : MonoBehaviour
|
|||
yield return new WaitForSeconds(Random.Range(StartWait.x, StartWait.y));
|
||||
while (true)
|
||||
{
|
||||
targetManeuver = Random.Range(1, Dodge) * -Mathf.Sign(transform.position.x);
|
||||
_targetManeuver = Random.Range(1, Dodge) * -Mathf.Sign(transform.position.x);
|
||||
yield return new WaitForSeconds(Random.Range(ManeuverTime.x, ManeuverTime.y));
|
||||
targetManeuver = 0;
|
||||
_targetManeuver = 0;
|
||||
yield return new WaitForSeconds(Random.Range(ManeuverWait.x, ManeuverWait.y));
|
||||
}
|
||||
}
|
|
@ -1,24 +1,23 @@
|
|||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using YooAsset;
|
||||
using UniFramework.Pooling;
|
||||
|
||||
public class EntityPlayer : MonoBehaviour
|
||||
{
|
||||
private AssetOperationHandle _ownerHandle;
|
||||
|
||||
{
|
||||
public RoomBoundary Boundary;
|
||||
public float MoveSpeed = 10f;
|
||||
public float FireRate = 0.25f;
|
||||
|
||||
private SpawnHandle _handle;
|
||||
private float _nextFireTime = 0f;
|
||||
private Transform _shotSpawn;
|
||||
private Rigidbody _rigidbody;
|
||||
private AudioSource _audioSource;
|
||||
|
||||
public void InitEntity(AssetOperationHandle ownerHandle)
|
||||
public void InitEntity(SpawnHandle handle)
|
||||
{
|
||||
_ownerHandle = ownerHandle;
|
||||
_handle = handle;
|
||||
}
|
||||
|
||||
void Awake()
|
||||
|
@ -27,26 +26,13 @@ public class EntityPlayer : MonoBehaviour
|
|||
_audioSource = this.gameObject.GetComponent<AudioSource>();
|
||||
_shotSpawn = this.transform.Find("shot_spawn");
|
||||
}
|
||||
void OnDestroy()
|
||||
{
|
||||
if (_ownerHandle != null)
|
||||
{
|
||||
_ownerHandle.Release();
|
||||
_ownerHandle = null;
|
||||
}
|
||||
}
|
||||
void Update()
|
||||
{
|
||||
if (Input.GetButton("Fire1") && Time.time > _nextFireTime)
|
||||
{
|
||||
_nextFireTime = Time.time + FireRate;
|
||||
|
||||
var handle = YooAssets.LoadAssetSync<GameObject>("player_bullet");
|
||||
var go = handle.InstantiateSync(_shotSpawn.position, _shotSpawn.rotation);
|
||||
var bhv = go.GetComponent<EntityBullet>();
|
||||
bhv.InitEntity(handle);
|
||||
|
||||
_audioSource.Play();
|
||||
BattleEventDefine.PlayerFireBullet.SendEventMessage(_shotSpawn.position, _shotSpawn.rotation);
|
||||
}
|
||||
}
|
||||
void FixedUpdate()
|
||||
|
@ -56,7 +42,6 @@ public class EntityPlayer : MonoBehaviour
|
|||
|
||||
Vector3 movement = new Vector3(moveHorizontal, 0.0f, moveVertical);
|
||||
_rigidbody.velocity = movement * MoveSpeed;
|
||||
|
||||
_rigidbody.position = new Vector3
|
||||
(
|
||||
Mathf.Clamp(GetComponent<Rigidbody>().position.x, Boundary.xMin, Boundary.xMax),
|
||||
|
@ -71,13 +56,9 @@ public class EntityPlayer : MonoBehaviour
|
|||
{
|
||||
if (other.CompareTag("Enemy") || other.CompareTag("EnemyBullet") || other.CompareTag("Asteroid"))
|
||||
{
|
||||
var explosionHandle = YooAssets.LoadAssetSync<GameObject>("explosion_player");
|
||||
var go = explosionHandle.InstantiateSync(this.transform.position, this.transform.rotation);
|
||||
var bhv = go.GetComponent<EntityEffect>();
|
||||
bhv.InitEntity(explosionHandle);
|
||||
|
||||
BattleRoom.Instance.GameOver();
|
||||
GameObject.Destroy(this.gameObject);
|
||||
BattleEventDefine.PlayerDead.SendEventMessage(this.transform.position, this.transform.rotation);
|
||||
_handle.Restore();
|
||||
_handle = null;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,5 +1,5 @@
|
|||
fileFormatVersion: 2
|
||||
guid: e214524cdc329d646b50bf3e8ba8e7a0
|
||||
guid: beab7f759234b61469afb94f517f959b
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
|
@ -0,0 +1,38 @@
|
|||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using UniFramework.Pooling;
|
||||
using UniFramework.Window;
|
||||
using UniFramework.Machine;
|
||||
using YooAsset;
|
||||
|
||||
internal class FsmInitGame : IStateNode
|
||||
{
|
||||
private StateMachine _machine;
|
||||
|
||||
void IStateNode.OnCreate(StateMachine machine)
|
||||
{
|
||||
_machine = machine;
|
||||
}
|
||||
void IStateNode.OnEnter()
|
||||
{
|
||||
var handle = YooAssets.LoadAssetSync<GameObject>("UICanvas");
|
||||
var canvas = handle.InstantiateSync();
|
||||
var desktop = canvas.transform.Find("Desktop").gameObject;
|
||||
GameObject.DontDestroyOnLoad(canvas);
|
||||
|
||||
// 初始化窗口系统
|
||||
UniWindow.Initalize(desktop);
|
||||
|
||||
// 初始化对象池系统
|
||||
UniPooling.Initalize();
|
||||
|
||||
_machine.ChangeState<FsmSceneHome>();
|
||||
}
|
||||
void IStateNode.OnUpdate()
|
||||
{
|
||||
}
|
||||
void IStateNode.OnExit()
|
||||
{
|
||||
}
|
||||
}
|
|
@ -1,5 +1,5 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 40fe73297598be84fb8dadedd4dd17e6
|
||||
guid: 35d459ebb0d7dc947b7b62d1f64a412f
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
|
@ -0,0 +1,48 @@
|
|||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using UniFramework.Window;
|
||||
using UniFramework.Event;
|
||||
using UniFramework.Machine;
|
||||
using UniFramework.Module;
|
||||
using YooAsset;
|
||||
|
||||
internal class FsmSceneBattle : IStateNode
|
||||
{
|
||||
private BattleRoom _battleRoom;
|
||||
|
||||
void IStateNode.OnCreate(StateMachine machine)
|
||||
{
|
||||
}
|
||||
void IStateNode.OnEnter()
|
||||
{
|
||||
UniWindow.OpenWindowSync<UILoadingWindow>("UILoading");
|
||||
|
||||
UniModule.StartCoroutine(Prepare());
|
||||
}
|
||||
void IStateNode.OnUpdate()
|
||||
{
|
||||
if(_battleRoom != null)
|
||||
_battleRoom.UpdateRoom();
|
||||
}
|
||||
void IStateNode.OnExit()
|
||||
{
|
||||
if(_battleRoom != null)
|
||||
{
|
||||
_battleRoom.DestroyRoom();
|
||||
_battleRoom = null;
|
||||
}
|
||||
}
|
||||
|
||||
private IEnumerator Prepare()
|
||||
{
|
||||
yield return YooAssets.LoadSceneAsync("scene_battle");
|
||||
|
||||
_battleRoom = new BattleRoom();
|
||||
yield return _battleRoom.LoadRoom();
|
||||
|
||||
// 等所有数据准备完毕后,关闭加载界面。
|
||||
UniWindow.CloseWindow<UILoadingWindow>();
|
||||
}
|
||||
}
|
|
@ -1,5 +1,5 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 195a0b4317373b44d9289d7b0529eb7c
|
||||
guid: 54061fd8bcab2344e87b0faf0464c179
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
|
@ -0,0 +1,41 @@
|
|||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using UniFramework.Machine;
|
||||
using UniFramework.Window;
|
||||
using UniFramework.Module;
|
||||
using YooAsset;
|
||||
|
||||
internal class FsmSceneHome : IStateNode
|
||||
{
|
||||
private StateMachine _machine;
|
||||
|
||||
void IStateNode.OnCreate(StateMachine machine)
|
||||
{
|
||||
_machine = machine;
|
||||
}
|
||||
void IStateNode.OnEnter()
|
||||
{
|
||||
if (_machine.PreviousNode != typeof(FsmInitGame).FullName)
|
||||
UniWindow.OpenWindowSync<UILoadingWindow>("UILoading");
|
||||
|
||||
UniModule.StartCoroutine(Prepare());
|
||||
}
|
||||
void IStateNode.OnUpdate()
|
||||
{
|
||||
}
|
||||
void IStateNode.OnExit()
|
||||
{
|
||||
UniWindow.CloseWindow<UIHomeWindow>();
|
||||
}
|
||||
|
||||
private IEnumerator Prepare()
|
||||
{
|
||||
yield return YooAssets.LoadSceneAsync("scene_home");
|
||||
yield return UniWindow.OpenWindowAsync<UIHomeWindow>("UIHome");
|
||||
yield return new WaitForSeconds(0.5f);
|
||||
|
||||
// 等所有数据准备完毕后,关闭加载界面。
|
||||
UniWindow.CloseWindow<UILoadingWindow>();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 41730f8e5f2b6e64abc4a03035c61ea5
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,64 @@
|
|||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using UniFramework.Event;
|
||||
using UniFramework.Machine;
|
||||
using UniFramework.Module;
|
||||
|
||||
public class GameManager : ModuleSingleton<GameManager>, IModule
|
||||
{
|
||||
private bool _isRun = false;
|
||||
private EventGroup _eventGroup = new EventGroup();
|
||||
private StateMachine _machine;
|
||||
|
||||
void IModule.OnCreate(object createParam)
|
||||
{
|
||||
}
|
||||
void IModule.OnDestroy()
|
||||
{
|
||||
_eventGroup.RemoveAllListener();
|
||||
}
|
||||
void IModule.OnUpdate()
|
||||
{
|
||||
if (_machine != null)
|
||||
_machine.Update();
|
||||
}
|
||||
|
||||
public void Run()
|
||||
{
|
||||
if (_isRun == false)
|
||||
{
|
||||
_isRun = true;
|
||||
|
||||
// 注册监听事件
|
||||
_eventGroup.AddListener<SceneEventDefine.ChangeToHomeScene>(OnHandleEventMessage);
|
||||
_eventGroup.AddListener<SceneEventDefine.ChangeToBattleScene>(OnHandleEventMessage);
|
||||
|
||||
Debug.Log("开启游戏流程...");
|
||||
_machine = new StateMachine(this);
|
||||
_machine.AddNode<FsmInitGame>();
|
||||
_machine.AddNode<FsmSceneHome>();
|
||||
_machine.AddNode<FsmSceneBattle>();
|
||||
_machine.Run<FsmInitGame>();
|
||||
}
|
||||
else
|
||||
{
|
||||
Debug.LogWarning("补丁更新已经正在进行中!");
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 接收事件
|
||||
/// </summary>
|
||||
private void OnHandleEventMessage(IEventMessage message)
|
||||
{
|
||||
if(message is SceneEventDefine.ChangeToHomeScene)
|
||||
{
|
||||
_machine.ChangeState<FsmSceneHome>();
|
||||
}
|
||||
else if(message is SceneEventDefine.ChangeToBattleScene)
|
||||
{
|
||||
_machine.ChangeState<FsmSceneBattle>();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
fileFormatVersion: 2
|
||||
guid: f6630e7de79efb24b9263519ba4282e1
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 7866629ff257c6d4d84cd9dab5d0b000
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,257 @@
|
|||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using UniFramework.Window;
|
||||
using UniFramework.Pooling;
|
||||
using UniFramework.Event;
|
||||
using UniFramework.Utility;
|
||||
using YooAsset;
|
||||
using Random = UnityEngine.Random;
|
||||
|
||||
[Serializable]
|
||||
public class RoomBoundary
|
||||
{
|
||||
public float xMin, xMax, zMin, zMax;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 战斗房间
|
||||
/// </summary>
|
||||
public class BattleRoom
|
||||
{
|
||||
private enum ESteps
|
||||
{
|
||||
None,
|
||||
Ready,
|
||||
Spawn,
|
||||
WaitSpawn,
|
||||
WaitWave,
|
||||
GameOver,
|
||||
}
|
||||
|
||||
private EventGroup _eventGroup = new EventGroup();
|
||||
private Spawner _entitySpawner;
|
||||
private GameObject _roomRoot;
|
||||
private AssetOperationHandle _musicHandle;
|
||||
|
||||
// 关卡参数
|
||||
private const int EnemyCount = 10;
|
||||
private const int EnemyScore = 10;
|
||||
private const int AsteroidScore = 1;
|
||||
private readonly Vector3 _spawnValues = new Vector3(6, 0, 20);
|
||||
private readonly string[] _entityLocations = new string[]
|
||||
{
|
||||
"asteroid01", "asteroid02", "asteroid03", "enemy_ship"
|
||||
};
|
||||
|
||||
private ESteps _steps = ESteps.None;
|
||||
private int _totalScore = 0;
|
||||
private int _waveSpawnCount = 0;
|
||||
|
||||
private UniTimer _startWaitTimer = UniTimer.CreateOnceTimer(1f);
|
||||
private UniTimer _spawnWaitTimer = UniTimer.CreateOnceTimer(0.75f);
|
||||
private UniTimer _waveWaitTimer = UniTimer.CreateOnceTimer(4f);
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 销毁房间
|
||||
/// </summary>
|
||||
public void DestroyRoom()
|
||||
{
|
||||
if (_musicHandle != null)
|
||||
_musicHandle.Release();
|
||||
|
||||
if (_eventGroup != null)
|
||||
_eventGroup.RemoveAllListener();
|
||||
|
||||
if (_entitySpawner != null)
|
||||
_entitySpawner.DestroyAll(true);
|
||||
|
||||
if (_roomRoot != null)
|
||||
GameObject.Destroy(_roomRoot);
|
||||
|
||||
UniWindow.CloseWindow<UIBattleWindow>();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 更新房间
|
||||
/// </summary>
|
||||
public void UpdateRoom()
|
||||
{
|
||||
if (_steps == ESteps.None || _steps == ESteps.GameOver)
|
||||
return;
|
||||
|
||||
if (_steps == ESteps.Ready)
|
||||
{
|
||||
if (_startWaitTimer.Update(Time.deltaTime))
|
||||
{
|
||||
_steps = ESteps.Spawn;
|
||||
}
|
||||
}
|
||||
|
||||
if (_steps == ESteps.Spawn)
|
||||
{
|
||||
var enemyLocation = _entityLocations[Random.Range(0, 4)];
|
||||
Vector3 spawnPosition = new Vector3(Random.Range(-_spawnValues.x, _spawnValues.x), _spawnValues.y, _spawnValues.z);
|
||||
Quaternion spawnRotation = Quaternion.identity;
|
||||
|
||||
if (enemyLocation == "enemy_ship")
|
||||
{
|
||||
// 生成敌人实体
|
||||
var handle = _entitySpawner.SpawnSync(enemyLocation, _roomRoot.transform, spawnPosition, spawnRotation);
|
||||
var entity = handle.GameObj.GetComponent<EntityEnemy>();
|
||||
entity.InitEntity(handle);
|
||||
}
|
||||
else
|
||||
{
|
||||
// 生成小行星实体
|
||||
var handle = _entitySpawner.SpawnSync(enemyLocation, _roomRoot.transform, spawnPosition, spawnRotation);
|
||||
var entity = handle.GameObj.GetComponent<EntityAsteroid>();
|
||||
entity.InitEntity(handle);
|
||||
}
|
||||
|
||||
_waveSpawnCount++;
|
||||
if (_waveSpawnCount >= EnemyCount)
|
||||
{
|
||||
_steps = ESteps.WaitWave;
|
||||
}
|
||||
else
|
||||
{
|
||||
_steps = ESteps.WaitSpawn;
|
||||
}
|
||||
}
|
||||
|
||||
if (_steps == ESteps.WaitSpawn)
|
||||
{
|
||||
if (_spawnWaitTimer.Update(Time.deltaTime))
|
||||
{
|
||||
_spawnWaitTimer.Reset();
|
||||
_steps = ESteps.Spawn;
|
||||
}
|
||||
}
|
||||
|
||||
if (_steps == ESteps.WaitWave)
|
||||
{
|
||||
if (_waveWaitTimer.Update(Time.deltaTime))
|
||||
{
|
||||
_waveWaitTimer.Reset();
|
||||
_waveSpawnCount = 0;
|
||||
_steps = ESteps.Spawn;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 加载房间
|
||||
/// </summary>
|
||||
public IEnumerator LoadRoom()
|
||||
{
|
||||
// 创建房间根对象
|
||||
_roomRoot = new GameObject("BattleRoom");
|
||||
|
||||
// 加载背景音乐
|
||||
_musicHandle = YooAssets.LoadAssetAsync<AudioClip>("music_background");
|
||||
yield return _musicHandle;
|
||||
|
||||
// 播放背景音乐
|
||||
var audioSource = _roomRoot.AddComponent<AudioSource>();
|
||||
audioSource.loop = true;
|
||||
audioSource.clip = _musicHandle.AssetObject as AudioClip;
|
||||
audioSource.Play();
|
||||
|
||||
// 创建游戏对象发生器
|
||||
_entitySpawner = UniPooling.CreateSpawner("DefaultPackage");
|
||||
|
||||
// 创建游戏对象池
|
||||
yield return _entitySpawner.CreateGameObjectPoolAsync("player_ship");
|
||||
yield return _entitySpawner.CreateGameObjectPoolAsync("player_bullet");
|
||||
yield return _entitySpawner.CreateGameObjectPoolAsync("enemy_ship");
|
||||
yield return _entitySpawner.CreateGameObjectPoolAsync("enemy_bullet");
|
||||
yield return _entitySpawner.CreateGameObjectPoolAsync("asteroid01");
|
||||
yield return _entitySpawner.CreateGameObjectPoolAsync("asteroid02");
|
||||
yield return _entitySpawner.CreateGameObjectPoolAsync("asteroid03");
|
||||
yield return _entitySpawner.CreateGameObjectPoolAsync("explosion_asteroid");
|
||||
yield return _entitySpawner.CreateGameObjectPoolAsync("explosion_enemy");
|
||||
yield return _entitySpawner.CreateGameObjectPoolAsync("explosion_player");
|
||||
|
||||
// 创建玩家实体对象
|
||||
var handle = _entitySpawner.SpawnSync("player_ship");
|
||||
var entity = handle.GameObj.GetComponent<EntityPlayer>();
|
||||
entity.InitEntity(handle);
|
||||
|
||||
// 显示战斗界面
|
||||
yield return UniWindow.OpenWindowAsync<UIBattleWindow>("UIBattle");
|
||||
|
||||
// 监听游戏事件
|
||||
_eventGroup.AddListener<BattleEventDefine.PlayerDead>(OnHandleEventMessage);
|
||||
_eventGroup.AddListener<BattleEventDefine.EnemyDead>(OnHandleEventMessage);
|
||||
_eventGroup.AddListener<BattleEventDefine.AsteroidExplosion>(OnHandleEventMessage);
|
||||
_eventGroup.AddListener<BattleEventDefine.PlayerFireBullet>(OnHandleEventMessage);
|
||||
_eventGroup.AddListener<BattleEventDefine.EnemyFireBullet>(OnHandleEventMessage);
|
||||
|
||||
_steps = ESteps.Ready;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 接收事件
|
||||
/// </summary>
|
||||
/// <param name="message"></param>
|
||||
private void OnHandleEventMessage(IEventMessage message)
|
||||
{
|
||||
if (message is BattleEventDefine.PlayerDead)
|
||||
{
|
||||
var msg = message as BattleEventDefine.PlayerDead;
|
||||
|
||||
// 创建爆炸效果
|
||||
var handle = _entitySpawner.SpawnSync("explosion_player", _roomRoot.transform, msg.Position, msg.Rotation);
|
||||
var entity = handle.GameObj.GetComponent<EntityEffect>();
|
||||
entity.InitEntity(handle);
|
||||
|
||||
_steps = ESteps.GameOver;
|
||||
BattleEventDefine.GameOver.SendEventMessage();
|
||||
}
|
||||
else if (message is BattleEventDefine.EnemyDead)
|
||||
{
|
||||
var msg = message as BattleEventDefine.EnemyDead;
|
||||
|
||||
// 创建爆炸效果
|
||||
var handle = _entitySpawner.SpawnSync("explosion_enemy", _roomRoot.transform, msg.Position, msg.Rotation);
|
||||
var entity = handle.GameObj.GetComponent<EntityEffect>();
|
||||
entity.InitEntity(handle);
|
||||
|
||||
_totalScore += EnemyScore;
|
||||
BattleEventDefine.ScoreChange.SendEventMessage(_totalScore);
|
||||
}
|
||||
else if (message is BattleEventDefine.AsteroidExplosion)
|
||||
{
|
||||
var msg = message as BattleEventDefine.AsteroidExplosion;
|
||||
|
||||
// 创建爆炸效果
|
||||
var handle = _entitySpawner.SpawnSync("explosion_asteroid", _roomRoot.transform, msg.Position, msg.Rotation);
|
||||
var entity = handle.GameObj.GetComponent<EntityEffect>();
|
||||
entity.InitEntity(handle);
|
||||
|
||||
_totalScore += AsteroidScore;
|
||||
BattleEventDefine.ScoreChange.SendEventMessage(_totalScore);
|
||||
}
|
||||
else if (message is BattleEventDefine.PlayerFireBullet)
|
||||
{
|
||||
var msg = message as BattleEventDefine.PlayerFireBullet;
|
||||
|
||||
// 创建子弹实体
|
||||
var handle = _entitySpawner.SpawnSync("player_bullet", _roomRoot.transform, msg.Position, msg.Rotation);
|
||||
var entity = handle.GameObj.GetComponent<EntityBullet>();
|
||||
entity.InitEntity(handle);
|
||||
}
|
||||
else if (message is BattleEventDefine.EnemyFireBullet)
|
||||
{
|
||||
var msg = message as BattleEventDefine.EnemyFireBullet;
|
||||
|
||||
// 创建子弹实体
|
||||
var handle = _entitySpawner.SpawnSync("enemy_bullet", _roomRoot.transform, msg.Position, msg.Rotation);
|
||||
var entity = handle.GameObj.GetComponent<EntityBullet>();
|
||||
entity.InitEntity(handle);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,5 +1,5 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 43ab5a1b8ae5c2b4a8995952e7e01f3f
|
||||
guid: d4dfc5f1cace4e8469e496d83b254ac7
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
|
@ -1,45 +0,0 @@
|
|||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
|
||||
public class EventGroup
|
||||
{
|
||||
private readonly Dictionary<System.Type, List<Action<IEventMessage>>> _cachedListener = new Dictionary<System.Type, List<Action<IEventMessage>>>();
|
||||
|
||||
/// <summary>
|
||||
/// 添加一个监听
|
||||
/// </summary>
|
||||
public void AddListener<TEvent>(System.Action<IEventMessage> listener) where TEvent : IEventMessage
|
||||
{
|
||||
System.Type eventType = typeof(TEvent);
|
||||
if (_cachedListener.ContainsKey(eventType) == false)
|
||||
_cachedListener.Add(eventType, new List<Action<IEventMessage>>());
|
||||
|
||||
if (_cachedListener[eventType].Contains(listener) == false)
|
||||
{
|
||||
_cachedListener[eventType].Add(listener);
|
||||
EventManager.AddListener(eventType, listener);
|
||||
}
|
||||
else
|
||||
{
|
||||
UnityEngine.Debug.LogWarning($"Event listener is exist : {eventType}");
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 移除所有缓存的监听
|
||||
/// </summary>
|
||||
public void RemoveAllListener()
|
||||
{
|
||||
foreach (var pair in _cachedListener)
|
||||
{
|
||||
System.Type eventType = pair.Key;
|
||||
for (int i = 0; i < pair.Value.Count; i++)
|
||||
{
|
||||
EventManager.RemoveListener(eventType, pair.Value[i]);
|
||||
}
|
||||
pair.Value.Clear();
|
||||
}
|
||||
_cachedListener.Clear();
|
||||
}
|
||||
}
|
|
@ -1,171 +0,0 @@
|
|||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
|
||||
/// <summary>
|
||||
/// 事件管理器
|
||||
/// </summary>
|
||||
public static class EventManager
|
||||
{
|
||||
private class PostWrapper
|
||||
{
|
||||
public int PostFrame;
|
||||
public int EventID;
|
||||
public IEventMessage Message;
|
||||
|
||||
public void OnRelease()
|
||||
{
|
||||
PostFrame = 0;
|
||||
EventID = 0;
|
||||
Message = null;
|
||||
}
|
||||
}
|
||||
|
||||
private static readonly Dictionary<int, List<Action<IEventMessage>>> _listeners = new Dictionary<int, List<Action<IEventMessage>>>(1000);
|
||||
private static readonly List<PostWrapper> _postWrappers = new List<PostWrapper>(1000);
|
||||
|
||||
|
||||
public static void Update()
|
||||
{
|
||||
for (int i = _postWrappers.Count - 1; i >= 0; i--)
|
||||
{
|
||||
var wrapper = _postWrappers[i];
|
||||
if (UnityEngine.Time.frameCount > wrapper.PostFrame)
|
||||
{
|
||||
SendMessage(wrapper.EventID, wrapper.Message);
|
||||
_postWrappers.RemoveAt(i);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 添加监听
|
||||
/// </summary>
|
||||
public static void AddListener<TEvent>(System.Action<IEventMessage> listener) where TEvent : IEventMessage
|
||||
{
|
||||
AddListener(typeof(TEvent), listener);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 添加监听
|
||||
/// </summary>
|
||||
public static void AddListener(System.Type eventType, System.Action<IEventMessage> listener)
|
||||
{
|
||||
int eventId = eventType.GetHashCode();
|
||||
AddListener(eventId, listener);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 添加监听
|
||||
/// </summary>
|
||||
public static void AddListener(int eventId, System.Action<IEventMessage> listener)
|
||||
{
|
||||
if (_listeners.ContainsKey(eventId) == false)
|
||||
_listeners.Add(eventId, new List<Action<IEventMessage>>());
|
||||
if (_listeners[eventId].Contains(listener) == false)
|
||||
_listeners[eventId].Add(listener);
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 移除监听
|
||||
/// </summary>
|
||||
public static void RemoveListener<TEvent>(System.Action<IEventMessage> listener) where TEvent : IEventMessage
|
||||
{
|
||||
RemoveListener(typeof(TEvent), listener);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 移除监听
|
||||
/// </summary>
|
||||
public static void RemoveListener(System.Type eventType, System.Action<IEventMessage> listener)
|
||||
{
|
||||
int eventId = eventType.GetHashCode();
|
||||
RemoveListener(eventId, listener);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 移除监听
|
||||
/// </summary>
|
||||
public static void RemoveListener(int eventId, System.Action<IEventMessage> listener)
|
||||
{
|
||||
if (_listeners.ContainsKey(eventId))
|
||||
{
|
||||
if (_listeners[eventId].Contains(listener))
|
||||
_listeners[eventId].Remove(listener);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 实时广播事件
|
||||
/// </summary>
|
||||
public static void SendMessage(IEventMessage message)
|
||||
{
|
||||
int eventId = message.GetType().GetHashCode();
|
||||
SendMessage(eventId, message);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 实时广播事件
|
||||
/// </summary>
|
||||
public static void SendMessage(int eventId, IEventMessage message)
|
||||
{
|
||||
if (_listeners.ContainsKey(eventId) == false)
|
||||
return;
|
||||
|
||||
List<Action<IEventMessage>> listeners = _listeners[eventId];
|
||||
for (int i = listeners.Count - 1; i >= 0; i--)
|
||||
{
|
||||
listeners[i].Invoke(message);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 延迟广播事件
|
||||
/// </summary>
|
||||
public static void PostMessage(IEventMessage message)
|
||||
{
|
||||
int eventId = message.GetType().GetHashCode();
|
||||
PostMessage(eventId, message);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 延迟广播事件
|
||||
/// </summary>
|
||||
public static void PostMessage(int eventId, IEventMessage message)
|
||||
{
|
||||
var wrapper = new PostWrapper();
|
||||
wrapper.PostFrame = UnityEngine.Time.frameCount;
|
||||
wrapper.EventID = eventId;
|
||||
wrapper.Message = message;
|
||||
_postWrappers.Add(wrapper);
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 清空所有监听
|
||||
/// </summary>
|
||||
public static void ClearListeners()
|
||||
{
|
||||
foreach (int eventId in _listeners.Keys)
|
||||
{
|
||||
_listeners[eventId].Clear();
|
||||
}
|
||||
_listeners.Clear();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取监听者总数
|
||||
/// </summary>
|
||||
private static int GetAllListenerCount()
|
||||
{
|
||||
int count = 0;
|
||||
foreach (var list in _listeners)
|
||||
{
|
||||
count += list.Value.Count;
|
||||
}
|
||||
return count;
|
||||
}
|
||||
}
|
|
@ -1,4 +0,0 @@
|
|||
|
||||
public interface IEventMessage
|
||||
{
|
||||
}
|
|
@ -1,121 +0,0 @@
|
|||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
|
||||
/// <summary>
|
||||
/// 有限状态机
|
||||
/// </summary>
|
||||
public static class FsmManager
|
||||
{
|
||||
private static readonly List<IFsmNode> _nodes = new List<IFsmNode>();
|
||||
private static IFsmNode _curNode;
|
||||
private static IFsmNode _preNode;
|
||||
|
||||
/// <summary>
|
||||
/// 当前运行的节点名称
|
||||
/// </summary>
|
||||
public static string CurrentNodeName
|
||||
{
|
||||
get { return _curNode != null ? _curNode.Name : string.Empty; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 之前运行的节点名称
|
||||
/// </summary>
|
||||
public static string PreviousNodeName
|
||||
{
|
||||
get { return _preNode != null ? _preNode.Name : string.Empty; }
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 启动状态机
|
||||
/// </summary>
|
||||
/// <param name="entryNode">入口节点</param>
|
||||
public static void Run(string entryNode)
|
||||
{
|
||||
_curNode = GetNode(entryNode);
|
||||
_preNode = GetNode(entryNode);
|
||||
|
||||
if (_curNode != null)
|
||||
_curNode.OnEnter();
|
||||
else
|
||||
UnityEngine.Debug.LogError($"Not found entry node : {entryNode}");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 更新状态机
|
||||
/// </summary>
|
||||
public static void Update()
|
||||
{
|
||||
if (_curNode != null)
|
||||
_curNode.OnUpdate();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 加入一个节点
|
||||
/// </summary>
|
||||
public static void AddNode(IFsmNode node)
|
||||
{
|
||||
if (node == null)
|
||||
throw new ArgumentNullException();
|
||||
|
||||
if (_nodes.Contains(node) == false)
|
||||
{
|
||||
_nodes.Add(node);
|
||||
}
|
||||
else
|
||||
{
|
||||
UnityEngine.Debug.LogWarning($"Node {node.Name} already existed");
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 转换节点
|
||||
/// </summary>
|
||||
public static void Transition(string nodeName)
|
||||
{
|
||||
if (string.IsNullOrEmpty(nodeName))
|
||||
throw new ArgumentNullException();
|
||||
|
||||
IFsmNode node = GetNode(nodeName);
|
||||
if (node == null)
|
||||
{
|
||||
UnityEngine.Debug.LogError($"Can not found node {nodeName}");
|
||||
return;
|
||||
}
|
||||
|
||||
UnityEngine.Debug.Log($"FSM change {_curNode.Name} to {node.Name}");
|
||||
_preNode = _curNode;
|
||||
_curNode.OnExit();
|
||||
_curNode = node;
|
||||
_curNode.OnEnter();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 返回到之前的节点
|
||||
/// </summary>
|
||||
public static void RevertToPreviousNode()
|
||||
{
|
||||
Transition(PreviousNodeName);
|
||||
}
|
||||
|
||||
private static bool IsContains(string nodeName)
|
||||
{
|
||||
for (int i = 0; i < _nodes.Count; i++)
|
||||
{
|
||||
if (_nodes[i].Name == nodeName)
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
private static IFsmNode GetNode(string nodeName)
|
||||
{
|
||||
for (int i = 0; i < _nodes.Count; i++)
|
||||
{
|
||||
if (_nodes[i].Name == nodeName)
|
||||
return _nodes[i];
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
|
@ -1,12 +0,0 @@
|
|||
|
||||
public interface IFsmNode
|
||||
{
|
||||
/// <summary>
|
||||
/// 节点名称
|
||||
/// </summary>
|
||||
string Name { get; }
|
||||
|
||||
void OnEnter();
|
||||
void OnUpdate();
|
||||
void OnExit();
|
||||
}
|
|
@ -1,31 +1,35 @@
|
|||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using UniFramework.Machine;
|
||||
|
||||
/// <summary>
|
||||
/// 清理未使用的缓存文件
|
||||
/// </summary>
|
||||
internal class FsmClearCache : IFsmNode
|
||||
internal class FsmClearCache : IStateNode
|
||||
{
|
||||
public string Name { private set; get; } = nameof(FsmClearCache);
|
||||
private StateMachine _machine;
|
||||
|
||||
void IFsmNode.OnEnter()
|
||||
void IStateNode.OnCreate(StateMachine machine)
|
||||
{
|
||||
Debug.Log("开始清理未使用的缓存文件!");
|
||||
_machine = machine;
|
||||
}
|
||||
void IStateNode.OnEnter()
|
||||
{
|
||||
PatchEventDefine.PatchStatesChange.SendEventMessage("清理未使用的缓存文件!");
|
||||
var package = YooAsset.YooAssets.GetAssetsPackage("DefaultPackage");
|
||||
var operation = package.ClearPackageUnusedCacheFilesAsync();
|
||||
operation.Completed += Operation_Completed;
|
||||
}
|
||||
void IStateNode.OnUpdate()
|
||||
{
|
||||
}
|
||||
void IStateNode.OnExit()
|
||||
{
|
||||
}
|
||||
|
||||
private void Operation_Completed(YooAsset.AsyncOperationBase obj)
|
||||
{
|
||||
FsmManager.Transition(nameof(FsmStartGame));
|
||||
}
|
||||
|
||||
void IFsmNode.OnUpdate()
|
||||
{
|
||||
}
|
||||
void IFsmNode.OnExit()
|
||||
{
|
||||
_machine.ChangeState<FsmPatchDone>();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,56 @@
|
|||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using UniFramework.Machine;
|
||||
using UniFramework.Module;
|
||||
using YooAsset;
|
||||
|
||||
/// <summary>
|
||||
/// 创建文件下载器
|
||||
/// </summary>
|
||||
public class FsmCreateDownloader : IStateNode
|
||||
{
|
||||
private StateMachine _machine;
|
||||
|
||||
void IStateNode.OnCreate(StateMachine machine)
|
||||
{
|
||||
_machine = machine;
|
||||
}
|
||||
void IStateNode.OnEnter()
|
||||
{
|
||||
PatchEventDefine.PatchStatesChange.SendEventMessage("创建补丁下载器!");
|
||||
UniModule.StartCoroutine(CreateDownloader());
|
||||
}
|
||||
void IStateNode.OnUpdate()
|
||||
{
|
||||
}
|
||||
void IStateNode.OnExit()
|
||||
{
|
||||
}
|
||||
|
||||
IEnumerator CreateDownloader()
|
||||
{
|
||||
yield return new WaitForSecondsRealtime(0.5f);
|
||||
|
||||
int downloadingMaxNum = 10;
|
||||
int failedTryAgain = 3;
|
||||
var downloader = YooAssets.CreatePatchDownloader(downloadingMaxNum, failedTryAgain);
|
||||
PatchManager.Instance.Downloader = downloader;
|
||||
|
||||
if (downloader.TotalDownloadCount == 0)
|
||||
{
|
||||
Debug.Log("没有发现需要下载的资源!");
|
||||
_machine.ChangeState<FsmDownloadOver>();
|
||||
}
|
||||
else
|
||||
{
|
||||
Debug.Log($"一共发现了{downloader.TotalDownloadCount}个资源需要更新下载!");
|
||||
|
||||
// 发现新更新文件后,挂起流程系统
|
||||
// 注意:开发者需要在下载前检测磁盘空间不足
|
||||
int totalDownloadCount = downloader.TotalDownloadCount;
|
||||
long totalDownloadBytes = downloader.TotalDownloadBytes;
|
||||
PatchEventDefine.FoundUpdateFiles.SendEventMessage(totalDownloadCount, totalDownloadBytes);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,46 @@
|
|||
using System.Collections;
|
||||
using UnityEngine;
|
||||
using UniFramework.Machine;
|
||||
using UniFramework.Module;
|
||||
using YooAsset;
|
||||
|
||||
/// <summary>
|
||||
/// 下载更新文件
|
||||
/// </summary>
|
||||
public class FsmDownloadFiles : IStateNode
|
||||
{
|
||||
private StateMachine _machine;
|
||||
|
||||
void IStateNode.OnCreate(StateMachine machine)
|
||||
{
|
||||
_machine = machine;
|
||||
}
|
||||
void IStateNode.OnEnter()
|
||||
{
|
||||
PatchEventDefine.PatchStatesChange.SendEventMessage("开始下载补丁文件!");
|
||||
UniModule.StartCoroutine(BeginDownload());
|
||||
}
|
||||
void IStateNode.OnUpdate()
|
||||
{
|
||||
}
|
||||
void IStateNode.OnExit()
|
||||
{
|
||||
}
|
||||
|
||||
private IEnumerator BeginDownload()
|
||||
{
|
||||
var downloader = PatchManager.Instance.Downloader;
|
||||
|
||||
// 注册下载回调
|
||||
downloader.OnDownloadErrorCallback = PatchEventDefine.WebFileDownloadFailed.SendEventMessage;
|
||||
downloader.OnDownloadProgressCallback = PatchEventDefine.DownloadProgressUpdate.SendEventMessage;
|
||||
downloader.BeginDownload();
|
||||
yield return downloader;
|
||||
|
||||
// 检测下载结果
|
||||
if (downloader.Status != EOperationStatus.Succeed)
|
||||
yield break;
|
||||
|
||||
_machine.ChangeState<FsmPatchDone>();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,27 @@
|
|||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using UniFramework.Machine;
|
||||
|
||||
/// <summary>
|
||||
/// 下载完毕
|
||||
/// </summary>
|
||||
internal class FsmDownloadOver : IStateNode
|
||||
{
|
||||
private StateMachine _machine;
|
||||
|
||||
void IStateNode.OnCreate(StateMachine machine)
|
||||
{
|
||||
_machine = machine;
|
||||
}
|
||||
void IStateNode.OnEnter()
|
||||
{
|
||||
_machine.ChangeState<FsmClearCache>();
|
||||
}
|
||||
void IStateNode.OnUpdate()
|
||||
{
|
||||
}
|
||||
void IStateNode.OnExit()
|
||||
{
|
||||
}
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
fileFormatVersion: 2
|
||||
guid: c96c57c65f74bb3469dc71b13ef78c84
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,31 @@
|
|||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using UniFramework.Machine;
|
||||
using UniFramework.Module;
|
||||
|
||||
/// <summary>
|
||||
/// 更新完毕
|
||||
/// </summary>
|
||||
internal class FsmPatchDone : IStateNode
|
||||
{
|
||||
void IStateNode.OnCreate(StateMachine machine)
|
||||
{
|
||||
}
|
||||
void IStateNode.OnEnter()
|
||||
{
|
||||
PatchEventDefine.PatchStatesChange.SendEventMessage("开始游戏!");
|
||||
|
||||
// 创建游戏管理器
|
||||
UniModule.CreateModule<GameManager>();
|
||||
|
||||
// 开启游戏流程
|
||||
GameManager.Instance.Run();
|
||||
}
|
||||
void IStateNode.OnUpdate()
|
||||
{
|
||||
}
|
||||
void IStateNode.OnExit()
|
||||
{
|
||||
}
|
||||
}
|
|
@ -1,45 +1,49 @@
|
|||
using System;
|
||||
using System.Collections;
|
||||
using UnityEngine;
|
||||
using YooAsset;
|
||||
using Better.StreamingAssets;
|
||||
using System.IO;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using UniFramework.Machine;
|
||||
using UniFramework.Module;
|
||||
using YooAsset;
|
||||
|
||||
public class GameBoot : MonoBehaviour
|
||||
/// <summary>
|
||||
/// 初始化工作
|
||||
/// </summary>
|
||||
internal class FsmPatchInit : IStateNode
|
||||
{
|
||||
public static GameBoot Instance;
|
||||
private StateMachine _machine;
|
||||
|
||||
public EPlayMode PlayMode = EPlayMode.EditorSimulateMode;
|
||||
|
||||
void Awake()
|
||||
void IStateNode.OnCreate(StateMachine machine)
|
||||
{
|
||||
Debug.Log($"资源系统运行模式:{PlayMode}");
|
||||
Instance = this;
|
||||
Application.targetFrameRate = 60;
|
||||
Application.runInBackground = true;
|
||||
|
||||
DontDestroyOnLoad(this.gameObject);
|
||||
_machine = machine;
|
||||
}
|
||||
void Update()
|
||||
void IStateNode.OnEnter()
|
||||
{
|
||||
EventManager.Update();
|
||||
FsmManager.Update();
|
||||
}
|
||||
|
||||
IEnumerator Start()
|
||||
{
|
||||
// 初始化BetterStreaming
|
||||
BetterStreamingAssets.Initialize();
|
||||
// 加载更新面板
|
||||
var go = Resources.Load<GameObject>("PatchWindow");
|
||||
GameObject.Instantiate(go);
|
||||
|
||||
// 初始化资源系统
|
||||
YooAssets.Initialize();
|
||||
UniModule.StartCoroutine(InitYooAsset());
|
||||
}
|
||||
void IStateNode.OnUpdate()
|
||||
{
|
||||
}
|
||||
void IStateNode.OnExit()
|
||||
{
|
||||
}
|
||||
|
||||
// 创建默认的资源包
|
||||
private IEnumerator InitYooAsset()
|
||||
{
|
||||
var playMode = PatchManager.Instance.PlayMode;
|
||||
|
||||
// 创建默认的资源包
|
||||
var package = YooAssets.CreateAssetsPackage("DefaultPackage");
|
||||
YooAssets.SetDefaultAssetsPackage(package);
|
||||
|
||||
// 编辑器下的模拟模式
|
||||
if (PlayMode == EPlayMode.EditorSimulateMode)
|
||||
if (playMode == EPlayMode.EditorSimulateMode)
|
||||
{
|
||||
var createParameters = new EditorSimulateModeParameters();
|
||||
createParameters.SimulatePatchManifestPath = EditorSimulateModeHelper.SimulateBuild("DefaultPackage");
|
||||
|
@ -47,7 +51,7 @@ public class GameBoot : MonoBehaviour
|
|||
}
|
||||
|
||||
// 单机运行模式
|
||||
if (PlayMode == EPlayMode.OfflinePlayMode)
|
||||
if (playMode == EPlayMode.OfflinePlayMode)
|
||||
{
|
||||
var createParameters = new OfflinePlayModeParameters();
|
||||
createParameters.DecryptionServices = new GameDecryptionServices();
|
||||
|
@ -55,7 +59,7 @@ public class GameBoot : MonoBehaviour
|
|||
}
|
||||
|
||||
// 联机运行模式
|
||||
if (PlayMode == EPlayMode.HostPlayMode)
|
||||
if (playMode == EPlayMode.HostPlayMode)
|
||||
{
|
||||
var createParameters = new HostPlayModeParameters();
|
||||
createParameters.DecryptionServices = new GameDecryptionServices();
|
||||
|
@ -65,10 +69,12 @@ public class GameBoot : MonoBehaviour
|
|||
yield return package.InitializeAsync(createParameters);
|
||||
}
|
||||
|
||||
// 运行资源更新流程
|
||||
PatchManager.Run();
|
||||
_machine.ChangeState<FsmUpdateVersion>();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取资源服务器地址
|
||||
/// </summary>
|
||||
private string GetHostServerURL()
|
||||
{
|
||||
//string hostServerIP = "http://10.0.2.2"; //安卓模拟器地址
|
||||
|
@ -95,7 +101,10 @@ public class GameBoot : MonoBehaviour
|
|||
return $"{hostServerIP}/CDN/PC/{gameVersion}";
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 内置文件查询服务类
|
||||
/// </summary>
|
||||
private class GameQueryServices : IQueryServices
|
||||
{
|
||||
public bool QueryStreamingAssets(string fileName)
|
||||
|
@ -105,6 +114,10 @@ public class GameBoot : MonoBehaviour
|
|||
return BetterStreamingAssets.FileExists($"{buildinFolderName}/{fileName}");
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 资源文件解密服务类
|
||||
/// </summary>
|
||||
private class GameDecryptionServices : IDecryptionServices
|
||||
{
|
||||
public ulong LoadFromFileOffset(DecryptFileInfo fileInfo)
|
|
@ -0,0 +1,49 @@
|
|||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using UniFramework.Machine;
|
||||
using UniFramework.Module;
|
||||
using YooAsset;
|
||||
|
||||
/// <summary>
|
||||
/// 更新资源清单
|
||||
/// </summary>
|
||||
public class FsmUpdateManifest : IStateNode
|
||||
{
|
||||
private StateMachine _machine;
|
||||
|
||||
void IStateNode.OnCreate(StateMachine machine)
|
||||
{
|
||||
_machine = machine;
|
||||
}
|
||||
void IStateNode.OnEnter()
|
||||
{
|
||||
PatchEventDefine.PatchStatesChange.SendEventMessage("更新资源清单!");
|
||||
UniModule.StartCoroutine(UpdateManifest());
|
||||
}
|
||||
void IStateNode.OnUpdate()
|
||||
{
|
||||
}
|
||||
void IStateNode.OnExit()
|
||||
{
|
||||
}
|
||||
|
||||
private IEnumerator UpdateManifest()
|
||||
{
|
||||
yield return new WaitForSecondsRealtime(0.5f);
|
||||
|
||||
var package = YooAssets.GetAssetsPackage("DefaultPackage");
|
||||
var operation = package.UpdatePackageManifestAsync(PatchManager.Instance.PackageVersion, 30);
|
||||
yield return operation;
|
||||
|
||||
if(operation.Status == EOperationStatus.Succeed)
|
||||
{
|
||||
_machine.ChangeState<FsmCreateDownloader>();
|
||||
}
|
||||
else
|
||||
{
|
||||
Debug.LogWarning(operation.Error);
|
||||
PatchEventDefine.PatchManifestUpdateFailed.SendEventMessage();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,50 @@
|
|||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using UniFramework.Machine;
|
||||
using UniFramework.Module;
|
||||
using YooAsset;
|
||||
|
||||
/// <summary>
|
||||
/// 更新资源版本号
|
||||
/// </summary>
|
||||
internal class FsmUpdateVersion : IStateNode
|
||||
{
|
||||
private StateMachine _machine;
|
||||
|
||||
void IStateNode.OnCreate(StateMachine machine)
|
||||
{
|
||||
_machine = machine;
|
||||
}
|
||||
void IStateNode.OnEnter()
|
||||
{
|
||||
PatchEventDefine.PatchStatesChange.SendEventMessage("获取最新的资源版本 !");
|
||||
UniModule.StartCoroutine(GetStaticVersion());
|
||||
}
|
||||
void IStateNode.OnUpdate()
|
||||
{
|
||||
}
|
||||
void IStateNode.OnExit()
|
||||
{
|
||||
}
|
||||
|
||||
private IEnumerator GetStaticVersion()
|
||||
{
|
||||
yield return new WaitForSecondsRealtime(0.5f);
|
||||
|
||||
var package = YooAssets.GetAssetsPackage("DefaultPackage");
|
||||
var operation = package.UpdatePackageVersionAsync(30);
|
||||
yield return operation;
|
||||
|
||||
if (operation.Status == EOperationStatus.Succeed)
|
||||
{
|
||||
PatchManager.Instance.PackageVersion = operation.PackageVersion;
|
||||
_machine.ChangeState<FsmUpdateManifest>();
|
||||
}
|
||||
else
|
||||
{
|
||||
Debug.LogWarning(operation.Error);
|
||||
PatchEventDefine.PackageVersionUpdateFailed.SendEventMessage();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,105 @@
|
|||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using UniFramework.Machine;
|
||||
using UniFramework.Event;
|
||||
using UniFramework.Module;
|
||||
using YooAsset;
|
||||
|
||||
public class PatchManager : ModuleSingleton<PatchManager>, IModule
|
||||
{
|
||||
/// <summary>
|
||||
/// 运行模式
|
||||
/// </summary>
|
||||
public EPlayMode PlayMode { private set; get; }
|
||||
|
||||
/// <summary>
|
||||
/// 包裹的版本信息
|
||||
/// </summary>
|
||||
public string PackageVersion { set; get; }
|
||||
|
||||
/// <summary>
|
||||
/// 下载器
|
||||
/// </summary>
|
||||
public PatchDownloaderOperation Downloader { set; get; }
|
||||
|
||||
|
||||
private bool _isRun = false;
|
||||
private EventGroup _eventGroup = new EventGroup();
|
||||
private StateMachine _machine;
|
||||
|
||||
void IModule.OnCreate(object createParam)
|
||||
{
|
||||
}
|
||||
void IModule.OnDestroy()
|
||||
{
|
||||
_eventGroup.RemoveAllListener();
|
||||
}
|
||||
void IModule.OnUpdate()
|
||||
{
|
||||
if (_machine != null)
|
||||
_machine.Update();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 开启流程
|
||||
/// </summary>
|
||||
public void Run(EPlayMode playMode)
|
||||
{
|
||||
if (_isRun == false)
|
||||
{
|
||||
_isRun = true;
|
||||
PlayMode = playMode;
|
||||
|
||||
// 注册监听事件
|
||||
_eventGroup.AddListener<UserEventDefine.UserBeginDownloadWebFiles>(OnHandleEventMessage);
|
||||
_eventGroup.AddListener<UserEventDefine.UserTryUpdatePackageVersion>(OnHandleEventMessage);
|
||||
_eventGroup.AddListener<UserEventDefine.UserTryUpdatePatchManifest>(OnHandleEventMessage);
|
||||
_eventGroup.AddListener<UserEventDefine.UserTryDownloadWebFiles>(OnHandleEventMessage);
|
||||
|
||||
Debug.Log("开启补丁更新流程...");
|
||||
_machine = new StateMachine(this);
|
||||
_machine.AddNode<FsmPatchInit>();
|
||||
_machine.AddNode<FsmUpdateVersion>();
|
||||
_machine.AddNode<FsmUpdateManifest>();
|
||||
_machine.AddNode<FsmCreateDownloader>();
|
||||
_machine.AddNode<FsmDownloadFiles>();
|
||||
_machine.AddNode<FsmDownloadOver>();
|
||||
_machine.AddNode<FsmClearCache>();
|
||||
_machine.AddNode<FsmPatchDone>();
|
||||
_machine.Run<FsmPatchInit>();
|
||||
}
|
||||
else
|
||||
{
|
||||
Debug.LogWarning("补丁更新已经正在进行中!");
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 接收事件
|
||||
/// </summary>
|
||||
private void OnHandleEventMessage(IEventMessage message)
|
||||
{
|
||||
if (message is UserEventDefine.UserBeginDownloadWebFiles)
|
||||
{
|
||||
_machine.ChangeState<FsmDownloadFiles>();
|
||||
}
|
||||
else if (message is UserEventDefine.UserTryUpdatePackageVersion)
|
||||
{
|
||||
_machine.ChangeState<FsmUpdateVersion>();
|
||||
}
|
||||
else if (message is UserEventDefine.UserTryUpdatePatchManifest)
|
||||
{
|
||||
_machine.ChangeState<FsmUpdateManifest>();
|
||||
}
|
||||
else if (message is UserEventDefine.UserTryDownloadWebFiles)
|
||||
{
|
||||
_machine.ChangeState<FsmCreateDownloader>();
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new System.NotImplementedException($"{message.GetType()}");
|
||||
}
|
||||
}
|
||||
}
|
|
@ -3,6 +3,7 @@ using System.Collections;
|
|||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
using UniFramework.Event;
|
||||
|
||||
public class PatchWindow : MonoBehaviour
|
||||
{
|
||||
|
@ -69,12 +70,12 @@ public class PatchWindow : MonoBehaviour
|
|||
_messageBoxObj = transform.Find("UIWindow/MessgeBox").gameObject;
|
||||
_messageBoxObj.SetActive(false);
|
||||
|
||||
_eventGroup.AddListener<PatchEventDefine.PatchStatesChange>(OnHandleEvent);
|
||||
_eventGroup.AddListener<PatchEventDefine.FoundUpdateFiles>(OnHandleEvent);
|
||||
_eventGroup.AddListener<PatchEventDefine.DownloadProgressUpdate>(OnHandleEvent);
|
||||
_eventGroup.AddListener<PatchEventDefine.StaticVersionUpdateFailed>(OnHandleEvent);
|
||||
_eventGroup.AddListener<PatchEventDefine.PatchManifestUpdateFailed>(OnHandleEvent);
|
||||
_eventGroup.AddListener<PatchEventDefine.WebFileDownloadFailed>(OnHandleEvent);
|
||||
_eventGroup.AddListener<PatchEventDefine.PatchStatesChange>(OnHandleEventMessage);
|
||||
_eventGroup.AddListener<PatchEventDefine.FoundUpdateFiles>(OnHandleEventMessage);
|
||||
_eventGroup.AddListener<PatchEventDefine.DownloadProgressUpdate>(OnHandleEventMessage);
|
||||
_eventGroup.AddListener<PatchEventDefine.PackageVersionUpdateFailed>(OnHandleEventMessage);
|
||||
_eventGroup.AddListener<PatchEventDefine.PatchManifestUpdateFailed>(OnHandleEventMessage);
|
||||
_eventGroup.AddListener<PatchEventDefine.WebFileDownloadFailed>(OnHandleEventMessage);
|
||||
}
|
||||
void OnDestroy()
|
||||
{
|
||||
|
@ -84,72 +85,61 @@ public class PatchWindow : MonoBehaviour
|
|||
/// <summary>
|
||||
/// 接收事件
|
||||
/// </summary>
|
||||
private void OnHandleEvent(IEventMessage msg)
|
||||
private void OnHandleEventMessage(IEventMessage message)
|
||||
{
|
||||
if (msg is PatchEventDefine.PatchStatesChange)
|
||||
if (message is PatchEventDefine.PatchStatesChange)
|
||||
{
|
||||
var message = msg as PatchEventDefine.PatchStatesChange;
|
||||
if (message.CurrentStates == EPatchStates.UpdateStaticVersion)
|
||||
_tips.text = "Update static version.";
|
||||
else if (message.CurrentStates == EPatchStates.UpdateManifest)
|
||||
_tips.text = "Update patch manifest.";
|
||||
else if (message.CurrentStates == EPatchStates.CreateDownloader)
|
||||
_tips.text = "Check download contents.";
|
||||
else if (message.CurrentStates == EPatchStates.DownloadWebFiles)
|
||||
_tips.text = "Downloading patch files.";
|
||||
else if (message.CurrentStates == EPatchStates.PatchDone)
|
||||
_tips.text = "Welcome to game world !";
|
||||
else
|
||||
throw new NotImplementedException(message.CurrentStates.ToString());
|
||||
var msg = message as PatchEventDefine.PatchStatesChange;
|
||||
_tips.text = msg.Tips;
|
||||
}
|
||||
else if (msg is PatchEventDefine.FoundUpdateFiles)
|
||||
else if (message is PatchEventDefine.FoundUpdateFiles)
|
||||
{
|
||||
var message = msg as PatchEventDefine.FoundUpdateFiles;
|
||||
var msg = message as PatchEventDefine.FoundUpdateFiles;
|
||||
System.Action callback = () =>
|
||||
{
|
||||
PatchManager.HandleOperation(EPatchOperation.BeginDownloadWebFiles);
|
||||
UserEventDefine.UserBeginDownloadWebFiles.SendEventMessage();
|
||||
};
|
||||
float sizeMB = message.TotalSizeBytes / 1048576f;
|
||||
float sizeMB = msg.TotalSizeBytes / 1048576f;
|
||||
sizeMB = Mathf.Clamp(sizeMB, 0.1f, float.MaxValue);
|
||||
string totalSizeMB = sizeMB.ToString("f1");
|
||||
ShowMessageBox($"Found update patch files, Total count {message.TotalCount} Total szie {totalSizeMB}MB", callback);
|
||||
ShowMessageBox($"Found update patch files, Total count {msg.TotalCount} Total szie {totalSizeMB}MB", callback);
|
||||
}
|
||||
else if (msg is PatchEventDefine.DownloadProgressUpdate)
|
||||
else if (message is PatchEventDefine.DownloadProgressUpdate)
|
||||
{
|
||||
var message = msg as PatchEventDefine.DownloadProgressUpdate;
|
||||
_slider.value = (float)message.CurrentDownloadCount / message.TotalDownloadCount;
|
||||
string currentSizeMB = (message.CurrentDownloadSizeBytes / 1048576f).ToString("f1");
|
||||
string totalSizeMB = (message.TotalDownloadSizeBytes / 1048576f).ToString("f1");
|
||||
_tips.text = $"{message.CurrentDownloadCount}/{message.TotalDownloadCount} {currentSizeMB}MB/{totalSizeMB}MB";
|
||||
var msg = message as PatchEventDefine.DownloadProgressUpdate;
|
||||
_slider.value = (float)msg.CurrentDownloadCount / msg.TotalDownloadCount;
|
||||
string currentSizeMB = (msg.CurrentDownloadSizeBytes / 1048576f).ToString("f1");
|
||||
string totalSizeMB = (msg.TotalDownloadSizeBytes / 1048576f).ToString("f1");
|
||||
_tips.text = $"{msg.CurrentDownloadCount}/{msg.TotalDownloadCount} {currentSizeMB}MB/{totalSizeMB}MB";
|
||||
}
|
||||
else if (msg is PatchEventDefine.StaticVersionUpdateFailed)
|
||||
else if (message is PatchEventDefine.PackageVersionUpdateFailed)
|
||||
{
|
||||
System.Action callback = () =>
|
||||
{
|
||||
PatchManager.HandleOperation(EPatchOperation.TryUpdateStaticVersion);
|
||||
UserEventDefine.UserTryUpdatePackageVersion.SendEventMessage();
|
||||
};
|
||||
ShowMessageBox($"Failed to update static version, please check the network status.", callback);
|
||||
}
|
||||
else if (msg is PatchEventDefine.PatchManifestUpdateFailed)
|
||||
else if (message is PatchEventDefine.PatchManifestUpdateFailed)
|
||||
{
|
||||
System.Action callback = () =>
|
||||
{
|
||||
PatchManager.HandleOperation(EPatchOperation.TryUpdatePatchManifest);
|
||||
UserEventDefine.UserTryUpdatePatchManifest.SendEventMessage();
|
||||
};
|
||||
ShowMessageBox($"Failed to update patch manifest, please check the network status.", callback);
|
||||
}
|
||||
else if (msg is PatchEventDefine.WebFileDownloadFailed)
|
||||
else if (message is PatchEventDefine.WebFileDownloadFailed)
|
||||
{
|
||||
var message = msg as PatchEventDefine.WebFileDownloadFailed;
|
||||
var msg = message as PatchEventDefine.WebFileDownloadFailed;
|
||||
System.Action callback = () =>
|
||||
{
|
||||
PatchManager.HandleOperation(EPatchOperation.TryDownloadWebFiles);
|
||||
UserEventDefine.UserTryDownloadWebFiles.SendEventMessage();
|
||||
};
|
||||
ShowMessageBox($"Failed to download file : {message.FileName}", callback);
|
||||
ShowMessageBox($"Failed to download file : {msg.FileName}", callback);
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new System.NotImplementedException($"{msg.GetType()}");
|
||||
throw new System.NotImplementedException($"{message.GetType()}");
|
||||
}
|
||||
}
|
||||
|
|
@ -1,26 +0,0 @@
|
|||
|
||||
/// <summary>
|
||||
/// 用户层反馈的操作方式
|
||||
/// </summary>
|
||||
public enum EPatchOperation
|
||||
{
|
||||
/// <summary>
|
||||
/// 开始下载网络文件
|
||||
/// </summary>
|
||||
BeginDownloadWebFiles,
|
||||
|
||||
/// <summary>
|
||||
/// 尝试再次更新静态版本
|
||||
/// </summary>
|
||||
TryUpdateStaticVersion,
|
||||
|
||||
/// <summary>
|
||||
/// 尝试再次更新补丁清单
|
||||
/// </summary>
|
||||
TryUpdatePatchManifest,
|
||||
|
||||
/// <summary>
|
||||
/// 尝试再次下载网络文件
|
||||
/// </summary>
|
||||
TryDownloadWebFiles,
|
||||
}
|
|
@ -1,11 +0,0 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 219b7f0e5d04432429b5fcb2207fa23b
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -1,31 +0,0 @@
|
|||
|
||||
/// <summary>
|
||||
/// 补丁系统更新状态
|
||||
/// </summary>
|
||||
public enum EPatchStates
|
||||
{
|
||||
/// <summary>
|
||||
/// 更新静态的资源版本
|
||||
/// </summary>
|
||||
UpdateStaticVersion,
|
||||
|
||||
/// <summary>
|
||||
/// 更新补丁清单
|
||||
/// </summary>
|
||||
UpdateManifest,
|
||||
|
||||
/// <summary>
|
||||
/// 创建下载器
|
||||
/// </summary>
|
||||
CreateDownloader,
|
||||
|
||||
/// <summary>
|
||||
/// 下载远端文件
|
||||
/// </summary>
|
||||
DownloadWebFiles,
|
||||
|
||||
/// <summary>
|
||||
/// 补丁流程完毕
|
||||
/// </summary>
|
||||
PatchDone,
|
||||
}
|
|
@ -1,11 +0,0 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 6f1f35b77d2285045b35f588be8f7236
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -1,49 +0,0 @@
|
|||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using YooAsset;
|
||||
|
||||
/// <summary>
|
||||
/// 创建文件下载器
|
||||
/// </summary>
|
||||
public class FsmCreateDownloader : IFsmNode
|
||||
{
|
||||
public string Name { private set; get; } = nameof(FsmCreateDownloader);
|
||||
|
||||
void IFsmNode.OnEnter()
|
||||
{
|
||||
Debug.Log("创建补丁下载器!");
|
||||
PatchEventDispatcher.SendPatchStepsChangeMsg(EPatchStates.CreateDownloader);
|
||||
GameBoot.Instance.StartCoroutine(CreateDownloader());
|
||||
}
|
||||
void IFsmNode.OnUpdate()
|
||||
{
|
||||
}
|
||||
void IFsmNode.OnExit()
|
||||
{
|
||||
}
|
||||
|
||||
IEnumerator CreateDownloader()
|
||||
{
|
||||
yield return new WaitForSecondsRealtime(0.5f);
|
||||
|
||||
int downloadingMaxNum = 10;
|
||||
int failedTryAgain = 3;
|
||||
PatchManager.Downloader = YooAssets.CreatePatchDownloader(downloadingMaxNum, failedTryAgain);
|
||||
if (PatchManager.Downloader.TotalDownloadCount == 0)
|
||||
{
|
||||
Debug.Log("没有发现需要下载的资源");
|
||||
FsmManager.Transition(nameof(FsmPatchDone));
|
||||
}
|
||||
else
|
||||
{
|
||||
Debug.Log($"一共发现了{PatchManager.Downloader.TotalDownloadCount}个资源需要更新下载。");
|
||||
|
||||
// 发现新更新文件后,挂起流程系统
|
||||
// 注意:开发者需要在下载前检测磁盘空间不足
|
||||
int totalDownloadCount = PatchManager.Downloader.TotalDownloadCount;
|
||||
long totalDownloadBytes = PatchManager.Downloader.TotalDownloadBytes;
|
||||
PatchEventDispatcher.SendFoundUpdateFilesMsg(totalDownloadCount, totalDownloadBytes);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,41 +0,0 @@
|
|||
using System.Collections;
|
||||
using UnityEngine;
|
||||
using YooAsset;
|
||||
|
||||
/// <summary>
|
||||
/// 下载更新文件
|
||||
/// </summary>
|
||||
public class FsmDownloadFiles : IFsmNode
|
||||
{
|
||||
public string Name { private set; get; } = nameof(FsmDownloadFiles);
|
||||
|
||||
void IFsmNode.OnEnter()
|
||||
{
|
||||
Debug.Log("开始下载补丁文件!");
|
||||
PatchEventDispatcher.SendPatchStepsChangeMsg(EPatchStates.DownloadWebFiles);
|
||||
GameBoot.Instance.StartCoroutine(BeginDownload());
|
||||
}
|
||||
void IFsmNode.OnUpdate()
|
||||
{
|
||||
}
|
||||
void IFsmNode.OnExit()
|
||||
{
|
||||
}
|
||||
|
||||
private IEnumerator BeginDownload()
|
||||
{
|
||||
var downloader = PatchManager.Downloader;
|
||||
|
||||
// 注册下载回调
|
||||
downloader.OnDownloadErrorCallback = PatchEventDispatcher.SendWebFileDownloadFailedMsg;
|
||||
downloader.OnDownloadProgressCallback = PatchEventDispatcher.SendDownloadProgressUpdateMsg;
|
||||
downloader.BeginDownload();
|
||||
yield return downloader;
|
||||
|
||||
// 检测下载结果
|
||||
if (downloader.Status != EOperationStatus.Succeed)
|
||||
yield break;
|
||||
|
||||
FsmManager.Transition(nameof(FsmPatchDone));
|
||||
}
|
||||
}
|
|
@ -1,24 +0,0 @@
|
|||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
/// <summary>
|
||||
/// 更新完毕
|
||||
/// </summary>
|
||||
internal class FsmPatchDone : IFsmNode
|
||||
{
|
||||
public string Name { private set; get; } = nameof(FsmPatchDone);
|
||||
|
||||
void IFsmNode.OnEnter()
|
||||
{
|
||||
Debug.Log("补丁流程更新完毕!");
|
||||
PatchEventDispatcher.SendPatchStepsChangeMsg(EPatchStates.PatchDone);
|
||||
FsmManager.Transition(nameof(FsmClearCache));
|
||||
}
|
||||
void IFsmNode.OnUpdate()
|
||||
{
|
||||
}
|
||||
void IFsmNode.OnExit()
|
||||
{
|
||||
}
|
||||
}
|
|
@ -1,26 +0,0 @@
|
|||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
/// <summary>
|
||||
/// 初始化工作
|
||||
/// </summary>
|
||||
internal class FsmPatchInit : IFsmNode
|
||||
{
|
||||
public string Name { private set; get; } = nameof(FsmPatchInit);
|
||||
|
||||
void IFsmNode.OnEnter()
|
||||
{
|
||||
// 加载更新面板
|
||||
var go = Resources.Load<GameObject>("PatchWindow");
|
||||
GameObject.Instantiate(go);
|
||||
|
||||
FsmManager.Transition(nameof(FsmUpdateVersion));
|
||||
}
|
||||
void IFsmNode.OnUpdate()
|
||||
{
|
||||
}
|
||||
void IFsmNode.OnExit()
|
||||
{
|
||||
}
|
||||
}
|
|
@ -1,23 +0,0 @@
|
|||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
/// <summary>
|
||||
/// 开始游戏
|
||||
/// </summary>
|
||||
internal class FsmStartGame : IFsmNode
|
||||
{
|
||||
public string Name { private set; get; } = nameof(FsmStartGame);
|
||||
|
||||
void IFsmNode.OnEnter()
|
||||
{
|
||||
Debug.Log("开始游戏!");
|
||||
YooAsset.YooAssets.LoadSceneAsync("scene_home");
|
||||
}
|
||||
void IFsmNode.OnUpdate()
|
||||
{
|
||||
}
|
||||
void IFsmNode.OnExit()
|
||||
{
|
||||
}
|
||||
}
|
|
@ -1,11 +0,0 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 1c01a6c3b0dbdaf43ad5e31634eef386
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -1,44 +0,0 @@
|
|||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using YooAsset;
|
||||
|
||||
/// <summary>
|
||||
/// 更新补丁清单
|
||||
/// </summary>
|
||||
public class FsmUpdateManifest : IFsmNode
|
||||
{
|
||||
public string Name { private set; get; } = nameof(FsmUpdateManifest);
|
||||
|
||||
void IFsmNode.OnEnter()
|
||||
{
|
||||
Debug.Log("开始更新资源版本清单!");
|
||||
PatchEventDispatcher.SendPatchStepsChangeMsg(EPatchStates.UpdateManifest);
|
||||
GameBoot.Instance.StartCoroutine(UpdateManifest());
|
||||
}
|
||||
void IFsmNode.OnUpdate()
|
||||
{
|
||||
}
|
||||
void IFsmNode.OnExit()
|
||||
{
|
||||
}
|
||||
|
||||
private IEnumerator UpdateManifest()
|
||||
{
|
||||
yield return new WaitForSecondsRealtime(0.5f);
|
||||
|
||||
var package = YooAssets.GetAssetsPackage("DefaultPackage");
|
||||
var operation = package.UpdatePackageManifestAsync(PatchManager.PackageVersion, 30);
|
||||
yield return operation;
|
||||
|
||||
if(operation.Status == EOperationStatus.Succeed)
|
||||
{
|
||||
FsmManager.Transition(nameof(FsmCreateDownloader));
|
||||
}
|
||||
else
|
||||
{
|
||||
Debug.LogWarning(operation.Error);
|
||||
PatchEventDispatcher.SendPatchManifestUpdateFailedMsg();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,45 +0,0 @@
|
|||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using YooAsset;
|
||||
|
||||
/// <summary>
|
||||
/// 更新资源版本号
|
||||
/// </summary>
|
||||
internal class FsmUpdateVersion : IFsmNode
|
||||
{
|
||||
public string Name { private set; get; } = nameof(FsmUpdateVersion);
|
||||
|
||||
void IFsmNode.OnEnter()
|
||||
{
|
||||
Debug.Log("开始获取资源版本号!");
|
||||
PatchEventDispatcher.SendPatchStepsChangeMsg(EPatchStates.UpdateStaticVersion);
|
||||
GameBoot.Instance.StartCoroutine(GetStaticVersion());
|
||||
}
|
||||
void IFsmNode.OnUpdate()
|
||||
{
|
||||
}
|
||||
void IFsmNode.OnExit()
|
||||
{
|
||||
}
|
||||
|
||||
private IEnumerator GetStaticVersion()
|
||||
{
|
||||
yield return new WaitForSecondsRealtime(0.5f);
|
||||
|
||||
var package = YooAssets.GetAssetsPackage("DefaultPackage");
|
||||
var operation = package.UpdatePackageVersionAsync(30);
|
||||
yield return operation;
|
||||
|
||||
if (operation.Status == EOperationStatus.Succeed)
|
||||
{
|
||||
PatchManager.PackageVersion = operation.PackageVersion;
|
||||
FsmManager.Transition(nameof(FsmUpdateManifest));
|
||||
}
|
||||
else
|
||||
{
|
||||
Debug.LogWarning(operation.Error);
|
||||
PatchEventDispatcher.SendStaticVersionUpdateFailedMsg();
|
||||
}
|
||||
}
|
||||
}
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue