feat():大改前的提交,这个版本保存了所有冗余的代码

This commit is contained in:
2025-10-17 15:10:19 +08:00
parent 668bfe12eb
commit 3d03c59dc3
68 changed files with 2045 additions and 159 deletions

View File

@@ -0,0 +1,135 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &-601912231420489210
MonoBehaviour:
m_ObjectHideFlags: 11
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
m_Name:
m_EditorClassIdentifier:
version: 7
--- !u!21 &2100000
Material:
serializedVersion: 8
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Line
m_Shader: {fileID: 4800000, guid: 650dd9526735d5b46b79224bc6e94025, type: 3}
m_Parent: {fileID: 0}
m_ModifiedSerializedProperties: 0
m_ValidKeywords: []
m_InvalidKeywords: []
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap:
RenderType: Opaque
disabledShaderPasses: []
m_LockedProperties:
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _BaseMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _BumpMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailAlbedoMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailMask:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailNormalMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _EmissionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MainTex:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MetallicGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _OcclusionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ParallaxMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _SpecGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- unity_Lightmaps:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- unity_LightmapsInd:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- unity_ShadowMasks:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Ints: []
m_Floats:
- _AlphaClip: 0
- _AlphaToMask: 0
- _Blend: 0
- _BlendModePreserveSpecular: 1
- _BlendOp: 0
- _BumpScale: 1
- _ClearCoatMask: 0
- _ClearCoatSmoothness: 0
- _Cull: 2
- _Cutoff: 0.5
- _DetailAlbedoMapScale: 1
- _DetailNormalMapScale: 1
- _DstBlend: 0
- _DstBlendAlpha: 0
- _EnvironmentReflections: 1
- _GlossMapScale: 0
- _Glossiness: 0
- _GlossyReflections: 0
- _Metallic: 0
- _OcclusionStrength: 1
- _Parallax: 0.005
- _QueueOffset: 0
- _ReceiveShadows: 1
- _SampleGI: 0
- _Smoothness: 0.5
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
- _SrcBlendAlpha: 1
- _Surface: 0
- _WorkflowMode: 1
- _ZWrite: 1
m_Colors:
- _BaseColor: {r: 0.832884, g: 0.18065912, b: 0.10663608, a: 1}
- _Color: {r: 0.832884, g: 0.18065909, b: 0.106636055, a: 1}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
m_BuildTextureStacks: []

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: fd7b6ef1c8d01724683c1f9dc2114f9e
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,14 +0,0 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>DOTweenUpgradeManager</name>
</assembly>
<members>
<member name="T:DG.DOTweenUpgradeManager.Autorun">
<summary>
This class and its whole library are deleted the first time DOTween's setup is run after an upgrade (or after a new install).
NOTE: DidReloadScripts doesn't work on first install so it's useless, InitializeOnLoad is the only way
</summary>
</member>
</members>
</doc>

View File

@@ -1,4 +0,0 @@
fileFormatVersion: 2
guid: 3df9fdaadcb4c394e826a4d8d20bb952
TextScriptImporter:
userData:

View File

@@ -1,22 +0,0 @@
fileFormatVersion: 2
guid: 2bf936a5d80799e4e88ec9270fea75a4
PluginImporter:
serializedVersion: 1
iconMap: {}
executionOrder: {}
isPreloaded: 0
platformData:
Any:
enabled: 0
settings: {}
Editor:
enabled: 1
settings:
DefaultValueInitialized: true
WindowsStoreApps:
enabled: 0
settings:
CPU: AnyCPU
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -27,11 +27,11 @@ Transform:
m_GameObject: {fileID: 2782175792003806444}
serializedVersion: 2
m_LocalRotation: {x: 0.49870676, y: 0.5012899, z: -0.49870676, w: 0.5012899}
m_LocalPosition: {x: -0, y: 0, z: -3.059569e-10}
m_LocalScale: {x: 140, y: 100.00001, z: 100.00001}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 140, y: 100, z: 100}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 8288806321783590124}
m_Father: {fileID: 9209320535166562747}
m_LocalEulerAnglesHint: {x: 89.704, y: 90, z: 0}
--- !u!33 &528940306177264885
MeshFilter:
@@ -109,14 +109,14 @@ RectTransform:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2850323074743059847}
m_LocalRotation: {x: 0.7071068, y: 0, z: 0, w: 0.7071068}
m_LocalRotation: {x: 0.7071068, y: -0, z: -0, w: 0.7071068}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 602904479329865416}
- {fileID: 461998205047545604}
m_Father: {fileID: 8288806321783590124}
m_Father: {fileID: 9209320535166562747}
m_LocalEulerAnglesHint: {x: 90, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@@ -344,6 +344,40 @@ MonoBehaviour:
m_VerticalOverflow: 0
m_LineSpacing: 1
m_Text: Name
--- !u!1 &5397061992114806696
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 9209320535166562747}
m_Layer: 0
m_Name: Display
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &9209320535166562747
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5397061992114806696}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 0.15, y: 0.15, z: 0.15}
m_ConstrainProportionsScale: 1
m_Children:
- {fileID: 2653266799713255234}
- {fileID: 6520432709391570604}
- {fileID: 4429445361403306062}
m_Father: {fileID: 8288806321783590124}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &5614617657564266223
GameObject:
m_ObjectHideFlags: 0
@@ -371,11 +405,11 @@ Transform:
m_GameObject: {fileID: 5614617657564266223}
serializedVersion: 2
m_LocalRotation: {x: -0.49991274, y: 0.50008726, z: 0.49991274, w: 0.50008726}
m_LocalPosition: {x: -0, y: 0.0069994777, z: 3.059569e-10}
m_LocalPosition: {x: 0, y: 0.0069994777, z: 0}
m_LocalScale: {x: 140, y: 100, z: 100}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 8288806321783590124}
m_Father: {fileID: 9209320535166562747}
m_LocalEulerAnglesHint: {x: -89.98, y: 90, z: 0}
--- !u!33 &3884522584561958753
MeshFilter:
@@ -437,6 +471,7 @@ GameObject:
m_Component:
- component: {fileID: 8288806321783590124}
- component: {fileID: 1562880286992207475}
- component: {fileID: 9063485462769681386}
m_Layer: 0
m_Name: Card
m_TagString: Untagged
@@ -457,9 +492,7 @@ Transform:
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 2653266799713255234}
- {fileID: 6520432709391570604}
- {fileID: 4429445361403306062}
- {fileID: 9209320535166562747}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &1562880286992207475
@@ -474,6 +507,28 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 84de392c49524b6d8da09ea51c4326c0, type: 3}
m_Name:
m_EditorClassIdentifier:
meshRenderer: {fileID: 0}
frontMeshRenderer: {fileID: 5156951718673587996}
backMeshRenderer: {fileID: 1574770595276204962}
cardNameText: {fileID: 1641835144558014658}
cardDescriptionText: {fileID: 968774230685629330}
--- !u!65 &9063485462769681386
BoxCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8257975731489021549}
m_Material: {fileID: 0}
m_IncludeLayers:
serializedVersion: 2
m_Bits: 0
m_ExcludeLayers:
serializedVersion: 2
m_Bits: 0
m_LayerOverridePriority: 0
m_IsTrigger: 0
m_ProvidesContacts: 0
m_Enabled: 1
serializedVersion: 3
m_Size: {x: 0.3088441, y: 0.051474422, z: 0.43081665}
m_Center: {x: 0, y: 0.003252551, z: 0}

View File

@@ -0,0 +1,435 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &1285331887159970702
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 7491258034527094893}
- component: {fileID: 6262235791141659756}
- component: {fileID: 2577312867888845904}
m_Layer: 8
m_Name: Panel
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &7491258034527094893
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1285331887159970702}
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: 1
m_Children: []
m_Father: {fileID: 6937855010132688348}
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 &6262235791141659756
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1285331887159970702}
m_CullTransparentMesh: 1
--- !u!114 &2577312867888845904
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1285331887159970702}
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: 0.392}
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: 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!1 &2729643726423589850
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 77361986880837193}
- component: {fileID: 1966939443082034528}
- component: {fileID: 1791426126632920350}
- component: {fileID: 6559594074799131378}
- component: {fileID: 2740601845815088892}
m_Layer: 0
m_Name: Facility
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &77361986880837193
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2729643726423589850}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0.71, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 1088716417574490523}
- {fileID: 6937855010132688348}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!33 &1966939443082034528
MeshFilter:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2729643726423589850}
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
--- !u!23 &1791426126632920350
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2729643726423589850}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_StaticShadowCaster: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RayTracingMode: 2
m_RayTraceProcedural: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
m_StaticBatchRoot: {fileID: 0}
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
m_ReceiveGI: 1
m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 1
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
m_AdditionalVertexStreams: {fileID: 0}
--- !u!65 &6559594074799131378
BoxCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2729643726423589850}
m_Material: {fileID: 0}
m_IncludeLayers:
serializedVersion: 2
m_Bits: 0
m_ExcludeLayers:
serializedVersion: 2
m_Bits: 0
m_LayerOverridePriority: 0
m_IsTrigger: 0
m_ProvidesContacts: 0
m_Enabled: 1
serializedVersion: 3
m_Size: {x: 1, y: 1, z: 1}
m_Center: {x: 0, y: 0, z: 0}
--- !u!114 &2740601845815088892
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2729643726423589850}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 7986c88b8e1d4944832af56e23188597, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!1 &7518175844631896712
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 6937855010132688348}
- component: {fileID: 5901253883046461237}
- component: {fileID: 6141736885575726030}
- component: {fileID: 4792260559798747556}
m_Layer: 8
m_Name: Canvas
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &6937855010132688348
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7518175844631896712}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 0.001, y: 0.001, z: 0.001}
m_ConstrainProportionsScale: 1
m_Children:
- {fileID: 7491258034527094893}
m_Father: {fileID: 77361986880837193}
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: 1000, y: 1000}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!223 &5901253883046461237
Canvas:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7518175844631896712}
m_Enabled: 1
serializedVersion: 3
m_RenderMode: 2
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: 0
m_UpdateRectTransformForStandalone: 0
m_SortingLayerID: 0
m_SortingOrder: 0
m_TargetDisplay: 0
--- !u!114 &6141736885575726030
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7518175844631896712}
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: 10
m_PresetInfoIsWorld: 1
--- !u!114 &4792260559798747556
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7518175844631896712}
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 &8100744246927696703
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1088716417574490523}
- component: {fileID: 7931149419085676358}
m_Layer: 7
m_Name: Line
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &1088716417574490523
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8100744246927696703}
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: 77361986880837193}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!120 &7931149419085676358
LineRenderer:
serializedVersion: 2
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8100744246927696703}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_StaticShadowCaster: 0
m_MotionVectors: 0
m_LightProbeUsage: 0
m_ReflectionProbeUsage: 0
m_RayTracingMode: 0
m_RayTraceProcedural: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 2100000, guid: fd7b6ef1c8d01724683c1f9dc2114f9e, type: 2}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
m_StaticBatchRoot: {fileID: 0}
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
m_ReceiveGI: 1
m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 1
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
m_Positions:
- {x: 0, y: 0.73317075, z: -1.0474617}
- {x: 0, y: 1.6364502, z: -0.07521546}
m_Parameters:
serializedVersion: 3
widthMultiplier: 1
widthCurve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0.48411998
value: 0.018180847
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
colorGradient:
serializedVersion: 2
key0: {r: 1, g: 1, b: 1, a: 1}
key1: {r: 1, g: 1, b: 1, a: 1}
key2: {r: 0, g: 0, b: 0, a: 0}
key3: {r: 0, g: 0, b: 0, a: 0}
key4: {r: 0, g: 0, b: 0, a: 0}
key5: {r: 0, g: 0, b: 0, a: 0}
key6: {r: 0, g: 0, b: 0, a: 0}
key7: {r: 0, g: 0, b: 0, a: 0}
ctime0: 0
ctime1: 65535
ctime2: 0
ctime3: 0
ctime4: 0
ctime5: 0
ctime6: 0
ctime7: 0
atime0: 0
atime1: 65535
atime2: 0
atime3: 0
atime4: 0
atime5: 0
atime6: 0
atime7: 0
m_Mode: 0
m_ColorSpace: -1
m_NumColorKeys: 2
m_NumAlphaKeys: 2
numCornerVertices: 0
numCapVertices: 0
alignment: 0
textureMode: 0
textureScale: {x: 1, y: 1}
shadowBias: 0.5
generateLightingData: 0
m_MaskInteraction: 0
m_UseWorldSpace: 1
m_Loop: 0
m_ApplyActiveColorSpace: 1

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: b3e24e2df98d14e4ebc08cc68c071afa
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -150,7 +150,9 @@ GameObject:
- component: {fileID: 8268117914458884828}
- component: {fileID: 2963170313432786625}
- component: {fileID: 3697820982367928434}
- component: {fileID: 5633281206562703781}
- component: {fileID: 1774433545530707224}
- component: {fileID: 7145954873497571105}
m_Layer: 0
m_Name: Player
m_TagString: Player
@@ -254,6 +256,25 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
cardBookData: {fileID: 11400000, guid: 6884501cc489c254aaf6836e84649588, type: 2}
playerCardsController: {fileID: 0}
--- !u!114 &5633281206562703781
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3550102669167288263}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 18842cb320964275a76e2d57bee62adf, type: 3}
m_Name:
m_EditorClassIdentifier:
interactRange: 15
interactableLayer:
serializedVersion: 2
m_Bits: 4294967295
playerCamera: {fileID: 4390370389971332335}
isDrawGizmos: 1
--- !u!114 &1774433545530707224
MonoBehaviour:
m_ObjectHideFlags: 0
@@ -271,6 +292,20 @@ MonoBehaviour:
serializedVersion: 2
m_Bits: 4294967295
playerCamera: {fileID: 4390370389971332335}
isDrawGizmos: 0
--- !u!114 &7145954873497571105
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3550102669167288263}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 2361e682e26b43ffb6ff9615d39c487e, type: 3}
m_Name:
m_EditorClassIdentifier:
cam: {fileID: 4390370389971332335}
--- !u!1 &3610935294554348573
GameObject:
m_ObjectHideFlags: 0
@@ -344,7 +379,7 @@ Camera:
m_Depth: -1
m_CullingMask:
serializedVersion: 2
m_Bits: 4294967295
m_Bits: 119
m_RenderingPath: -1
m_TargetTexture: {fileID: 0}
m_TargetDisplay: 0

View File

@@ -0,0 +1,22 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 7c9f5640c7fc55141af2931d0caed1e0, type: 3}
m_Name: DamageCard 1
m_EditorClassIdentifier:
CardID: 2
CardName: HealSelfCard
CardDescription: Heal Self 1
CardTexture: {fileID: 0}
Effects:
- type: 1
value: 1
target: 0

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: a32b3f751a8ff5c4892f97457f8c9b62
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -12,9 +12,9 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 7c9f5640c7fc55141af2931d0caed1e0, type: 3}
m_Name: DamageCard
m_EditorClassIdentifier:
CardID: 0
CardID: 1
CardName: DamageCard
CardDescription:
CardDescription: Damage Enemy 1
CardTexture: {fileID: 0}
Effects:
- type: 0

View File

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

View File

@@ -15,12 +15,12 @@ RenderSettings:
m_ObjectHideFlags: 0
serializedVersion: 9
m_Fog: 0
m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
m_FogColor: {r: 0.1159029, g: 0.10418764, b: 0.10418764, a: 1}
m_FogMode: 3
m_FogDensity: 0.01
m_FogDensity: 0.13
m_LinearFogStart: 0
m_LinearFogEnd: 300
m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1}
m_AmbientSkyColor: {r: 0, g: 0, b: 0, 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
@@ -96,8 +96,10 @@ LightmapSettings:
m_ExportTrainingData: 0
m_TrainingDataDestination: TrainingData
m_LightProbeSampleCountMultiplier: 4
m_LightingDataAsset: {fileID: 0}
m_LightingSettings: {fileID: 0}
m_LightingDataAsset: {fileID: 112000000, guid: b93790e82c6f1a24daf29161c2a6ca71,
type: 2}
m_LightingSettings: {fileID: 4890085278179872738, guid: 06bbce95c474a2f4885359ffd5fad188,
type: 2}
--- !u!196 &4
NavMeshSettings:
serializedVersion: 2
@@ -1173,6 +1175,153 @@ Transform:
- {fileID: 1234629635}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1001 &2084876468
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
serializedVersion: 3
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 151205406321954705, guid: 396fdaee2868c534e927e0c2d4da65da,
type: 3}
propertyPath: m_LocalPosition.x
value: -1.5440545
objectReference: {fileID: 0}
- target: {fileID: 151205406321954705, guid: 396fdaee2868c534e927e0c2d4da65da,
type: 3}
propertyPath: m_LocalPosition.y
value: 0.5792608
objectReference: {fileID: 0}
- target: {fileID: 151205406321954705, guid: 396fdaee2868c534e927e0c2d4da65da,
type: 3}
propertyPath: m_LocalPosition.z
value: 1.0709323
objectReference: {fileID: 0}
- target: {fileID: 151205406321954705, guid: 396fdaee2868c534e927e0c2d4da65da,
type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 151205406321954705, guid: 396fdaee2868c534e927e0c2d4da65da,
type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 151205406321954705, guid: 396fdaee2868c534e927e0c2d4da65da,
type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 151205406321954705, guid: 396fdaee2868c534e927e0c2d4da65da,
type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 151205406321954705, guid: 396fdaee2868c534e927e0c2d4da65da,
type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 151205406321954705, guid: 396fdaee2868c534e927e0c2d4da65da,
type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 151205406321954705, guid: 396fdaee2868c534e927e0c2d4da65da,
type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8031699868756389050, guid: 396fdaee2868c534e927e0c2d4da65da,
type: 3}
propertyPath: m_Name
value: NormalCardBook
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects: []
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 396fdaee2868c534e927e0c2d4da65da, type: 3}
--- !u!1001 &2088331975902746738
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
serializedVersion: 3
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 77361986880837193, guid: b3e24e2df98d14e4ebc08cc68c071afa,
type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 77361986880837193, guid: b3e24e2df98d14e4ebc08cc68c071afa,
type: 3}
propertyPath: m_LocalPosition.y
value: 0.71
objectReference: {fileID: 0}
- target: {fileID: 77361986880837193, guid: b3e24e2df98d14e4ebc08cc68c071afa,
type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 77361986880837193, guid: b3e24e2df98d14e4ebc08cc68c071afa,
type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 77361986880837193, guid: b3e24e2df98d14e4ebc08cc68c071afa,
type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 77361986880837193, guid: b3e24e2df98d14e4ebc08cc68c071afa,
type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 77361986880837193, guid: b3e24e2df98d14e4ebc08cc68c071afa,
type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 77361986880837193, guid: b3e24e2df98d14e4ebc08cc68c071afa,
type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 77361986880837193, guid: b3e24e2df98d14e4ebc08cc68c071afa,
type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 77361986880837193, guid: b3e24e2df98d14e4ebc08cc68c071afa,
type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1285331887159970702, guid: b3e24e2df98d14e4ebc08cc68c071afa,
type: 3}
propertyPath: m_Layer
value: 8
objectReference: {fileID: 0}
- target: {fileID: 2729643726423589850, guid: b3e24e2df98d14e4ebc08cc68c071afa,
type: 3}
propertyPath: m_Name
value: Facility
objectReference: {fileID: 0}
- target: {fileID: 7518175844631896712, guid: b3e24e2df98d14e4ebc08cc68c071afa,
type: 3}
propertyPath: m_Layer
value: 8
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects:
- {fileID: 7518175844631896712, guid: b3e24e2df98d14e4ebc08cc68c071afa, type: 3}
m_AddedGameObjects: []
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: b3e24e2df98d14e4ebc08cc68c071afa, type: 3}
--- !u!1001 &4976374363246253691
PrefabInstance:
m_ObjectHideFlags: 0
@@ -1194,7 +1343,7 @@ PrefabInstance:
- target: {fileID: 277803484986371650, guid: 08dc103fc56f46345889fd4f2109149b,
type: 3}
propertyPath: m_LocalPosition.z
value: -81.743225
value: -79.46
objectReference: {fileID: 0}
- target: {fileID: 277803484986371650, guid: 08dc103fc56f46345889fd4f2109149b,
type: 3}
@@ -1277,7 +1426,7 @@ PrefabInstance:
- target: {fileID: 7437893023972897012, guid: 667aedb0d3f8c9d469819c9ff2b4472b,
type: 3}
propertyPath: m_LocalPosition.z
value: -86.23
value: -16.2
objectReference: {fileID: 0}
- target: {fileID: 7437893023972897012, guid: 667aedb0d3f8c9d469819c9ff2b4472b,
type: 3}
@@ -1410,3 +1559,5 @@ SceneRoots:
- {fileID: 8808393704070049945}
- {fileID: 1969328118}
- {fileID: 382458521}
- {fileID: 2084876468}
- {fileID: 2088331975902746738}

Binary file not shown.

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: b93790e82c6f1a24daf29161c2a6ca71
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 112000000
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@@ -0,0 +1,140 @@
fileFormatVersion: 2
guid: f1db76615162ecf4996139b91b6b5c75
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 13
mipmaps:
mipMapMode: 0
enableMipMap: 1
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 1
seamlessCubemap: 1
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 2
aniso: 0
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 1
nPOTScale: 1
lightmap: 0
compressionQuality: 50
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 0
spriteTessellationDetail: -1
textureType: 0
textureShape: 2
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 100
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: WebGL
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID:
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -190,6 +190,56 @@ Transform:
m_Children: []
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &165485609
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 165485610}
- component: {fileID: 165485611}
m_Layer: 5
m_Name: PlayerEditPanelViwer
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &165485610
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 165485609}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 1748531705}
m_Father: {fileID: 1067459529}
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 &165485611
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 165485609}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 29d585e25c3a4840871167630b3c7a49, type: 3}
m_Name:
m_EditorClassIdentifier:
IsOpenOnFirstLoad: 0
--- !u!1 &1067459524
GameObject:
m_ObjectHideFlags: 0
@@ -299,6 +349,7 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 1082771939}
- {fileID: 165485610}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
@@ -475,6 +526,81 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1200522801}
m_CullTransparentMesh: 1
--- !u!1 &1748531704
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1748531705}
- component: {fileID: 1748531707}
- component: {fileID: 1748531706}
m_Layer: 5
m_Name: EditComponent
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &1748531705
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1748531704}
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: 165485610}
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: 100, y: 100}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1748531706
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1748531704}
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 &1748531707
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1748531704}
m_CullTransparentMesh: 1
--- !u!1 &1780593830
GameObject:
m_ObjectHideFlags: 0

View File

@@ -4,10 +4,9 @@ using System.Collections.Generic;
namespace Core
{
/// <summary>
/// 专用于视图控制器层的 Locator。
/// 支持层级父Locator查找例如UI模块Locator → 游戏全局Locator
/// 专用于注册控制器的服务定位器
/// </summary>
public class UIViewerControllerLocator : ServiceLocator<UIViewerControllerLocator>
public class ControllerLocator : ServiceLocator<ControllerLocator>
{
// 这里可以按需添加额外的特化功能。
// 当前已经完整继承 Register、Resolve、TryGetWait 等功能。

View File

@@ -5,7 +5,8 @@ namespace Gameplay
public class Card
{
private CardData _cardData;
public Texture Texture => _cardData.CardTexture;
public Texture FrontTexture => _cardData.FrontCardTexture;
public Texture BackTexture => _cardData.BackCardTexture;
public string CardName => _cardData.CardName;
public string CardDescription => _cardData.CardDescription;
public EffectData[] Effects => _cardData.Effects;

View File

@@ -10,7 +10,8 @@ namespace Gameplay
public int CardID;
public string CardName;
public string CardDescription;
public Texture CardTexture;
public Texture FrontCardTexture;
public Texture BackCardTexture;
public EffectData[] Effects;
}

View File

@@ -1,5 +1,5 @@
using UnityEngine;
using Share;
using Interface;
namespace Gameplay
{
public class CardContext

View File

@@ -1,23 +1,62 @@
using System;
using UnityEngine;
using UnityEngine.UI;
using Interface;
using Core;
using Gameplay.Player;
namespace Gameplay
{
public class CardViewer : MonoBehaviour
public class CardViewer : MonoBehaviour, IInteractable
{
public Card Card;
[SerializeField] private MeshRenderer meshRenderer;
[SerializeField] private MeshRenderer frontMeshRenderer;
[SerializeField] private MeshRenderer backMeshRenderer;
[SerializeField] private Text cardNameText;
[SerializeField] private Text cardDescriptionText;
public void Setup(Card card)
private PlayerController _playerController;
private void Start()
{
ControllerLocator.Instance.TryGet<PlayerController>(out _playerController);
}
public void SetCard(Card card)
{
Card = card;
meshRenderer.material.mainTexture = card.Texture;
if (frontMeshRenderer != null && card.FrontTexture != null)
{
frontMeshRenderer.material.mainTexture = card.FrontTexture;
}
if (backMeshRenderer != null && card.BackTexture != null)
{
backMeshRenderer.material.mainTexture = card.BackTexture;
}
cardNameText.text = card.CardName;
cardDescriptionText.text = card.CardDescription;
}
}
}
public string GetInteractPrompt()
{
return "";
}
public void Interact(GameObject interactor)
{
}
public void OnGazeEnter(GameObject editor)
{
if(_playerController != null) _playerController.playerCardsController.StopRotatingCards();
}
public void OnGazeExit(GameObject editor)
{
if (_playerController != null) _playerController.playerCardsController.StartRotatingCards();
}
}
}

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 5db247b9fcb44b3f85bdcc7cdb634481
timeCreated: 1760575054

View File

@@ -1,7 +1,7 @@
using UnityEngine;
namespace Gameplay
{
// 从Resources文件夹加载卡牌数据的静态类
// 用来加载卡牌数据的静态类
public static class CardLoader
{
public static CardData GetCardDataByID(int cardID)
@@ -17,5 +17,15 @@ namespace Gameplay
Debug.LogError($"Card with ID {cardID} not found!");
return null;
}
public static Card GetCardByID(int cardID)
{
CardData cardData = GetCardDataByID(cardID);
if (cardData != null)
{
return new Card(cardData);
}
return null;
}
}
}

View File

@@ -3,7 +3,7 @@ using System.Collections;
using Core;
using Gameplay.Enemy;
using Gameplay.Player;
using Share;
using Interface;
using UnityEngine;
namespace Gameplay

View File

@@ -1,7 +1,7 @@
using System;
using UnityEngine;
using Gameplay;
using Share;
using Interface;
using Gameplay.Enemy;
using Gameplay.Player;

View File

@@ -1,7 +1,7 @@
using System;
using System.Collections.Generic;
using System.Linq;
using Share;
using Interface;
using UnityEngine;
namespace Gameplay.Enemy

View File

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

View File

@@ -0,0 +1,7 @@
namespace Script.Gameplay.Facility
{
public class EditComponent
{
}
}

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: bca7c28154234ab4b792dca4d2f92354
timeCreated: 1760629389

View File

@@ -0,0 +1,69 @@
using System;
using Gameplay.Player;
using UnityEngine;
using Interface;
namespace Script.Gameplay.Facility
{
public class FacilityController : MonoBehaviour, IInteractable, IEditable
{
public FacilityModifier facilityModifier;
private void Awake()
{
if (facilityModifier == null)
{
facilityModifier = GetComponent<FacilityModifier>();
}
}
private void Start()
{
}
public string GetInteractPrompt()
{
return "";
}
public void Interact(GameObject interactor)
{
}
public void OnGazeEnter(GameObject editor)
{
// 物体弹出按F可交互菜单
}
public void OnGazeExit(GameObject editor)
{
// 物体取消菜单
}
public void OnGazeEnter(PlayerEditController editor)
{
}
public void OnGazeExit(PlayerEditController editor)
{
}
public void BeginEdit()
{
}
public void EndEdit()
{
}
public IEditable GetEditable()
{
return this;
}
}
}

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 7986c88b8e1d4944832af56e23188597
timeCreated: 1760664530

View File

@@ -0,0 +1,27 @@
using UnityEngine;
namespace Script.Gameplay.Facility
{
public class FacilityModifier : MonoBehaviour
{
private Transform _transform;
private Collider _collider;
private Rigidbody _rigidbody;
public void ModifyComponent<T>(bool isOpen, T component) where T : Component
{
var targetComponent = this.GetComponent<T>();
if (targetComponent != null)
{
if (isOpen)
{
targetComponent.gameObject.SetActive(true);
}
else
{
targetComponent.gameObject.SetActive(false);
}
}
}
}
}

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: b1db33a437984a1a8fae09ab8c5de7e4
timeCreated: 1760667210

View File

@@ -1,12 +1,13 @@
using System;
using UnityEngine;
using UnityEngine.InputSystem;
using Core;
namespace Input
namespace Script.Gameplay.Input
{
public class InputManager : MonoSingleton<InputManager>, IInputManager
{
private PlayerInputActions _input; // 自动生成的输入类
public PlayerInputActions Input; // 自动生成的输入类
// 当前输入值
public Vector2 Move { get; private set; }
@@ -14,36 +15,43 @@ namespace Input
public bool JumpPressed { get; private set; }
public bool PausePressed { get; private set; }
public bool InteractPressed { get; private set; }
public bool EditPressed { get; private set; }
private bool _hasFocus = true;
private void Awake()
{
_input = new PlayerInputActions();
Input = new PlayerInputActions();
}
private void OnEnable()
{
_input.Enable();
Input.Enable();
// 注册事件
_input.Player.Move.performed += ctx => Move = ctx.ReadValue<Vector2>();
_input.Player.Move.canceled += ctx => Move = Vector2.zero;
Input.Player.Move.performed += ctx => Move = ctx.ReadValue<Vector2>();
Input.Player.Move.canceled += ctx => Move = Vector2.zero;
_input.Player.Look.performed += ctx => Look = ctx.ReadValue<Vector2>();
_input.Player.Look.canceled += ctx => Look = Vector2.zero;
Input.Player.Look.performed += ctx => Look = ctx.ReadValue<Vector2>();
Input.Player.Look.canceled += ctx => Look = Vector2.zero;
_input.Player.Jump.performed += ctx => JumpPressed = true;
_input.Player.Jump.canceled += ctx => JumpPressed = false;
Input.Player.Jump.performed += ctx => JumpPressed = true;
Input.Player.Jump.canceled += ctx => JumpPressed = false;
Input.Player.Pause.performed += ctx => PausePressed = true;
Input.Player.Pause.canceled += ctx => PausePressed = false;
// _input.Player.Pause.performed += ctx => PausePressed = true;
// _input.Player.Pause.canceled += ctx => PausePressed = false;
Input.Player.Interact.performed += ctx => InteractPressed = true;
Input.Player.Interact.canceled += ctx => InteractPressed = false;
_input.Player.Interact.performed += ctx => InteractPressed = true;
_input.Player.Interact.canceled += ctx => InteractPressed = false;
Input.Player.Edit.performed += ctx => EditPressed = true;
Input.Player.Edit.canceled += ctx => EditPressed = false;
}
private void OnDisable()
{
_input.Disable();
// 可选:取消注册以防止重复订阅(简单项目可不解除)
Input.Disable();
}
private void Start()
@@ -57,15 +65,15 @@ namespace Input
// if (PausePressed)
// {
// Debug.Log("Pause Pressed!");
// PausePressed = false; // 手动清除
// PausePressed = false; // 手动清除(如果需要瞬时)
// }
}
// 🔧 示例方法:允许外部模块手动启用/禁用输入(比如暂停菜单)
public void SetInputEnabled(bool enabled)
{
if (enabled) _input.Enable();
else _input.Disable();
if (enabled) Input.Enable();
else Input.Disable();
}
public void SetCursorState(bool visible, CursorLockMode lockMode)
@@ -78,11 +86,11 @@ namespace Input
{
if (enabled)
{
_input.Player.Look.Enable();
Input.Player.Look.Enable();
}
else
{
_input.Player.Look.Disable();
Input.Player.Look.Disable();
Look = Vector2.zero; // 禁用时清除Look值
}
}
@@ -91,13 +99,28 @@ namespace Input
{
if (enabled)
{
_input.Player.Move.Enable();
Input.Player.Move.Enable();
}
else
{
_input.Player.Move.Disable();
Input.Player.Move.Disable();
Move = Vector2.zero; // 禁用时清除Move值
}
}
// 当窗口获得/失去焦点时调用(玩家是否在注视游戏窗口)
private void OnApplicationFocus(bool hasFocus)
{
_hasFocus = hasFocus;
// 失去焦点视为系统级暂停
if (_hasFocus)
{
SetCursorState(_hasFocus, CursorLockMode.Locked);
}
else
{
SetCursorState(_hasFocus, CursorLockMode.None);
}
}
}
}
}

View File

@@ -15,7 +15,7 @@ using System.Collections.Generic;
using UnityEngine.InputSystem;
using UnityEngine.InputSystem.Utilities;
namespace Input
namespace Script.Gameplay.Input
{
public partial class @PlayerInputActions: IInputActionCollection2, IDisposable
{
@@ -64,6 +64,33 @@ namespace Input
""processors"": """",
""interactions"": """",
""initialStateCheck"": false
},
{
""name"": ""Pause"",
""type"": ""Button"",
""id"": ""822c2284-94e3-4636-894c-adfe85ac467d"",
""expectedControlType"": """",
""processors"": """",
""interactions"": """",
""initialStateCheck"": false
},
{
""name"": ""SwitchWatchMode"",
""type"": ""Button"",
""id"": ""73ffcbfd-15ae-4580-99c4-d7d06ff13bb6"",
""expectedControlType"": """",
""processors"": """",
""interactions"": """",
""initialStateCheck"": false
},
{
""name"": ""Edit"",
""type"": ""Button"",
""id"": ""20a9157a-918b-42f1-80b1-9e014426068e"",
""expectedControlType"": """",
""processors"": """",
""interactions"": """",
""initialStateCheck"": false
}
],
""bindings"": [
@@ -165,6 +192,39 @@ namespace Input
""action"": ""Interact"",
""isComposite"": false,
""isPartOfComposite"": false
},
{
""name"": """",
""id"": ""943ba523-b024-410e-a250-735a5ffdf786"",
""path"": ""<Keyboard>/escape"",
""interactions"": """",
""processors"": """",
""groups"": """",
""action"": ""Pause"",
""isComposite"": false,
""isPartOfComposite"": false
},
{
""name"": """",
""id"": ""47af0242-9835-4b1a-82c8-e3fc32489870"",
""path"": ""<Keyboard>/tab"",
""interactions"": """",
""processors"": """",
""groups"": """",
""action"": ""SwitchWatchMode"",
""isComposite"": false,
""isPartOfComposite"": false
},
{
""name"": """",
""id"": ""9e9bf8ec-8b3e-4230-a10c-ae874395711a"",
""path"": ""<Keyboard>/x"",
""interactions"": """",
""processors"": """",
""groups"": """",
""action"": ""Edit"",
""isComposite"": false,
""isPartOfComposite"": false
}
]
}
@@ -177,6 +237,9 @@ namespace Input
m_Player_Look = m_Player.FindAction("Look", throwIfNotFound: true);
m_Player_Jump = m_Player.FindAction("Jump", throwIfNotFound: true);
m_Player_Interact = m_Player.FindAction("Interact", throwIfNotFound: true);
m_Player_Pause = m_Player.FindAction("Pause", throwIfNotFound: true);
m_Player_SwitchWatchMode = m_Player.FindAction("SwitchWatchMode", throwIfNotFound: true);
m_Player_Edit = m_Player.FindAction("Edit", throwIfNotFound: true);
}
~@PlayerInputActions()
@@ -247,6 +310,9 @@ namespace Input
private readonly InputAction m_Player_Look;
private readonly InputAction m_Player_Jump;
private readonly InputAction m_Player_Interact;
private readonly InputAction m_Player_Pause;
private readonly InputAction m_Player_SwitchWatchMode;
private readonly InputAction m_Player_Edit;
public struct PlayerActions
{
private @PlayerInputActions m_Wrapper;
@@ -255,6 +321,9 @@ namespace Input
public InputAction @Look => m_Wrapper.m_Player_Look;
public InputAction @Jump => m_Wrapper.m_Player_Jump;
public InputAction @Interact => m_Wrapper.m_Player_Interact;
public InputAction @Pause => m_Wrapper.m_Player_Pause;
public InputAction @SwitchWatchMode => m_Wrapper.m_Player_SwitchWatchMode;
public InputAction @Edit => m_Wrapper.m_Player_Edit;
public InputActionMap Get() { return m_Wrapper.m_Player; }
public void Enable() { Get().Enable(); }
public void Disable() { Get().Disable(); }
@@ -276,6 +345,15 @@ namespace Input
@Interact.started += instance.OnInteract;
@Interact.performed += instance.OnInteract;
@Interact.canceled += instance.OnInteract;
@Pause.started += instance.OnPause;
@Pause.performed += instance.OnPause;
@Pause.canceled += instance.OnPause;
@SwitchWatchMode.started += instance.OnSwitchWatchMode;
@SwitchWatchMode.performed += instance.OnSwitchWatchMode;
@SwitchWatchMode.canceled += instance.OnSwitchWatchMode;
@Edit.started += instance.OnEdit;
@Edit.performed += instance.OnEdit;
@Edit.canceled += instance.OnEdit;
}
private void UnregisterCallbacks(IPlayerActions instance)
@@ -292,6 +370,15 @@ namespace Input
@Interact.started -= instance.OnInteract;
@Interact.performed -= instance.OnInteract;
@Interact.canceled -= instance.OnInteract;
@Pause.started -= instance.OnPause;
@Pause.performed -= instance.OnPause;
@Pause.canceled -= instance.OnPause;
@SwitchWatchMode.started -= instance.OnSwitchWatchMode;
@SwitchWatchMode.performed -= instance.OnSwitchWatchMode;
@SwitchWatchMode.canceled -= instance.OnSwitchWatchMode;
@Edit.started -= instance.OnEdit;
@Edit.performed -= instance.OnEdit;
@Edit.canceled -= instance.OnEdit;
}
public void RemoveCallbacks(IPlayerActions instance)
@@ -315,6 +402,9 @@ namespace Input
void OnLook(InputAction.CallbackContext context);
void OnJump(InputAction.CallbackContext context);
void OnInteract(InputAction.CallbackContext context);
void OnPause(InputAction.CallbackContext context);
void OnSwitchWatchMode(InputAction.CallbackContext context);
void OnEdit(InputAction.CallbackContext context);
}
}
}

View File

@@ -3,7 +3,7 @@ using UnityEngine;
using Gameplay;
using System.Collections.Generic;
namespace Share
namespace Interface
{
/// <summary>
/// 角色接口可受伤害、治疗和添加Buff、发生战斗

View File

@@ -0,0 +1,13 @@
using UnityEngine;
using Gameplay.Player;
namespace Interface
{
public interface IEditable
{
void OnGazeEnter(PlayerEditController editor); // 玩家开始注视时触发
void OnGazeExit(PlayerEditController editor); // 玩家停止注视时触发
void BeginEdit();
void EndEdit();
IEditable GetEditable();
}
}

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 8a22b94dcb1d4eb78b7b07ebd8967dc6
timeCreated: 1760629255

View File

@@ -1,9 +1,11 @@
using UnityEngine;
namespace Share
namespace Interface
{
public interface IInteractable
{
string GetInteractPrompt(); // 返回提示文字例如“按E打开门”
void Interact(GameObject interactor); // 当玩家交互时触发
void OnGazeEnter(GameObject editor); // 玩家开始注视时触发
void OnGazeExit(GameObject editor); // 玩家停止注视时触发
}
}

View File

@@ -1,5 +1,5 @@
using UnityEngine;
using Share;
using Interface;
namespace Map
{
public class FlightTrigger : MonoBehaviour

View File

@@ -1,6 +1,6 @@
using Core;
using UnityEngine;
using Input;
using Script.Gameplay.Input;
namespace Gameplay.Player
{
@@ -10,34 +10,28 @@ namespace Gameplay.Player
/// </summary>
public class PlayerCameraController : MonoBehaviour
{
[Header("References")]
[Tooltip("角色根 Transform用于水平旋转yaw")]
[Header("References")] [Tooltip("角色根 Transform用于水平旋转yaw")]
public Transform playerBody;
[Tooltip("如果相机不是挂载在同一物体上,可以指定相机 Transform可选")]
public Transform cameraTransform;
[Header("Sensitivity & Invert")]
[Tooltip("鼠标灵敏度")]
[Range(0.01f, 1f)]
[Header("Sensitivity & Invert")] [Tooltip("鼠标灵敏度")] [Range(0.01f, 1f)]
public float mouseSensitivity = 0.2f;
[Tooltip("反转垂直轴")]
public bool invertY = false;
[Tooltip("反转垂直轴")] public bool invertY = false;
[Header("Vertical Limits")]
[Tooltip("向上最大仰角(度)")]
[Header("Vertical Limits")] [Tooltip("向上最大仰角(度)")]
public float maxUpAngle = 60f;
[Tooltip("向下最大俯角(度)")]
public float maxDownAngle = 60f;
[Header("Smoothing")]
public bool enableSmoothing = false;
[Tooltip("旋转平滑时间(秒)")]
public float smoothTime = 0.05f;
[Tooltip("向下最大俯角(度)")] public float maxDownAngle = 60f;
[Header("Smoothing")] public bool enableSmoothing = false;
[Tooltip("旋转平滑时间(秒)")] public float smoothTime = 0.05f;
// internal state
private float xRotation = 0f; // 垂直角pitch
private float yaw = 0f; // 水平角yaw
private float yaw = 0f; // 水平角yaw
private float smoothVelocityPitch = 0f;
private float smoothVelocityYaw = 0f;
@@ -50,7 +44,6 @@ namespace Gameplay.Player
Vector3 euler = cameraTransform.localEulerAngles;
xRotation = NormalizeAngle(euler.x);
yaw = NormalizeAngle(playerBody ? playerBody.eulerAngles.y : transform.eulerAngles.y);
}
void Update()
@@ -71,8 +64,10 @@ namespace Gameplay.Player
if (enableSmoothing)
{
float smoothPitch = Mathf.SmoothDampAngle(cameraTransform.localEulerAngles.x, xRotation, ref smoothVelocityPitch, smoothTime);
float smoothYaw = Mathf.SmoothDampAngle(playerBody ? playerBody.eulerAngles.y : transform.eulerAngles.y, yaw, ref smoothVelocityYaw, smoothTime);
float smoothPitch = Mathf.SmoothDampAngle(cameraTransform.localEulerAngles.x, xRotation,
ref smoothVelocityPitch, smoothTime);
float smoothYaw = Mathf.SmoothDampAngle(playerBody ? playerBody.eulerAngles.y : transform.eulerAngles.y,
yaw, ref smoothVelocityYaw, smoothTime);
cameraTransform.localRotation = Quaternion.Euler(smoothPitch, 0f, 0f);
if (playerBody)
@@ -97,5 +92,7 @@ namespace Gameplay.Player
angle = (angle + 180f) % 360f - 180f;
return angle;
}
}
}
}

View File

@@ -0,0 +1,114 @@
using System;
using System.Collections.Generic;
using System.Numerics;
using UnityEngine;
using Quaternion = UnityEngine.Quaternion;
using Vector3 = UnityEngine.Vector3;
namespace Gameplay.Player
{
public class PlayerCardsController : MonoBehaviour
{
[SerializeField] private float radius = 2f; // 卡牌围绕玩家旋转的半径
[SerializeField] private float rotationSpeed = 50f; // 卡牌旋转
[SerializeField] private float highOffset = 1f; // 卡牌高度偏移
public bool IsRotating = true; // 是否旋转卡牌
[SerializeField] private GameObject cardPrefab; // 卡牌预制体
public List<CardViewer> Cards;
private Transform playerTransform;
private void Update()
{
if (Cards != null)
{
//RotateCards();
}
}
// 生成卡牌实体
// 生成的卡牌实体围绕着玩家旋转
public void GenerateCards(List<Card> cards)
{
playerTransform = this.transform;
Cards = new List<CardViewer>();
for (int i = 0; i < cards.Count; i++)
{
float angle = i * (360f / cards.Count);
float rad = angle * Mathf.Deg2Rad;
Vector3 cardPosition = new Vector3(
playerTransform.position.x + radius * Mathf.Cos(rad),
playerTransform.position.y + highOffset,
playerTransform.position.z + radius * Mathf.Sin(rad)
);
GameObject cardObject = Instantiate(cardPrefab, cardPosition, Quaternion.identity);
Vector3 playerPosition = new Vector3(
playerTransform.position.x,
playerTransform.position.y + highOffset,
playerTransform.position.z
);
Cards[i].transform.LookAt(playerPosition);
CardViewer cardViewer = cardObject.GetComponent<CardViewer>();
cardViewer.SetCard(cards[i]);
Cards.Add(cardViewer);
}
}
// 旋转已经生成的卡牌实体
public void RotateCards()
{
if (!IsRotating) return;
for (int i = 0; i < Cards.Count; i++)
{
float angle = i * (360f / Cards.Count) + Time.time * rotationSpeed;
float rad = angle * Mathf.Deg2Rad;
Vector3 cardPosition = new Vector3(
playerTransform.position.x + radius * Mathf.Cos(rad),
playerTransform.position.y + highOffset,
playerTransform.position.z + radius * Mathf.Sin(rad)
);
Cards[i].transform.position = cardPosition;
Vector3 playerPosition = new Vector3(
playerTransform.position.x,
playerTransform.position.y + highOffset,
playerTransform.position.z
);
Cards[i].transform.LookAt(playerPosition);
// 卡牌绕着y轴旋转180度从而让卡牌正面朝向玩家
Cards[i].transform.Rotate(0, 180, 0);
}
}
public void StopRotatingCards()
{
IsRotating = false;
}
public void StartRotatingCards()
{
IsRotating = true;
}
// 删除卡牌实体
public void DeleteCards(CardViewer card)
{
Cards.Remove(card);
Destroy(card.gameObject);
}
public void ClearCards()
{
foreach (var card in Cards)
{
Destroy(card.gameObject);
}
Cards.Clear();
}
}
}

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: cb0c79a8230343c29d902ad22e044d2b
timeCreated: 1760574485

View File

@@ -1,9 +0,0 @@
using UnityEngine;
namespace Gameplay.Player
{
public class PlayerConfig : MonoBehaviour
{
}
}

View File

@@ -1,3 +0,0 @@
fileFormatVersion: 2
guid: 6ff9e093e80541dc93d1186499dbfd79
timeCreated: 1760498762

View File

@@ -2,7 +2,7 @@ using System;
using System.Collections.Generic;
using System.Linq;
using Gameplay;
using Share;
using Interface;
using UnityEngine;
using Core;
@@ -23,21 +23,25 @@ namespace Gameplay.Player
private PlayerMoveController playerMoveController;
private PlayerCameraController playerCameraController;
public PlayerCardsController playerCardsController;
private void Awake()
{
playerMoveController = GetComponent<PlayerMoveController>();
playerCameraController = GetComponent<PlayerCameraController>();
playerCardsController = GetComponent<PlayerCardsController>();
CurrentHealth = MaxHealth;
MyCardBook = new CardBook(cardBookData);
Cards = new List<Card>();
UIViewerControllerLocator.Instance.Register(this);
ControllerLocator.Instance.Register(this);
}
private void Start()
{
Cards.Add(CardLoader.GetCardByID(1));
Cards.Add(CardLoader.GetCardByID(2));
}
@@ -60,6 +64,8 @@ namespace Gameplay.Player
Debug.Log("Player StartCombat");
IsFlight = true;
playerMoveController.SetSpeed(0.5f);
playerCardsController.GenerateCards(Cards);
}
public void EndFlight()
@@ -67,6 +73,8 @@ namespace Gameplay.Player
Debug.Log("Player EndFlight");
IsFlight = false;
playerMoveController.ResetSpeed();
playerCardsController.ClearCards();
}
public bool HasCardsLeft()

View File

@@ -0,0 +1,86 @@
using UnityEngine;
using Interface;
using Script.Gameplay.Input;
namespace Gameplay.Player
{
public class PlayerEditController:MonoBehaviour
{
[SerializeField] private float interactRange = 15f;
[SerializeField] private LayerMask interactableLayer;
[SerializeField] private Camera playerCamera;
[SerializeField] private bool isDrawGizmos;
private IEditable currentTarget; // 射线命中的当前可编辑对象(用于按键交互)
private IEditable previousGazedTarget; // 上一次注视的对象(用于注视进入/离开事件)
private InputManager inputManager;
void Start()
{
inputManager = InputManager.Instance;
if (playerCamera == null)
playerCamera = GameObject.FindWithTag("MainCamera").GetComponent<Camera>();
inputManager.Input.Player.SwitchWatchMode.performed += ctx =>
{
if (currentTarget != null) currentTarget.BeginEdit();
};
}
void Update()
{
DetectInteractable();
}
void DetectInteractable()
{
if (playerCamera == null) return;
Ray ray = new Ray(playerCamera.transform.position, playerCamera.transform.forward);
if (Physics.Raycast(ray, out RaycastHit hit, interactRange, interactableLayer))
{
IEditable hitEditable = hit.collider.GetComponent<IEditable>();
// 如果命中对象与之前注视的不一样,触发进入/离开事件
if (hitEditable != previousGazedTarget)
{
if (previousGazedTarget != null)
{
previousGazedTarget.OnGazeExit(this);
}
if (hitEditable != null)
{
hitEditable.OnGazeEnter(this);
}
previousGazedTarget = hitEditable;
}
currentTarget = hitEditable;
}
else
{
// 没有命中时,如果之前有注视对象,触发离开
if (previousGazedTarget != null)
{
previousGazedTarget.OnGazeExit(this);
previousGazedTarget = null;
}
currentTarget = null;
}
}
void OnDrawGizmos()
{
if(!isDrawGizmos) return;
if (playerCamera == null) return;
Gizmos.color = Color.red;
Vector3 origin = playerCamera.transform.position;
Vector3 direction = playerCamera.transform.forward * interactRange;
Gizmos.DrawLine(origin, origin + direction);
}
}
}

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 18842cb320964275a76e2d57bee62adf
timeCreated: 1760664958

View File

@@ -1,7 +1,7 @@
using UnityEngine;
using Share;
using Interface;
using System;
using Input;
using Script.Gameplay.Input;
namespace Gameplay.Player
{
@@ -10,44 +10,70 @@ namespace Gameplay.Player
[SerializeField] private float interactRange = 15f;
[SerializeField] private LayerMask interactableLayer;
[SerializeField] private Camera playerCamera;
[SerializeField] private bool isDrawGizmos;
private IInteractable currentTarget;
private IInteractable currentTarget; // 被射线命中的当前可交互对象(用于按键交互)
private IInteractable previousGazedTarget; // 上一次注视的对象(用于注视进入/离开事件)
void Start()
{
playerCamera = GameObject.FindWithTag("MainCamera").GetComponent<Camera>();
if (playerCamera == null)
playerCamera = GameObject.FindWithTag("MainCamera").GetComponent<Camera>();
var input = InputManager.Instance.Input;
input.Player.SwitchWatchMode.performed += ctx => currentTarget.Interact(this.gameObject);;
}
void Update()
{
DetectInteractable();
if (currentTarget != null && InputManager.Instance.InteractPressed)
{
currentTarget.Interact(this.gameObject);
}
}
void DetectInteractable()
{
if (playerCamera == null) return;
Ray ray = new Ray(playerCamera.transform.position, playerCamera.transform.forward);
if (Physics.Raycast(ray, out RaycastHit hit, interactRange, interactableLayer))
{
currentTarget = hit.collider.GetComponent<IInteractable>();
if (currentTarget != null)
IInteractable hitInteractable = hit.collider.GetComponent<IInteractable>();
// 如果命中对象与之前注视的不一样,触发进入/离开事件
if (hitInteractable != previousGazedTarget)
{
// 这里可以显示交互提示UI例如 “E - 开门”
Debug.Log(currentTarget.GetInteractPrompt());
if (previousGazedTarget != null)
{
previousGazedTarget.OnGazeExit(this.gameObject);
}
if (hitInteractable != null)
{
hitInteractable.OnGazeEnter(this.gameObject);
// 这里可以显示交互提示UI例如 “E - 开门”
Debug.Log(hitInteractable.GetInteractPrompt());
}
previousGazedTarget = hitInteractable;
}
currentTarget = hitInteractable;
}
else
{
// 没有命中时,如果之前有注视对象,触发离开
if (previousGazedTarget != null)
{
previousGazedTarget.OnGazeExit(this.gameObject);
previousGazedTarget = null;
}
currentTarget = null;
}
}
void OnDrawGizmos()
{
if (isDrawGizmos) return;
if (playerCamera == null) return;
Gizmos.color = Color.green;
Vector3 origin = playerCamera.transform.position;

View File

@@ -1,6 +1,6 @@
using System;
using Core;
using Input;
using Script.Gameplay.Input;
using Map;
using UnityEngine;

View File

@@ -0,0 +1,72 @@
using System;
using Script.Gameplay.Input;
using UnityEngine;
namespace Gameplay.Player
{
public enum WatchMode
{
Normal,
Inside,
Outside
}
public class PlayerWatchModeSwitcher : MonoBehaviour
{
[SerializeField] private Camera cam;
private InputManager inputManager;
private WatchMode currentMode = WatchMode.Normal;
private void Start()
{
inputManager = InputManager.Instance;
SetWatchMode(currentMode);
var input = inputManager.Input;
input.Player.SwitchWatchMode.performed += ctx =>
{
currentMode = (WatchMode)(((int)currentMode + 1) % 3);
SetWatchMode(currentMode);
};;
}
public void SetWatchMode(WatchMode mode)
{
currentMode = mode;
SwitchWatchMode(mode);
}
// 实现按Tap键实现在WatchMode 3个模式切换并通过SwitchWatchMode设置正确的相机模式
private void SwitchWatchMode(WatchMode watchMode)
{
switch (watchMode)
{
case WatchMode.Normal:
SetSeeLines(false);
break;
case WatchMode.Inside:
SetSeeLines(false);
break;
case WatchMode.Outside:
SetSeeLines(true);
break;
default:
throw new ArgumentOutOfRangeException();
}
}
private void SetSeeLines(bool seeLine)
{
int linesLayer = LayerMask.NameToLayer("Lines");
int mask = cam.cullingMask;
if (seeLine)
mask |= 1 << linesLayer; // 打开
else
mask &= ~(1 << linesLayer); // 关闭
cam.cullingMask = mask;
}
}
}

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 2361e682e26b43ffb6ff9615d39c487e
timeCreated: 1760663032

View File

@@ -0,0 +1,20 @@
using Core;
using UnityEngine;
using UnityEngine;
namespace UI
{
public class FacilityComponentEditViewer : MonoBehaviour
{
public Component component;
public bool IsOpen;
public void SetComponent()
{
if (component != null)
{
IsOpen = !IsOpen;
component.gameObject.SetActive(IsOpen);
}
}
}
}

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 126d8afe0e304d548dc13c4df6405e17
timeCreated: 1760671378

View File

@@ -0,0 +1,24 @@
using System;
using UnityEngine;
using Core;
using Gameplay.Player;
using Script.Gameplay.Facility;
namespace UI
{
public class PlayerEditPanelViewer : UIBase
{
private PlayerEditController controller;
private FacilityController currentFacilityController;
private void Start()
{
}
// 根据currentFacilityController 生成其对应的组件
private void GenerateComponent()
{
}
}
}

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 29d585e25c3a4840871167630b3c7a49
timeCreated: 1760670557

View File

@@ -13,7 +13,7 @@ namespace UI
private void Start()
{
UIViewerControllerLocator.Instance.TryGetWait<PlayerController>(OnGet);
ControllerLocator.Instance.TryGetWait<PlayerController>(OnGet);
}
private void Update()

View File

@@ -40,6 +40,33 @@
"processors": "",
"interactions": "",
"initialStateCheck": false
},
{
"name": "Pause",
"type": "Button",
"id": "822c2284-94e3-4636-894c-adfe85ac467d",
"expectedControlType": "",
"processors": "",
"interactions": "",
"initialStateCheck": false
},
{
"name": "SwitchWatchMode",
"type": "Button",
"id": "73ffcbfd-15ae-4580-99c4-d7d06ff13bb6",
"expectedControlType": "",
"processors": "",
"interactions": "",
"initialStateCheck": false
},
{
"name": "Edit",
"type": "Button",
"id": "20a9157a-918b-42f1-80b1-9e014426068e",
"expectedControlType": "",
"processors": "",
"interactions": "",
"initialStateCheck": false
}
],
"bindings": [
@@ -141,6 +168,39 @@
"action": "Interact",
"isComposite": false,
"isPartOfComposite": false
},
{
"name": "",
"id": "943ba523-b024-410e-a250-735a5ffdf786",
"path": "<Keyboard>/escape",
"interactions": "",
"processors": "",
"groups": "",
"action": "Pause",
"isComposite": false,
"isPartOfComposite": false
},
{
"name": "",
"id": "47af0242-9835-4b1a-82c8-e3fc32489870",
"path": "<Keyboard>/tab",
"interactions": "",
"processors": "",
"groups": "",
"action": "SwitchWatchMode",
"isComposite": false,
"isPartOfComposite": false
},
{
"name": "",
"id": "9e9bf8ec-8b3e-4230-a10c-ae874395711a",
"path": "<Keyboard>/x",
"interactions": "",
"processors": "",
"groups": "",
"action": "Edit",
"isComposite": false,
"isPartOfComposite": false
}
]
}

View File

@@ -11,4 +11,4 @@ ScriptedImporter:
generateWrapperCode: 1
wrapperCodePath: Assets/Script/Gameplay/Input/PlayerInputActions.cs
wrapperClassName:
wrapperCodeNamespace: Input
wrapperCodeNamespace: Script.Gameplay.Input

View File

@@ -0,0 +1,66 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!850595691 &4890085278179872738
LightingSettings:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: LightSetting
serializedVersion: 6
m_GIWorkflowMode: 1
m_EnableBakedLightmaps: 1
m_EnableRealtimeLightmaps: 0
m_RealtimeEnvironmentLighting: 1
m_BounceScale: 1
m_AlbedoBoost: 1
m_IndirectOutputScale: 1
m_UsingShadowmask: 1
m_BakeBackend: 1
m_LightmapMaxSize: 1024
m_BakeResolution: 40
m_Padding: 2
m_LightmapCompression: 3
m_AO: 0
m_AOMaxDistance: 1
m_CompAOExponent: 1
m_CompAOExponentDirect: 0
m_ExtractAO: 0
m_MixedBakeMode: 2
m_LightmapsBakeMode: 1
m_FilterMode: 1
m_LightmapParameters: {fileID: 15204, guid: 0000000000000000f000000000000000, type: 0}
m_ExportTrainingData: 0
m_TrainingDataDestination: TrainingData
m_RealtimeResolution: 2
m_ForceWhiteAlbedo: 0
m_ForceUpdates: 0
m_FinalGather: 0
m_FinalGatherRayCount: 256
m_FinalGatherFiltering: 1
m_PVRCulling: 1
m_PVRSampling: 1
m_PVRDirectSampleCount: 32
m_PVRSampleCount: 512
m_PVREnvironmentSampleCount: 256
m_PVREnvironmentReferencePointCount: 2048
m_LightProbeSampleCountMultiplier: 4
m_PVRBounces: 2
m_PVRMinBounces: 2
m_PVREnvironmentImportanceSampling: 1
m_PVRFilteringMode: 1
m_PVRDenoiserTypeDirect: 1
m_PVRDenoiserTypeIndirect: 1
m_PVRDenoiserTypeAO: 1
m_PVRFilterTypeDirect: 0
m_PVRFilterTypeIndirect: 0
m_PVRFilterTypeAO: 0
m_PVRFilteringGaussRadiusDirect: 1
m_PVRFilteringGaussRadiusIndirect: 5
m_PVRFilteringGaussRadiusAO: 2
m_PVRFilteringAtrousPositionSigmaDirect: 0.5
m_PVRFilteringAtrousPositionSigmaIndirect: 2
m_PVRFilteringAtrousPositionSigmaAO: 1
m_PVRTiledBaking: 0
m_NumRaysToShootPerTexel: -1
m_RespectSceneVisibilityWhenBakingGI: 0

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 06bbce95c474a2f4885359ffd5fad188
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 4890085278179872738
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -12,7 +12,7 @@ TagManager:
- Water
- UI
- Ground
-
- Lines
-
-
-