(client)feat:实现子弹定义以及生成,实现初始化动画,实现血条 #43
727
Client/Assets/Scenes/Initiate.unity
Normal file
727
Client/Assets/Scenes/Initiate.unity
Normal file
@ -0,0 +1,727 @@
|
|||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!29 &1
|
||||||
|
OcclusionCullingSettings:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
serializedVersion: 2
|
||||||
|
m_OcclusionBakeSettings:
|
||||||
|
smallestOccluder: 5
|
||||||
|
smallestHole: 0.25
|
||||||
|
backfaceThreshold: 100
|
||||||
|
m_SceneGUID: 00000000000000000000000000000000
|
||||||
|
m_OcclusionCullingData: {fileID: 0}
|
||||||
|
--- !u!104 &2
|
||||||
|
RenderSettings:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
serializedVersion: 10
|
||||||
|
m_Fog: 0
|
||||||
|
m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
|
||||||
|
m_FogMode: 3
|
||||||
|
m_FogDensity: 0.01
|
||||||
|
m_LinearFogStart: 0
|
||||||
|
m_LinearFogEnd: 300
|
||||||
|
m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1}
|
||||||
|
m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}
|
||||||
|
m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}
|
||||||
|
m_AmbientIntensity: 1
|
||||||
|
m_AmbientMode: 0
|
||||||
|
m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
|
||||||
|
m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0}
|
||||||
|
m_HaloStrength: 0.5
|
||||||
|
m_FlareStrength: 1
|
||||||
|
m_FlareFadeSpeed: 3
|
||||||
|
m_HaloTexture: {fileID: 0}
|
||||||
|
m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
|
||||||
|
m_DefaultReflectionMode: 0
|
||||||
|
m_DefaultReflectionResolution: 128
|
||||||
|
m_ReflectionBounces: 1
|
||||||
|
m_ReflectionIntensity: 1
|
||||||
|
m_CustomReflection: {fileID: 0}
|
||||||
|
m_Sun: {fileID: 0}
|
||||||
|
m_UseRadianceAmbientProbe: 0
|
||||||
|
--- !u!157 &3
|
||||||
|
LightmapSettings:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
serializedVersion: 13
|
||||||
|
m_BakeOnSceneLoad: 0
|
||||||
|
m_GISettings:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_BounceScale: 1
|
||||||
|
m_IndirectOutputScale: 1
|
||||||
|
m_AlbedoBoost: 1
|
||||||
|
m_EnvironmentLightingMode: 0
|
||||||
|
m_EnableBakedLightmaps: 1
|
||||||
|
m_EnableRealtimeLightmaps: 0
|
||||||
|
m_LightmapEditorSettings:
|
||||||
|
serializedVersion: 12
|
||||||
|
m_Resolution: 2
|
||||||
|
m_BakeResolution: 40
|
||||||
|
m_AtlasSize: 1024
|
||||||
|
m_AO: 0
|
||||||
|
m_AOMaxDistance: 1
|
||||||
|
m_CompAOExponent: 1
|
||||||
|
m_CompAOExponentDirect: 0
|
||||||
|
m_ExtractAmbientOcclusion: 0
|
||||||
|
m_Padding: 2
|
||||||
|
m_LightmapParameters: {fileID: 0}
|
||||||
|
m_LightmapsBakeMode: 1
|
||||||
|
m_TextureCompression: 1
|
||||||
|
m_ReflectionCompression: 2
|
||||||
|
m_MixedBakeMode: 2
|
||||||
|
m_BakeBackend: 1
|
||||||
|
m_PVRSampling: 1
|
||||||
|
m_PVRDirectSampleCount: 32
|
||||||
|
m_PVRSampleCount: 512
|
||||||
|
m_PVRBounces: 2
|
||||||
|
m_PVREnvironmentSampleCount: 256
|
||||||
|
m_PVREnvironmentReferencePointCount: 2048
|
||||||
|
m_PVRFilteringMode: 1
|
||||||
|
m_PVRDenoiserTypeDirect: 1
|
||||||
|
m_PVRDenoiserTypeIndirect: 1
|
||||||
|
m_PVRDenoiserTypeAO: 1
|
||||||
|
m_PVRFilterTypeDirect: 0
|
||||||
|
m_PVRFilterTypeIndirect: 0
|
||||||
|
m_PVRFilterTypeAO: 0
|
||||||
|
m_PVREnvironmentMIS: 1
|
||||||
|
m_PVRCulling: 1
|
||||||
|
m_PVRFilteringGaussRadiusDirect: 1
|
||||||
|
m_PVRFilteringGaussRadiusIndirect: 1
|
||||||
|
m_PVRFilteringGaussRadiusAO: 1
|
||||||
|
m_PVRFilteringAtrousPositionSigmaDirect: 0.5
|
||||||
|
m_PVRFilteringAtrousPositionSigmaIndirect: 2
|
||||||
|
m_PVRFilteringAtrousPositionSigmaAO: 1
|
||||||
|
m_ExportTrainingData: 0
|
||||||
|
m_TrainingDataDestination: TrainingData
|
||||||
|
m_LightProbeSampleCountMultiplier: 4
|
||||||
|
m_LightingDataAsset: {fileID: 20201, guid: 0000000000000000f000000000000000, type: 0}
|
||||||
|
m_LightingSettings: {fileID: 0}
|
||||||
|
--- !u!196 &4
|
||||||
|
NavMeshSettings:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_BuildSettings:
|
||||||
|
serializedVersion: 3
|
||||||
|
agentTypeID: 0
|
||||||
|
agentRadius: 0.5
|
||||||
|
agentHeight: 2
|
||||||
|
agentSlope: 45
|
||||||
|
agentClimb: 0.4
|
||||||
|
ledgeDropHeight: 0
|
||||||
|
maxJumpAcrossDistance: 0
|
||||||
|
minRegionArea: 2
|
||||||
|
manualCellSize: 0
|
||||||
|
cellSize: 0.16666667
|
||||||
|
manualTileSize: 0
|
||||||
|
tileSize: 256
|
||||||
|
buildHeightMesh: 0
|
||||||
|
maxJobWorkers: 0
|
||||||
|
preserveTilesOutsideBounds: 0
|
||||||
|
debug:
|
||||||
|
m_Flags: 0
|
||||||
|
m_NavMeshData: {fileID: 0}
|
||||||
|
--- !u!1 &400281624
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 400281627}
|
||||||
|
- component: {fileID: 400281626}
|
||||||
|
- component: {fileID: 400281625}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: EventSystem
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!114 &400281625
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 400281624}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 01614664b831546d2ae94a42149d80ac, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
m_SendPointerHoverToParent: 1
|
||||||
|
m_MoveRepeatDelay: 0.5
|
||||||
|
m_MoveRepeatRate: 0.1
|
||||||
|
m_XRTrackingOrigin: {fileID: 0}
|
||||||
|
m_ActionsAsset: {fileID: -944628639613478452, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
|
||||||
|
m_PointAction: {fileID: -1654692200621890270, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
|
||||||
|
m_MoveAction: {fileID: -8784545083839296357, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
|
||||||
|
m_SubmitAction: {fileID: 392368643174621059, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
|
||||||
|
m_CancelAction: {fileID: 7727032971491509709, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
|
||||||
|
m_LeftClickAction: {fileID: 3001919216989983466, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
|
||||||
|
m_MiddleClickAction: {fileID: -2185481485913320682, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
|
||||||
|
m_RightClickAction: {fileID: -4090225696740746782, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
|
||||||
|
m_ScrollWheelAction: {fileID: 6240969308177333660, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
|
||||||
|
m_TrackedDevicePositionAction: {fileID: 6564999863303420839, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
|
||||||
|
m_TrackedDeviceOrientationAction: {fileID: 7970375526676320489, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
|
||||||
|
m_DeselectOnBackgroundClick: 1
|
||||||
|
m_PointerBehavior: 0
|
||||||
|
m_CursorLockBehavior: 0
|
||||||
|
m_ScrollDeltaPerTick: 6
|
||||||
|
--- !u!114 &400281626
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 400281624}
|
||||||
|
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 &400281627
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 400281624}
|
||||||
|
serializedVersion: 2
|
||||||
|
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||||
|
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_ConstrainProportionsScale: 0
|
||||||
|
m_Children: []
|
||||||
|
m_Father: {fileID: 0}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!1 &521385224
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 521385225}
|
||||||
|
- component: {fileID: 521385228}
|
||||||
|
- component: {fileID: 521385227}
|
||||||
|
- component: {fileID: 521385226}
|
||||||
|
m_Layer: 5
|
||||||
|
m_Name: background
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &521385225
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 521385224}
|
||||||
|
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||||
|
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_ConstrainProportionsScale: 0
|
||||||
|
m_Children: []
|
||||||
|
m_Father: {fileID: 668892717}
|
||||||
|
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!114 &521385226
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 521385224}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 8df3d16a358d74644b86e92ca5177fa1, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
dir: 1
|
||||||
|
color1:
|
||||||
|
serializedVersion: 2
|
||||||
|
rgba: 4278190080
|
||||||
|
color2:
|
||||||
|
serializedVersion: 2
|
||||||
|
rgba: 4278190080
|
||||||
|
range: 0
|
||||||
|
isFlip: 0
|
||||||
|
--- !u!114 &521385227
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 521385224}
|
||||||
|
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_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
m_Maskable: 1
|
||||||
|
m_OnCullStateChanged:
|
||||||
|
m_PersistentCalls:
|
||||||
|
m_Calls: []
|
||||||
|
m_Sprite: {fileID: 0}
|
||||||
|
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!222 &521385228
|
||||||
|
CanvasRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 521385224}
|
||||||
|
m_CullTransparentMesh: 1
|
||||||
|
--- !u!1 &668892713
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 668892717}
|
||||||
|
- component: {fileID: 668892716}
|
||||||
|
- component: {fileID: 668892715}
|
||||||
|
- component: {fileID: 668892714}
|
||||||
|
m_Layer: 5
|
||||||
|
m_Name: Canvas
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!114 &668892714
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 668892713}
|
||||||
|
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 &668892715
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 668892713}
|
||||||
|
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
|
||||||
|
m_PresetInfoIsWorld: 0
|
||||||
|
--- !u!223 &668892716
|
||||||
|
Canvas:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 668892713}
|
||||||
|
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_VertexColorAlwaysGammaSpace: 0
|
||||||
|
m_AdditionalShaderChannelsFlag: 25
|
||||||
|
m_UpdateRectTransformForStandalone: 0
|
||||||
|
m_SortingLayerID: 0
|
||||||
|
m_SortingOrder: 0
|
||||||
|
m_TargetDisplay: 0
|
||||||
|
--- !u!224 &668892717
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 668892713}
|
||||||
|
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_ConstrainProportionsScale: 0
|
||||||
|
m_Children:
|
||||||
|
- {fileID: 521385225}
|
||||||
|
- {fileID: 1145531078}
|
||||||
|
m_Father: {fileID: 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!1 &1145531077
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 1145531078}
|
||||||
|
- component: {fileID: 1145531080}
|
||||||
|
- component: {fileID: 1145531079}
|
||||||
|
m_Layer: 5
|
||||||
|
m_Name: describe
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &1145531078
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1145531077}
|
||||||
|
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||||
|
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_ConstrainProportionsScale: 0
|
||||||
|
m_Children: []
|
||||||
|
m_Father: {fileID: 668892717}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
m_AnchorMin: {x: 0, y: 0.5}
|
||||||
|
m_AnchorMax: {x: 1, y: 0.5}
|
||||||
|
m_AnchoredPosition: {x: 0, y: 0}
|
||||||
|
m_SizeDelta: {x: 0, y: 50}
|
||||||
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
|
--- !u!114 &1145531079
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1145531077}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
m_Material: {fileID: 0}
|
||||||
|
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
m_RaycastTarget: 1
|
||||||
|
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
m_Maskable: 1
|
||||||
|
m_OnCullStateChanged:
|
||||||
|
m_PersistentCalls:
|
||||||
|
m_Calls: []
|
||||||
|
m_text: Loading
|
||||||
|
m_isRightToLeft: 0
|
||||||
|
m_fontAsset: {fileID: 11400000, guid: 317edb274e9c5144a9916937bdbf7716, type: 2}
|
||||||
|
m_sharedMaterial: {fileID: -1361428157011412921, guid: 317edb274e9c5144a9916937bdbf7716, type: 2}
|
||||||
|
m_fontSharedMaterials: []
|
||||||
|
m_fontMaterial: {fileID: 0}
|
||||||
|
m_fontMaterials: []
|
||||||
|
m_fontColor32:
|
||||||
|
serializedVersion: 2
|
||||||
|
rgba: 4279458958
|
||||||
|
m_fontColor: {r: 0.5566038, g: 0.35952783, b: 0.07613921, a: 1}
|
||||||
|
m_enableVertexGradient: 0
|
||||||
|
m_colorMode: 3
|
||||||
|
m_fontColorGradient:
|
||||||
|
topLeft: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
topRight: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
bottomRight: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
m_fontColorGradientPreset: {fileID: 0}
|
||||||
|
m_spriteAsset: {fileID: 0}
|
||||||
|
m_tintAllSprites: 0
|
||||||
|
m_StyleSheet: {fileID: 0}
|
||||||
|
m_TextStyleHashCode: -1183493901
|
||||||
|
m_overrideHtmlColors: 0
|
||||||
|
m_faceColor:
|
||||||
|
serializedVersion: 2
|
||||||
|
rgba: 4294967295
|
||||||
|
m_fontSize: 36
|
||||||
|
m_fontSizeBase: 36
|
||||||
|
m_fontWeight: 400
|
||||||
|
m_enableAutoSizing: 0
|
||||||
|
m_fontSizeMin: 18
|
||||||
|
m_fontSizeMax: 72
|
||||||
|
m_fontStyle: 0
|
||||||
|
m_HorizontalAlignment: 2
|
||||||
|
m_VerticalAlignment: 512
|
||||||
|
m_textAlignment: 65535
|
||||||
|
m_characterSpacing: 0
|
||||||
|
m_wordSpacing: 0
|
||||||
|
m_lineSpacing: 0
|
||||||
|
m_lineSpacingMax: 0
|
||||||
|
m_paragraphSpacing: 0
|
||||||
|
m_charWidthMaxAdj: 0
|
||||||
|
m_TextWrappingMode: 1
|
||||||
|
m_wordWrappingRatios: 0.4
|
||||||
|
m_overflowMode: 0
|
||||||
|
m_linkedTextComponent: {fileID: 0}
|
||||||
|
parentLinkedComponent: {fileID: 0}
|
||||||
|
m_enableKerning: 0
|
||||||
|
m_ActiveFontFeatures: 6e72656b
|
||||||
|
m_enableExtraPadding: 0
|
||||||
|
checkPaddingRequired: 0
|
||||||
|
m_isRichText: 1
|
||||||
|
m_EmojiFallbackSupport: 1
|
||||||
|
m_parseCtrlCharacters: 1
|
||||||
|
m_isOrthographic: 1
|
||||||
|
m_isCullingEnabled: 0
|
||||||
|
m_horizontalMapping: 0
|
||||||
|
m_verticalMapping: 0
|
||||||
|
m_uvLineOffset: 0
|
||||||
|
m_geometrySortingOrder: 0
|
||||||
|
m_IsTextObjectScaleStatic: 0
|
||||||
|
m_VertexBufferAutoSizeReduction: 0
|
||||||
|
m_useMaxVisibleDescender: 1
|
||||||
|
m_pageToDisplay: 1
|
||||||
|
m_margin: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
m_isUsingLegacyAnimationComponent: 0
|
||||||
|
m_isVolumetricText: 0
|
||||||
|
m_hasFontAssetChanged: 0
|
||||||
|
m_baseMaterial: {fileID: 0}
|
||||||
|
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
--- !u!222 &1145531080
|
||||||
|
CanvasRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1145531077}
|
||||||
|
m_CullTransparentMesh: 1
|
||||||
|
--- !u!1 &1273116157
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 1273116161}
|
||||||
|
- component: {fileID: 1273116160}
|
||||||
|
- component: {fileID: 1273116159}
|
||||||
|
- component: {fileID: 1273116158}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: Camera
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!114 &1273116158
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1273116157}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: a79441f348de89743a2939f4d699eac1, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
m_RenderShadows: 1
|
||||||
|
m_RequiresDepthTextureOption: 2
|
||||||
|
m_RequiresOpaqueTextureOption: 2
|
||||||
|
m_CameraType: 0
|
||||||
|
m_Cameras: []
|
||||||
|
m_RendererIndex: -1
|
||||||
|
m_VolumeLayerMask:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 1
|
||||||
|
m_VolumeTrigger: {fileID: 0}
|
||||||
|
m_VolumeFrameworkUpdateModeOption: 2
|
||||||
|
m_RenderPostProcessing: 0
|
||||||
|
m_Antialiasing: 0
|
||||||
|
m_AntialiasingQuality: 2
|
||||||
|
m_StopNaN: 0
|
||||||
|
m_Dithering: 0
|
||||||
|
m_ClearDepth: 1
|
||||||
|
m_AllowXRRendering: 1
|
||||||
|
m_AllowHDROutput: 1
|
||||||
|
m_UseScreenCoordOverride: 0
|
||||||
|
m_ScreenSizeOverride: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
m_ScreenCoordScaleBias: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
m_RequiresDepthTexture: 0
|
||||||
|
m_RequiresColorTexture: 0
|
||||||
|
m_Version: 2
|
||||||
|
m_TaaSettings:
|
||||||
|
m_Quality: 3
|
||||||
|
m_FrameInfluence: 0.1
|
||||||
|
m_JitterScale: 1
|
||||||
|
m_MipBias: 0
|
||||||
|
m_VarianceClampScale: 0.9
|
||||||
|
m_ContrastAdaptiveSharpening: 0
|
||||||
|
--- !u!81 &1273116159
|
||||||
|
AudioListener:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1273116157}
|
||||||
|
m_Enabled: 1
|
||||||
|
--- !u!20 &1273116160
|
||||||
|
Camera:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1273116157}
|
||||||
|
m_Enabled: 1
|
||||||
|
serializedVersion: 2
|
||||||
|
m_ClearFlags: 2
|
||||||
|
m_BackGroundColor: {r: 0.2924528, g: 0.2924528, b: 0.2924528, a: 0}
|
||||||
|
m_projectionMatrixMode: 1
|
||||||
|
m_GateFitMode: 2
|
||||||
|
m_FOVAxisMode: 0
|
||||||
|
m_Iso: 200
|
||||||
|
m_ShutterSpeed: 0.005
|
||||||
|
m_Aperture: 16
|
||||||
|
m_FocusDistance: 10
|
||||||
|
m_FocalLength: 50
|
||||||
|
m_BladeCount: 5
|
||||||
|
m_Curvature: {x: 2, y: 11}
|
||||||
|
m_BarrelClipping: 0.25
|
||||||
|
m_Anamorphism: 0
|
||||||
|
m_SensorSize: {x: 36, y: 24}
|
||||||
|
m_LensShift: {x: 0, y: 0}
|
||||||
|
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: 12.124355
|
||||||
|
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 &1273116161
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1273116157}
|
||||||
|
serializedVersion: 2
|
||||||
|
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||||
|
m_LocalPosition: {x: 0, y: 1, z: -10}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_ConstrainProportionsScale: 0
|
||||||
|
m_Children: []
|
||||||
|
m_Father: {fileID: 0}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!1 &1848984427
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 1848984428}
|
||||||
|
- component: {fileID: 1848984429}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: Launcher
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &1848984428
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1848984427}
|
||||||
|
serializedVersion: 2
|
||||||
|
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||||
|
m_LocalPosition: {x: 746.0081, y: 502.1965, z: 0}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_ConstrainProportionsScale: 0
|
||||||
|
m_Children: []
|
||||||
|
m_Father: {fileID: 0}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!114 &1848984429
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1848984427}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 1966ff90f1854aee9ca89d700abef90d, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
progressBar: {fileID: 521385226}
|
||||||
|
describeText: {fileID: 1145531079}
|
||||||
|
--- !u!1660057539 &9223372036854775807
|
||||||
|
SceneRoots:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_Roots:
|
||||||
|
- {fileID: 1273116161}
|
||||||
|
- {fileID: 668892717}
|
||||||
|
- {fileID: 400281627}
|
||||||
|
- {fileID: 1848984428}
|
7
Client/Assets/Scenes/Initiate.unity.meta
Normal file
7
Client/Assets/Scenes/Initiate.unity.meta
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 843cfe07c63263c42bae7362250d568e
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
151
Client/Assets/Scripts/Base/GradientColor.cs
Normal file
151
Client/Assets/Scripts/Base/GradientColor.cs
Normal file
@ -0,0 +1,151 @@
|
|||||||
|
using System;
|
||||||
|
using UnityEngine;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using UnityEngine.UI;
|
||||||
|
|
||||||
|
namespace Base
|
||||||
|
{
|
||||||
|
// 定义渐变方向枚举
|
||||||
|
[AddComponentMenu("UI/Effects/Gradient")]
|
||||||
|
public enum Dir
|
||||||
|
{
|
||||||
|
Horizontal, // 水平方向
|
||||||
|
Vertical, // 垂直方向
|
||||||
|
}
|
||||||
|
|
||||||
|
// 自定义梯度效果类,继承自BaseMeshEffect
|
||||||
|
public class Gradient : BaseMeshEffect
|
||||||
|
{
|
||||||
|
[SerializeField] // 序列化字段,可在Inspector中编辑
|
||||||
|
private Dir dir = Dir.Vertical; // 渐变方向,默认垂直
|
||||||
|
|
||||||
|
[SerializeField]
|
||||||
|
public Color32 color1 = Color.white; // 渐变起始颜色,默认白色
|
||||||
|
|
||||||
|
[SerializeField]
|
||||||
|
public Color32 color2 = Color.white; // 渐变结束颜色,默认白色
|
||||||
|
|
||||||
|
[SerializeField]
|
||||||
|
private float range = 0f; // 渐变范围,控制颜色的过渡区域,默认无范围(完全渐变)
|
||||||
|
|
||||||
|
[SerializeField]
|
||||||
|
private bool isFlip = false; // 是否翻转渐变方向,默认不翻转
|
||||||
|
|
||||||
|
|
||||||
|
public void Refresh()
|
||||||
|
{
|
||||||
|
graphic.SetVerticesDirty();
|
||||||
|
}
|
||||||
|
|
||||||
|
// 重写ModifyMesh方法,用于修改UI元素的网格
|
||||||
|
public override void ModifyMesh(VertexHelper vh)
|
||||||
|
{
|
||||||
|
if (!IsActive()) // 如果组件未激活,则不执行后续操作
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
var count = vh.currentVertCount; // 获取当前顶点数量
|
||||||
|
if (count > 0) // 如果有顶点,则进行处理
|
||||||
|
{
|
||||||
|
var vertices = new List<UIVertex>(); // 创建顶点列表
|
||||||
|
|
||||||
|
// 遍历所有顶点并添加到列表中
|
||||||
|
for (var i = 0; i < count; i++)
|
||||||
|
{
|
||||||
|
var uIVertex = new UIVertex();
|
||||||
|
vh.PopulateUIVertex(ref uIVertex, i); // 填充顶点信息
|
||||||
|
vertices.Add(uIVertex);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 根据渐变方向调用相应的绘制方法
|
||||||
|
switch (dir)
|
||||||
|
{
|
||||||
|
case Dir.Horizontal:
|
||||||
|
DrawHorizontal(vh, vertices, count);
|
||||||
|
break;
|
||||||
|
case Dir.Vertical:
|
||||||
|
DrawVertical(vh, vertices, count);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
throw new ArgumentOutOfRangeException();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 绘制垂直方向的渐变
|
||||||
|
private void DrawVertical(VertexHelper vh, List<UIVertex> vertices, int count)
|
||||||
|
{
|
||||||
|
// 初始化顶部和底部Y坐标
|
||||||
|
var topY = vertices[0].position.y;
|
||||||
|
var bottomY = vertices[0].position.y;
|
||||||
|
|
||||||
|
// 遍历所有顶点,找到最高和最低的Y坐标
|
||||||
|
for (var i = 0; i < count; i++)
|
||||||
|
{
|
||||||
|
var y = vertices[i].position.y;
|
||||||
|
if (y > topY) topY = y;
|
||||||
|
else if (y < bottomY) bottomY = y;
|
||||||
|
}
|
||||||
|
|
||||||
|
var height = topY - bottomY; // 计算高度差
|
||||||
|
|
||||||
|
// 遍历所有顶点,设置颜色渐变
|
||||||
|
for (var i = 0; i < count; i++)
|
||||||
|
{
|
||||||
|
var vertex = vertices[i];
|
||||||
|
Color32 color = Color.white;
|
||||||
|
|
||||||
|
// 根据是否翻转,计算当前顶点的颜色
|
||||||
|
if (isFlip)
|
||||||
|
{
|
||||||
|
color = Color32.Lerp(color2, color1, 1 - (vertex.position.y - bottomY) / height * (1f - range));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
color = Color32.Lerp(color2, color1, (vertex.position.y - bottomY) / height * (1f - range));
|
||||||
|
}
|
||||||
|
|
||||||
|
vertex.color = color; // 设置顶点颜色
|
||||||
|
vh.SetUIVertex(vertex, i); // 更新网格中的顶点
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 绘制水平方向的渐变
|
||||||
|
private void DrawHorizontal(VertexHelper vh, List<UIVertex> vertices, int count)
|
||||||
|
{
|
||||||
|
// 注意:这里应该是找到最左和最右的X坐标,注释中存在笔误
|
||||||
|
var leftX = vertices[0].position.x;
|
||||||
|
var rightX = vertices[0].position.x;
|
||||||
|
|
||||||
|
// 遍历所有顶点,找到最左和最右的X坐标
|
||||||
|
for (var i = 0; i < count; i++)
|
||||||
|
{
|
||||||
|
var x = vertices[i].position.x;
|
||||||
|
if (x > rightX) rightX = x;
|
||||||
|
else if (x < leftX) leftX = x;
|
||||||
|
}
|
||||||
|
|
||||||
|
var width = rightX - leftX; // 计算宽度差
|
||||||
|
|
||||||
|
// 遍历所有顶点,设置颜色渐变
|
||||||
|
for (var i = 0; i < count; i++)
|
||||||
|
{
|
||||||
|
var vertex = vertices[i];
|
||||||
|
Color32 color = Color.white;
|
||||||
|
|
||||||
|
// 根据是否翻转,计算当前顶点的颜色
|
||||||
|
if (isFlip)
|
||||||
|
{
|
||||||
|
color = Color32.Lerp(color2, color1, 1 - (vertex.position.x - leftX) / width * (1f - range));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
color = Color32.Lerp(color2, color1, (vertex.position.x - leftX) / width * (1f - range));
|
||||||
|
}
|
||||||
|
|
||||||
|
vertex.color = color; // 设置顶点颜色
|
||||||
|
vh.SetUIVertex(vertex, i); // 更新网格中的顶点
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
2
Client/Assets/Scripts/Base/GradientColor.cs.meta
Normal file
2
Client/Assets/Scripts/Base/GradientColor.cs.meta
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 8df3d16a358d74644b86e92ca5177fa1
|
104
Client/Assets/Scripts/Base/Launcher.cs
Normal file
104
Client/Assets/Scripts/Base/Launcher.cs
Normal file
@ -0,0 +1,104 @@
|
|||||||
|
using System.Collections;
|
||||||
|
using Logging;
|
||||||
|
using TMPro;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
namespace Base
|
||||||
|
{
|
||||||
|
public class Launcher : MonoBehaviour
|
||||||
|
{
|
||||||
|
public Gradient progressBar; // 渐变色条
|
||||||
|
public TMP_Text describeText; // 描述文本
|
||||||
|
|
||||||
|
private float _currentProgress = 0f; // 当前进度
|
||||||
|
private float duration = 0.5f; // 过渡时间
|
||||||
|
|
||||||
|
private string[] _loadingSteps =
|
||||||
|
{
|
||||||
|
"初始化日志", "正在载入定义", "正在加载图片资源", "正在切割瓦片", "正在加载区分派系",
|
||||||
|
"正在加载物品"
|
||||||
|
};
|
||||||
|
|
||||||
|
public float progress
|
||||||
|
{
|
||||||
|
set
|
||||||
|
{
|
||||||
|
_currentProgress = value;
|
||||||
|
if (value < 0.5f)
|
||||||
|
{
|
||||||
|
progressBar.color2 = Color.Lerp(Color.black, Color.white, value * 2);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
progressBar.color2 = Color.white;
|
||||||
|
progressBar.color1 = Color.Lerp(Color.black, Color.white, (value - 0.5f) * 2);
|
||||||
|
}
|
||||||
|
progressBar.Refresh();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void Start()
|
||||||
|
{
|
||||||
|
StartCoroutine(LoadAllManagers());
|
||||||
|
}
|
||||||
|
|
||||||
|
private IEnumerator LoadAllManagers()
|
||||||
|
{
|
||||||
|
for (var i = 0; i < _loadingSteps.Length; i++)
|
||||||
|
{
|
||||||
|
// 更新描述文本
|
||||||
|
describeText.text = _loadingSteps[i];
|
||||||
|
|
||||||
|
// 获取当前阶段的目标进度
|
||||||
|
var targetProgress = (float)(i + 1) / _loadingSteps.Length;
|
||||||
|
|
||||||
|
// 平滑过渡到下一个阶段
|
||||||
|
yield return SmoothTransitionTo(targetProgress);
|
||||||
|
|
||||||
|
// 初始化对应的管理器
|
||||||
|
switch (i)
|
||||||
|
{
|
||||||
|
case 0:
|
||||||
|
UnityLogger.Init();
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
Managers.DefineManager.Instance.Init();
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
Managers.PackagesImageManager.Instance.Init();
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
Managers.TileManager.Instance.Init();
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
Managers.AffiliationManager.Instance.Init();
|
||||||
|
break;
|
||||||
|
case 5:
|
||||||
|
Managers.ItemResourceManager.Instance.Init();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 加载完成后的处理
|
||||||
|
describeText.text = "加载完成!";
|
||||||
|
progress = 1f;
|
||||||
|
}
|
||||||
|
|
||||||
|
private IEnumerator SmoothTransitionTo(float targetProgress)
|
||||||
|
{
|
||||||
|
var startProgress = _currentProgress;
|
||||||
|
var elapsedTime = 0f;
|
||||||
|
|
||||||
|
while (elapsedTime < duration)
|
||||||
|
{
|
||||||
|
elapsedTime += Time.deltaTime;
|
||||||
|
var t = Mathf.SmoothStep(0f, 1f, elapsedTime / duration); // 使用 SmoothStep 实现平滑过渡
|
||||||
|
progress = Mathf.Lerp(startProgress, targetProgress, t);
|
||||||
|
yield return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 确保最终进度达到目标值
|
||||||
|
progress = targetProgress;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
3
Client/Assets/Scripts/Base/Launcher.cs.meta
Normal file
3
Client/Assets/Scripts/Base/Launcher.cs.meta
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 1966ff90f1854aee9ca89d700abef90d
|
||||||
|
timeCreated: 1755438497
|
@ -8,11 +8,12 @@ namespace Data
|
|||||||
Hostile,
|
Hostile,
|
||||||
Friendly,
|
Friendly,
|
||||||
}
|
}
|
||||||
|
|
||||||
public class AffiliationDef : Define
|
public class AffiliationDef : Define
|
||||||
{
|
{
|
||||||
public Relation defaultRelation = Relation.Neutral;
|
public Relation defaultRelation = Relation.Neutral;
|
||||||
public List<string> hostileFactions;
|
public List<string> hostileFactions = new();
|
||||||
public List<string> neutralFactions;
|
public List<string> neutralFactions = new();
|
||||||
public List<string> friendlyFactions;
|
public List<string> friendlyFactions = new();
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -1,4 +1,5 @@
|
|||||||
using System;
|
using System;
|
||||||
|
using System.Collections;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Reflection;
|
using System.Reflection;
|
||||||
@ -279,10 +280,14 @@ namespace Data
|
|||||||
value = reference;
|
value = reference;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if(field.FieldType.IsArray)
|
else if(field.FieldType.IsArray||typeof(IList).IsAssignableFrom(field.FieldType))
|
||||||
{
|
{
|
||||||
value = ProcessArrayField(field, element);
|
value = ProcessArrayField(field, element);
|
||||||
}
|
}
|
||||||
|
else if (field.FieldType.IsEnum)
|
||||||
|
{
|
||||||
|
value = Enum.Parse(field.FieldType, element.Value);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
value = Convert.ChangeType(element.Value, field.FieldType);
|
value = Convert.ChangeType(element.Value, field.FieldType);
|
||||||
@ -291,13 +296,14 @@ namespace Data
|
|||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
Debug.LogWarning($"Error setting field {field.Name}: {ex.Message}");
|
Debug.LogWarning($"Error setting field ,field name:{field.Name}; value: {element.Value}; error: {ex.Message}");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static object ProcessArrayField(FieldInfo field, XElement element)
|
private static object ProcessArrayField(FieldInfo field, XElement element)
|
||||||
{
|
{
|
||||||
Type elementType = field.FieldType.GetElementType();
|
var elementType = field.FieldType.GetElementType();
|
||||||
if (elementType == null) return null;
|
if (elementType == null) return null;
|
||||||
|
|
||||||
var arrayElements = new List<object>();
|
var arrayElements = new List<object>();
|
||||||
@ -305,7 +311,7 @@ namespace Data
|
|||||||
{
|
{
|
||||||
if (elementType.IsSubclassOf(typeof(Define)))
|
if (elementType.IsSubclassOf(typeof(Define)))
|
||||||
{
|
{
|
||||||
Define nestedDefine = (Define)Activator.CreateInstance(elementType);
|
var nestedDefine = (Define)Activator.CreateInstance(elementType);
|
||||||
DefaultInitDefine(nestedDefine, liElement, elementType);
|
DefaultInitDefine(nestedDefine, liElement, elementType);
|
||||||
arrayElements.Add(nestedDefine);
|
arrayElements.Add(nestedDefine);
|
||||||
}
|
}
|
||||||
@ -326,8 +332,8 @@ namespace Data
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 构建结果数组
|
// 构建结果数组
|
||||||
Array resultArray = Array.CreateInstance(elementType, arrayElements.Count);
|
var resultArray = Array.CreateInstance(elementType, arrayElements.Count);
|
||||||
for (int i = 0; i < arrayElements.Count; i++)
|
for (var i = 0; i < arrayElements.Count; i++)
|
||||||
{
|
{
|
||||||
resultArray.SetValue(arrayElements[i], i);
|
resultArray.SetValue(arrayElements[i], i);
|
||||||
}
|
}
|
||||||
|
@ -11,7 +11,7 @@ namespace Data
|
|||||||
public DrawingOrderDef drawingOrder;
|
public DrawingOrderDef drawingOrder;
|
||||||
|
|
||||||
public BehaviorTreeDef behaviorTree;
|
public BehaviorTreeDef behaviorTree;
|
||||||
public string affiliation;
|
public AffiliationDef affiliation;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -149,7 +149,7 @@ namespace Entity
|
|||||||
{
|
{
|
||||||
attributes = entityDef.attributes.Clone();
|
attributes = entityDef.attributes.Clone();
|
||||||
aiTree = Utils.BehaviorTree.ConvertToAIBase(entityDef.behaviorTree);
|
aiTree = Utils.BehaviorTree.ConvertToAIBase(entityDef.behaviorTree);
|
||||||
affiliation = entityDef.affiliation;
|
affiliation = entityDef.affiliation.defName;
|
||||||
InitBody(entityDef.drawingOrder);
|
InitBody(entityDef.drawingOrder);
|
||||||
this.entityDef = entityDef;
|
this.entityDef = entityDef;
|
||||||
|
|
||||||
|
157
Client/Assets/Scripts/Managers/AffiliationManager.cs
Normal file
157
Client/Assets/Scripts/Managers/AffiliationManager.cs
Normal file
@ -0,0 +1,157 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using Data;
|
||||||
|
|
||||||
|
namespace Managers
|
||||||
|
{
|
||||||
|
public class AffiliationManager:Utils.Singleton<AffiliationManager>
|
||||||
|
{
|
||||||
|
//定义名,阵营定义
|
||||||
|
private readonly Dictionary<string, AffiliationDef> _affiliations = new();
|
||||||
|
|
||||||
|
public void Init()
|
||||||
|
{
|
||||||
|
var affiliationList = Managers.DefineManager.Instance.QueryDefinesByType<AffiliationDef>();
|
||||||
|
if (affiliationList == null ||affiliationList.Length==0)
|
||||||
|
return;
|
||||||
|
foreach (var affiliation in affiliationList)
|
||||||
|
{
|
||||||
|
_affiliations.Add(affiliation.defName, affiliation);
|
||||||
|
}
|
||||||
|
ValidateAndFixRelationships();
|
||||||
|
}
|
||||||
|
|
||||||
|
public string GetAffiliationName(string defName)
|
||||||
|
{
|
||||||
|
return _affiliations[defName].defName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Relation GetRelation(string factionName1, string factionName2)
|
||||||
|
{
|
||||||
|
// 如果查询的是同一个派系,默认是友好关系
|
||||||
|
if (factionName1 == factionName2)
|
||||||
|
{
|
||||||
|
return Relation.Friendly;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 尝试获取两个派系的定义
|
||||||
|
if (!_affiliations.TryGetValue(factionName1, out var faction1) ||
|
||||||
|
!_affiliations.TryGetValue(factionName2, out _))
|
||||||
|
{
|
||||||
|
if (faction1 != null) return faction1.defaultRelation;
|
||||||
|
return Relation.Neutral;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 检查faction1是否明确将faction2列为敌对
|
||||||
|
if (faction1.hostileFactions != null && faction1.hostileFactions.Contains(factionName2))
|
||||||
|
{
|
||||||
|
return Relation.Hostile;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 检查faction1是否明确将faction2列为友好
|
||||||
|
if (faction1.friendlyFactions != null && faction1.friendlyFactions.Contains(factionName2))
|
||||||
|
{
|
||||||
|
return Relation.Friendly;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 检查faction1是否明确将faction2列为中立
|
||||||
|
if (faction1.neutralFactions != null && faction1.neutralFactions.Contains(factionName2))
|
||||||
|
{
|
||||||
|
return Relation.Neutral;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 如果faction1没有明确设置与faction2的关系,则使用faction1的默认关系
|
||||||
|
return faction1.defaultRelation;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 设置两个阵营之间的关系
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="factionName1">第一个阵营名称</param>
|
||||||
|
/// <param name="factionName2">第二个阵营名称</param>
|
||||||
|
/// <param name="relation">要设置的关系</param>
|
||||||
|
public void SetRelation(string factionName1, string factionName2, Relation relation)
|
||||||
|
{
|
||||||
|
// 不能设置自己与自己的关系
|
||||||
|
if (factionName1 == factionName2)
|
||||||
|
{
|
||||||
|
throw new ArgumentException("Cannot set relation between the same faction");
|
||||||
|
}
|
||||||
|
|
||||||
|
// 确保两个阵营都存在
|
||||||
|
if (!_affiliations.TryGetValue(factionName1, out var faction1) ||
|
||||||
|
!_affiliations.TryGetValue(factionName2, out _))
|
||||||
|
{
|
||||||
|
throw new ArgumentException("One or both factions do not exist");
|
||||||
|
}
|
||||||
|
|
||||||
|
// 确保关系列表已初始化
|
||||||
|
faction1.hostileFactions ??= new List<string>();
|
||||||
|
faction1.friendlyFactions ??= new List<string>();
|
||||||
|
faction1.neutralFactions ??= new List<string>();
|
||||||
|
|
||||||
|
// 先移除所有现有关系
|
||||||
|
faction1.hostileFactions.Remove(factionName2);
|
||||||
|
faction1.friendlyFactions.Remove(factionName2);
|
||||||
|
faction1.neutralFactions.Remove(factionName2);
|
||||||
|
|
||||||
|
// 添加新关系
|
||||||
|
switch (relation)
|
||||||
|
{
|
||||||
|
case Relation.Hostile:
|
||||||
|
faction1.hostileFactions.Add(factionName2);
|
||||||
|
break;
|
||||||
|
case Relation.Friendly:
|
||||||
|
faction1.friendlyFactions.Add(factionName2);
|
||||||
|
break;
|
||||||
|
case Relation.Neutral:
|
||||||
|
faction1.neutralFactions.Add(factionName2);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
throw new ArgumentOutOfRangeException(nameof(relation), relation, null);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 检查并修复派系关系,确保没有冲突(按友好 > 敌对 > 中立 的优先级)
|
||||||
|
/// </summary>
|
||||||
|
private void ValidateAndFixRelationships()
|
||||||
|
{
|
||||||
|
foreach (var faction in _affiliations.Values)
|
||||||
|
{
|
||||||
|
// 确保所有关系列表已初始化
|
||||||
|
faction.hostileFactions ??= new List<string>();
|
||||||
|
faction.friendlyFactions ??= new List<string>();
|
||||||
|
faction.neutralFactions ??= new List<string>();
|
||||||
|
|
||||||
|
// 检查所有敌对派系
|
||||||
|
foreach (var hostileFaction in faction.hostileFactions.ToList())
|
||||||
|
{
|
||||||
|
// 如果敌对派系同时存在于友好列表中,移除敌对关系(友好优先)
|
||||||
|
if (faction.friendlyFactions.Contains(hostileFaction))
|
||||||
|
{
|
||||||
|
faction.hostileFactions.Remove(hostileFaction);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 如果敌对派系同时存在于中立列表中,移除中立关系(敌对优先)
|
||||||
|
if (faction.neutralFactions.Contains(hostileFaction))
|
||||||
|
{
|
||||||
|
faction.neutralFactions.Remove(hostileFaction);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 检查所有中立派系
|
||||||
|
foreach (var neutralFaction in faction.neutralFactions.ToList())
|
||||||
|
{
|
||||||
|
// 如果中立派系同时存在于友好列表中,移除中立关系(友好优先)
|
||||||
|
if (faction.friendlyFactions.Contains(neutralFaction))
|
||||||
|
{
|
||||||
|
faction.neutralFactions.Remove(neutralFaction);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,3 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 31017ce35a6b441fb36e085dd3fd7c27
|
||||||
|
timeCreated: 1755407963
|
@ -11,16 +11,13 @@ namespace Managers
|
|||||||
{
|
{
|
||||||
public Dictionary<string, LinkedList<EntityPrefab>> factionEntities = new();
|
public Dictionary<string, LinkedList<EntityPrefab>> factionEntities = new();
|
||||||
|
|
||||||
public GameObject entityLevel;
|
|
||||||
public EntityPrefab entityPrefab;
|
public EntityPrefab entityPrefab;
|
||||||
public GameObject buildingLevel;
|
|
||||||
public EntityPrefab buildingPrefab;
|
public EntityPrefab buildingPrefab;
|
||||||
public GameObject bulletLevel;
|
|
||||||
public EntityPrefab bulletPrefab;
|
public EntityPrefab bulletPrefab;
|
||||||
|
|
||||||
public EntityPrefab defaultEntityPrefab;
|
public EntityPrefab defaultEntityPrefab;
|
||||||
|
|
||||||
|
private Dictionary<string, Transform> layerCache = new Dictionary<string, Transform>();
|
||||||
private List<Tuple<string, EntityPrefab>> pendingAdditions;
|
private List<Tuple<string, EntityPrefab>> pendingAdditions;
|
||||||
|
|
||||||
public LinkedList<EntityPrefab> FindEntitiesByFaction(string factionKey)
|
public LinkedList<EntityPrefab> FindEntitiesByFaction(string factionKey)
|
||||||
@ -71,6 +68,7 @@ namespace Managers
|
|||||||
|
|
||||||
factionEntities[entity.Item1].AddLast(entity.Item2);
|
factionEntities[entity.Item1].AddLast(entity.Item2);
|
||||||
}
|
}
|
||||||
|
|
||||||
pendingAdditions.Clear();
|
pendingAdditions.Clear();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -112,16 +110,8 @@ namespace Managers
|
|||||||
extraInit?.Invoke(entityComponent);
|
extraInit?.Invoke(entityComponent);
|
||||||
|
|
||||||
// 管理派系列表
|
// 管理派系列表
|
||||||
var factionKey = def.attributes.label ?? "default";
|
var factionKey = def.attributes.defName ?? "default";
|
||||||
pendingAdditions.Add(Tuple.Create(factionKey, entityComponent));
|
pendingAdditions.Add(Tuple.Create(factionKey, entityComponent));
|
||||||
|
|
||||||
// if (!factionEntities.ContainsKey(factionKey))
|
|
||||||
// {
|
|
||||||
// factionEntities[factionKey] = new LinkedList<EntityPrefab>();
|
|
||||||
// }
|
|
||||||
|
|
||||||
// factionEntities[factionKey].AddLast(entityComponent);
|
|
||||||
|
|
||||||
return entityComponent;
|
return entityComponent;
|
||||||
}
|
}
|
||||||
catch (System.Exception ex)
|
catch (System.Exception ex)
|
||||||
@ -134,6 +124,34 @@ namespace Managers
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 动态创建层(如果层不存在)
|
||||||
|
/// </summary>
|
||||||
|
private Transform EnsureLayerExists(string layerName)
|
||||||
|
{
|
||||||
|
// 先从缓存中查找
|
||||||
|
if (layerCache.TryGetValue(layerName, out var layerTransform))
|
||||||
|
{
|
||||||
|
return layerTransform;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 如果缓存中没有,尝试通过 transform.Find 查找
|
||||||
|
layerTransform = transform.Find(layerName);
|
||||||
|
|
||||||
|
if (!layerTransform)
|
||||||
|
{
|
||||||
|
// 如果层不存在,动态创建
|
||||||
|
var layerObject = new GameObject(layerName);
|
||||||
|
layerTransform = layerObject.transform;
|
||||||
|
layerTransform.SetParent(transform, false); // 将层附加到当前管理器下
|
||||||
|
}
|
||||||
|
|
||||||
|
// 将新创建的层加入缓存
|
||||||
|
layerCache[layerName] = layerTransform;
|
||||||
|
|
||||||
|
return layerTransform;
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 根据PawnDef生成普通实体
|
/// 根据PawnDef生成普通实体
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@ -154,10 +172,13 @@ namespace Managers
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 确保层存在
|
||||||
|
var entityLevelTransform = EnsureLayerExists("EntityLevel");
|
||||||
|
|
||||||
// 调用通用生成逻辑
|
// 调用通用生成逻辑
|
||||||
var result = GenerateEntityInternal(
|
var result = GenerateEntityInternal(
|
||||||
entityPrefab.gameObject,
|
entityPrefab.gameObject,
|
||||||
entityLevel.transform,
|
entityLevelTransform,
|
||||||
pos,
|
pos,
|
||||||
entityDef
|
entityDef
|
||||||
);
|
);
|
||||||
@ -187,14 +208,17 @@ namespace Managers
|
|||||||
|
|
||||||
var worldPos = new Vector3(pos.x, pos.y, pos.z);
|
var worldPos = new Vector3(pos.x, pos.y, pos.z);
|
||||||
|
|
||||||
|
// 确保层存在
|
||||||
|
var buildingLevelTransform = EnsureLayerExists("BuildingLevel");
|
||||||
|
|
||||||
var result = GenerateEntityInternal(
|
var result = GenerateEntityInternal(
|
||||||
buildingPrefab.gameObject,
|
buildingPrefab.gameObject,
|
||||||
buildingLevel.transform,
|
buildingLevelTransform,
|
||||||
worldPos,
|
worldPos,
|
||||||
buildingDef
|
buildingDef
|
||||||
);
|
);
|
||||||
|
|
||||||
if (!result) GenerateDefaultEntity(pos);
|
if (!result) GenerateDefaultEntity(worldPos);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -217,9 +241,12 @@ namespace Managers
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 确保层存在
|
||||||
|
var bulletLevelTransform = EnsureLayerExists("BulletLevel");
|
||||||
|
|
||||||
var result = GenerateEntityInternal(
|
var result = GenerateEntityInternal(
|
||||||
bulletPrefab.gameObject,
|
bulletPrefab.gameObject,
|
||||||
bulletLevel.transform,
|
bulletLevelTransform,
|
||||||
pos,
|
pos,
|
||||||
bulletDef,
|
bulletDef,
|
||||||
// 子弹特有的方向设置
|
// 子弹特有的方向设置
|
||||||
@ -234,18 +261,16 @@ namespace Managers
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public void GenerateDefaultEntity(Vector3 pos)
|
public void GenerateDefaultEntity(Vector3 pos)
|
||||||
{
|
{
|
||||||
var entity = Instantiate(defaultEntityPrefab, pos, Quaternion.identity, entityLevel.transform);
|
// 确保层存在
|
||||||
|
var entityLevelTransform = EnsureLayerExists("EntityLevel");
|
||||||
|
|
||||||
|
var entity = Instantiate(defaultEntityPrefab, pos, Quaternion.identity, entityLevelTransform);
|
||||||
var entityComponent = entity.GetComponent<EntityPrefab>();
|
var entityComponent = entity.GetComponent<EntityPrefab>();
|
||||||
|
|
||||||
const string factionKey = "default";
|
const string factionKey = "default";
|
||||||
pendingAdditions.Add(Tuple.Create(factionKey, entityComponent));
|
pendingAdditions.Add(Tuple.Create(factionKey, entityComponent));
|
||||||
// if (!factionEntities.ContainsKey(factionKey))
|
|
||||||
// {
|
|
||||||
// factionEntities[factionKey] = new LinkedList<EntityPrefab>();
|
|
||||||
// }
|
|
||||||
|
|
||||||
// entityComponent.DefaultInit();
|
entityComponent.DefaultInit();
|
||||||
// factionEntities[factionKey].AddLast(entityComponent);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void OnStart()
|
protected override void OnStart()
|
||||||
@ -258,7 +283,7 @@ namespace Managers
|
|||||||
{
|
{
|
||||||
var pre = Resources.Load<GameObject>("Default/DefaultEntity");
|
var pre = Resources.Load<GameObject>("Default/DefaultEntity");
|
||||||
defaultEntityPrefab = pre.GetComponent<EntityPrefab>();
|
defaultEntityPrefab = pre.GetComponent<EntityPrefab>();
|
||||||
|
layerCache.Clear();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -14,6 +14,8 @@ namespace Managers
|
|||||||
public void Init()
|
public void Init()
|
||||||
{
|
{
|
||||||
var itemDefs = Managers.DefineManager.Instance.QueryDefinesByType<ItemDef>();
|
var itemDefs = Managers.DefineManager.Instance.QueryDefinesByType<ItemDef>();
|
||||||
|
if(itemDefs==null||itemDefs.Length==0)
|
||||||
|
return;
|
||||||
foreach (var itemDef in itemDefs)
|
foreach (var itemDef in itemDefs)
|
||||||
{
|
{
|
||||||
var item=new Item.ItemResource();
|
var item=new Item.ItemResource();
|
||||||
|
20
Client/Data/Core/Define/Pawn/AffiliationDef.xml
Normal file
20
Client/Data/Core/Define/Pawn/AffiliationDef.xml
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Define>
|
||||||
|
|
||||||
|
<AffiliationDef>
|
||||||
|
<defName>player</defName>
|
||||||
|
<label>玩家阵营</label>
|
||||||
|
<defaultRelation>Neutral</defaultRelation>
|
||||||
|
<hostileFactions>
|
||||||
|
<li>monster</li>
|
||||||
|
</hostileFactions>
|
||||||
|
</AffiliationDef>
|
||||||
|
<AffiliationDef>
|
||||||
|
<defName>monster</defName>
|
||||||
|
<label>怪物阵营</label>
|
||||||
|
<defaultRelation>Hostile</defaultRelation>
|
||||||
|
<hostileFactions>
|
||||||
|
<li>player</li>
|
||||||
|
</hostileFactions>
|
||||||
|
</AffiliationDef>
|
||||||
|
</Define>
|
@ -9,7 +9,7 @@ EditorBuildSettings:
|
|||||||
path: Assets/Scenes/MainScene.unity
|
path: Assets/Scenes/MainScene.unity
|
||||||
guid: 99c9720ab356a0642a771bea13969a05
|
guid: 99c9720ab356a0642a771bea13969a05
|
||||||
- enabled: 1
|
- enabled: 1
|
||||||
path: Assets/Scenes/Start.unity
|
path: Assets/Scenes/Game.unity
|
||||||
guid: 5995047d2fd0f65408e4a7910dca711a
|
guid: 5995047d2fd0f65408e4a7910dca711a
|
||||||
m_configObjects:
|
m_configObjects:
|
||||||
com.unity.input.settings.actions: {fileID: -944628639613478452, guid: 052faaac586de48259a63d0c4782560b, type: 3}
|
com.unity.input.settings.actions: {fileID: -944628639613478452, guid: 052faaac586de48259a63d0c4782560b, type: 3}
|
||||||
|
Reference in New Issue
Block a user