diff --git a/Assets/Script/Core/Input.meta b/Assets/Art.meta
similarity index 77%
rename from Assets/Script/Core/Input.meta
rename to Assets/Art.meta
index 2574bda..0c26efe 100644
--- a/Assets/Script/Core/Input.meta
+++ b/Assets/Art.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 656856e514875b444af5c8db9035beea
+guid: 8176c44b89d25d2459486b8e89bf3e5a
folderAsset: yes
DefaultImporter:
externalObjects: {}
diff --git a/Assets/Art/Material.meta b/Assets/Art/Material.meta
new file mode 100644
index 0000000..303db47
--- /dev/null
+++ b/Assets/Art/Material.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: a1a584ba640fdf947811fd883b9f93ce
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Art/Material/Card.mat b/Assets/Art/Material/Card.mat
new file mode 100644
index 0000000..8e1b5df
--- /dev/null
+++ b/Assets/Art/Material/Card.mat
@@ -0,0 +1,133 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!21 &2100000
+Material:
+ serializedVersion: 8
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: Card
+ m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, 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
+ - _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
+ - _Smoothness: 0.5
+ - _SmoothnessTextureChannel: 0
+ - _SpecularHighlights: 1
+ - _SrcBlend: 1
+ - _SrcBlendAlpha: 1
+ - _Surface: 0
+ - _WorkflowMode: 1
+ - _ZWrite: 1
+ m_Colors:
+ - _BaseColor: {r: 1, g: 1, b: 1, a: 1}
+ - _Color: {r: 1, g: 1, b: 1, 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: []
+--- !u!114 &2981149668802641548
+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
diff --git a/Assets/Art/Material/Card.mat.meta b/Assets/Art/Material/Card.mat.meta
new file mode 100644
index 0000000..68c1a07
--- /dev/null
+++ b/Assets/Art/Material/Card.mat.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 9eca9c0d200107c47a44ce474d55d622
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 2100000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Art/Model.meta b/Assets/Art/Model.meta
new file mode 100644
index 0000000..a471f8b
--- /dev/null
+++ b/Assets/Art/Model.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: a4e6f4cbd99127f4d87a6aa57926b249
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Art/Model/card (6).fbx b/Assets/Art/Model/card (6).fbx
new file mode 100644
index 0000000..c8c668b
Binary files /dev/null and b/Assets/Art/Model/card (6).fbx differ
diff --git a/Assets/Art/Model/card (6).fbx.meta b/Assets/Art/Model/card (6).fbx.meta
new file mode 100644
index 0000000..c4adc6e
--- /dev/null
+++ b/Assets/Art/Model/card (6).fbx.meta
@@ -0,0 +1,109 @@
+fileFormatVersion: 2
+guid: 385fcf3412d956c4ab650555ee5f584d
+ModelImporter:
+ serializedVersion: 22200
+ internalIDToNameTable: []
+ externalObjects: {}
+ materials:
+ materialImportMode: 2
+ materialName: 0
+ materialSearch: 1
+ materialLocation: 1
+ animations:
+ legacyGenerateAnimations: 4
+ bakeSimulation: 0
+ resampleCurves: 1
+ optimizeGameObjects: 0
+ removeConstantScaleCurves: 0
+ motionNodeName:
+ rigImportErrors:
+ rigImportWarnings:
+ animationImportErrors:
+ animationImportWarnings:
+ animationRetargetingWarnings:
+ animationDoRetargetingWarnings: 0
+ importAnimatedCustomProperties: 0
+ importConstraints: 0
+ animationCompression: 1
+ animationRotationError: 0.5
+ animationPositionError: 0.5
+ animationScaleError: 0.5
+ animationWrapMode: 0
+ extraExposedTransformPaths: []
+ extraUserProperties: []
+ clipAnimations: []
+ isReadable: 0
+ meshes:
+ lODScreenPercentages: []
+ globalScale: 1
+ meshCompression: 0
+ addColliders: 0
+ useSRGBMaterialColor: 1
+ sortHierarchyByName: 1
+ importPhysicalCameras: 1
+ importVisibility: 1
+ importBlendShapes: 1
+ importCameras: 1
+ importLights: 1
+ nodeNameCollisionStrategy: 1
+ fileIdsGeneration: 2
+ swapUVChannels: 0
+ generateSecondaryUV: 0
+ useFileUnits: 1
+ keepQuads: 0
+ weldVertices: 1
+ bakeAxisConversion: 0
+ preserveHierarchy: 0
+ skinWeightsMode: 0
+ maxBonesPerVertex: 4
+ minBoneWeight: 0.001
+ optimizeBones: 1
+ meshOptimizationFlags: -1
+ indexFormat: 0
+ secondaryUVAngleDistortion: 8
+ secondaryUVAreaDistortion: 15.000001
+ secondaryUVHardAngle: 88
+ secondaryUVMarginMethod: 1
+ secondaryUVMinLightmapResolution: 40
+ secondaryUVMinObjectScale: 1
+ secondaryUVPackMargin: 4
+ useFileScale: 1
+ strictVertexDataChecks: 0
+ tangentSpace:
+ normalSmoothAngle: 60
+ normalImportMode: 0
+ tangentImportMode: 3
+ normalCalculationMode: 4
+ legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0
+ blendShapeNormalImportMode: 1
+ normalSmoothingSource: 0
+ referencedClips: []
+ importAnimation: 1
+ humanDescription:
+ serializedVersion: 3
+ human: []
+ skeleton: []
+ armTwist: 0.5
+ foreArmTwist: 0.5
+ upperLegTwist: 0.5
+ legTwist: 0.5
+ armStretch: 0.05
+ legStretch: 0.05
+ feetSpacing: 0
+ globalScale: 1
+ rootMotionBoneName:
+ hasTranslationDoF: 0
+ hasExtraRoot: 0
+ skeletonHasParents: 1
+ lastHumanDescriptionAvatarSource: {instanceID: 0}
+ autoGenerateAvatarMappingIfUnspecified: 1
+ animationType: 2
+ humanoidOversampling: 1
+ avatarSetup: 0
+ addHumanoidExtraRootOnlyWhenUsingAvatar: 1
+ importBlendShapeDeformPercent: 1
+ remapMaterialsIfMaterialImportModeIsNone: 0
+ additionalBone: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Art/Model/textures.meta b/Assets/Art/Model/textures.meta
new file mode 100644
index 0000000..82852fe
--- /dev/null
+++ b/Assets/Art/Model/textures.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 8f38291dc9cf3e94ca491873081b7dfe
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Art/Model/textures/我的贴图.png b/Assets/Art/Model/textures/我的贴图.png
new file mode 100644
index 0000000..1d53d24
Binary files /dev/null and b/Assets/Art/Model/textures/我的贴图.png differ
diff --git a/Assets/Art/Model/textures/我的贴图.png.meta b/Assets/Art/Model/textures/我的贴图.png.meta
new file mode 100644
index 0000000..96add68
--- /dev/null
+++ b/Assets/Art/Model/textures/我的贴图.png.meta
@@ -0,0 +1,140 @@
+fileFormatVersion: 2
+guid: d0f97c83961761f41833a419f04184d6
+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: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 1
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ 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: 1
+ 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: 50
+ 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:
diff --git a/Assets/Art/Model/textures/未命名.001.png b/Assets/Art/Model/textures/未命名.001.png
new file mode 100644
index 0000000..603e8e0
Binary files /dev/null and b/Assets/Art/Model/textures/未命名.001.png differ
diff --git a/Assets/Art/Model/textures/未命名.001.png.meta b/Assets/Art/Model/textures/未命名.001.png.meta
new file mode 100644
index 0000000..242cc4f
--- /dev/null
+++ b/Assets/Art/Model/textures/未命名.001.png.meta
@@ -0,0 +1,140 @@
+fileFormatVersion: 2
+guid: c33fd932dfcb26f44800c67783066371
+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: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 1
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ 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: 1
+ 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: 50
+ 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:
diff --git a/Assets/Plugins.meta b/Assets/Plugins.meta
new file mode 100644
index 0000000..bbc8e75
--- /dev/null
+++ b/Assets/Plugins.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 540729887a28e3c46b6b223876009386
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Plugins/Demigiant.meta b/Assets/Plugins/Demigiant.meta
new file mode 100644
index 0000000..5e52d31
--- /dev/null
+++ b/Assets/Plugins/Demigiant.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: d4af475d83a839046b391b0c46a44410
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Plugins/Demigiant/DOTween.meta b/Assets/Plugins/Demigiant/DOTween.meta
new file mode 100644
index 0000000..cbebc39
--- /dev/null
+++ b/Assets/Plugins/Demigiant/DOTween.meta
@@ -0,0 +1,21 @@
+fileFormatVersion: 2
+guid: a50bd9a009c8dfc4ebd88cc8101225a7
+labels:
+- Tween
+- Tweening
+- Animation
+- HOTween
+- Paths
+- iTween
+- DFTween
+- LeanTween
+- Ease
+- Easing
+- Shake
+- Punch
+- 2DToolkit
+- TextMeshPro
+- Text
+folderAsset: yes
+DefaultImporter:
+ userData:
diff --git a/Assets/Plugins/Demigiant/DOTween/DOTween.XML b/Assets/Plugins/Demigiant/DOTween/DOTween.XML
new file mode 100644
index 0000000..46e79c4
--- /dev/null
+++ b/Assets/Plugins/Demigiant/DOTween/DOTween.XML
@@ -0,0 +1,3089 @@
+
+
+
+ DOTween
+
+
+
+
+ Types of autoPlay behaviours
+
+
+
+ No tween is automatically played
+
+
+ Only Sequences are automatically played
+
+
+ Only Tweeners are automatically played
+
+
+ All tweens are automatically played
+
+
+
+ What axis to constrain in case of Vector tweens
+
+
+
+ Called the first time the tween is set in a playing state, after any eventual delay
+
+
+
+ Used in place of System.Func, which is not available in mscorlib.
+
+
+
+
+ Used in place of System.Action.
+
+
+
+
+ Public so it can be used by lose scripts related to DOTween (like DOTweenAnimation)
+
+
+
+
+ Used to separate DOTween class from the MonoBehaviour instance (in order to use static constructors on DOTween).
+ Contains all instance-based methods
+
+
+
+ Used internally inside Unity Editor, as a trick to update DOTween's inspector at every frame
+
+
+
+ Directly sets the current max capacity of Tweeners and Sequences
+ (meaning how many Tweeners and Sequences can be running at the same time),
+ so that DOTween doesn't need to automatically increase them in case the max is reached
+ (which might lead to hiccups when that happens).
+ Sequences capacity must be less or equal to Tweeners capacity
+ (if you pass a low Tweener capacity it will be automatically increased to match the Sequence's).
+ Beware: use this method only when there are no tweens running.
+
+ Max Tweeners capacity.
+ Default: 200
+ Max Sequences capacity.
+ Default: 50
+
+
+
+ This class contains a C# port of the easing equations created by Robert Penner (http://robertpenner.com/easing).
+
+
+
+
+ Easing equation function for a bounce (exponentially decaying parabolic bounce) easing in: accelerating from zero velocity.
+
+
+ Current time (in frames or seconds).
+
+
+ Expected easing duration (in frames or seconds).
+
+ Unused: here to keep same delegate for all ease types.
+ Unused: here to keep same delegate for all ease types.
+
+ The eased value.
+
+
+
+
+ Easing equation function for a bounce (exponentially decaying parabolic bounce) easing out: decelerating from zero velocity.
+
+
+ Current time (in frames or seconds).
+
+
+ Expected easing duration (in frames or seconds).
+
+ Unused: here to keep same delegate for all ease types.
+ Unused: here to keep same delegate for all ease types.
+
+ The eased value.
+
+
+
+
+ Easing equation function for a bounce (exponentially decaying parabolic bounce) easing in/out: acceleration until halfway, then deceleration.
+
+
+ Current time (in frames or seconds).
+
+
+ Expected easing duration (in frames or seconds).
+
+ Unused: here to keep same delegate for all ease types.
+ Unused: here to keep same delegate for all ease types.
+
+ The eased value.
+
+
+
+
+ Returns a value between 0 and 1 (inclusive) based on the elapsed time and ease selected
+
+
+
+
+ Returns a value between 0 and 1 (inclusive) based on the elapsed time and ease selected
+
+
+
+
+ Used to interpret AnimationCurves as eases.
+ Public so it can be used by external ease factories
+
+
+
+
+ Behaviour in case a tween nested inside a Sequence fails and is captured by safe mode
+
+
+
+ If the Sequence contains other elements, kill the failed tween but preserve the rest
+
+
+ Kill the whole Sequence
+
+
+
+ Log types thrown by errors captured and prevented by safe mode
+
+
+
+ No logs. NOT RECOMMENDED
+
+
+ Throw a normal log
+
+
+ Throw a warning log (default)
+
+
+ Throw an error log
+
+
+
+ Additional notices passed to plugins when updating.
+ Public so it can be used by custom plugins. Internally, only PathPlugin uses it
+
+
+
+
+ None
+
+
+
+
+ Lets the plugin know that we restarted or rewinded
+
+
+
+
+ OnRewind callback behaviour (can only be set via DOTween's Utility Panel)
+
+
+
+
+ When calling Rewind or PlayBackwards/SmoothRewind, OnRewind callbacks will be fired only if the tween isn't already rewinded
+
+
+
+
+ When calling Rewind, OnRewind callbacks will always be fired, even if the tween is already rewinded.
+ When calling PlayBackwards/SmoothRewind instead, OnRewind callbacks will be fired only if the tween isn't already rewinded
+
+
+
+
+ When calling Rewind or PlayBackwards/SmoothRewind, OnRewind callbacks will always be fired, even if the tween is already rewinded
+
+
+
+
+ Public only so custom shortcuts can access some of these methods
+
+
+
+
+ INTERNAL: used by DO shortcuts and Modules to set special startup mode
+
+
+
+
+ INTERNAL: used by DO shortcuts and Modules to set the tween as blendable
+
+
+
+
+ INTERNAL: used by DO shortcuts and Modules to prevent a tween from using a From setup even if passed
+
+
+
+
+ Used to dispatch commands that need to be captured externally, usually by Modules
+
+
+
+
+ Various utils
+
+
+
+
+ Returns a Vector3 with z = 0
+
+
+
+
+ Returns the 2D angle between two vectors
+
+
+
+
+ Returns a point on a circle with the given center and radius,
+ using Unity's circle coordinates (0° points up and increases clockwise)
+
+
+
+
+ Uses approximate equality on each axis instead of Unity's Vector3 equality,
+ because the latter fails (in some cases) when assigning a Vector3 to a transform.position and then checking it.
+
+
+
+
+ Looks for the type within all possible project assembly names
+
+
+
+ NO-GC METHOD: changes the start value of a tween and rewinds it (without pausing it).
+ Has no effect with tweens that are inside Sequences
+ The new start value
+ If bigger than 0 applies it as the new tween duration
+
+
+ NO-GC METHOD: changes the end value of a tween and rewinds it (without pausing it).
+ Has no effect with tweens that are inside Sequences
+ The new end value
+ If TRUE the start value will become the current target's value, otherwise it will stay the same
+
+
+ NO-GC METHOD: changes the end value of a tween and rewinds it (without pausing it).
+ Has no effect with tweens that are inside Sequences
+ The new end value
+ If bigger than 0 applies it as the new tween duration
+ If TRUE the start value will become the current target's value, otherwise it will stay the same
+
+
+ NO-GC METHOD: changes the start and end value of a tween and rewinds it (without pausing it).
+ Has no effect with tweens that are inside Sequences
+ The new start value
+ The new end value
+ If bigger than 0 applies it as the new tween duration
+
+
+
+ Struct that stores two colors (used for LineRenderer tweens)
+
+
+
+
+ Used for tween callbacks
+
+
+
+
+ Used for tween callbacks
+
+
+
+
+ Used for custom and animationCurve-based ease functions. Must return a value between 0 and 1.
+
+
+
+
+ Straight Quaternion plugin. Instead of using Vector3 values accepts Quaternion values directly.
+ Beware: doesn't work with LoopType.Incremental (neither directly nor if inside a LoopType.Incremental Sequence).
+ To use it, call DOTween.To with the plugin parameter overload, passing it PureQuaternionPlugin.Plug() as first parameter
+ (do not use any of the other public PureQuaternionPlugin methods):
+ DOTween.To(PureQuaternionPlugin.Plug(), ()=> myQuaternionProperty, x=> myQuaternionProperty = x, myQuaternionEndValue, duration);
+
+
+
+
+ Plug this plugin inside a DOTween.To call.
+ Example:
+ DOTween.To(PureQuaternionPlugin.Plug(), ()=> myQuaternionProperty, x=> myQuaternionProperty = x, myQuaternionEndValue, duration);
+
+
+
+ INTERNAL: do not use
+
+
+ INTERNAL: do not use
+
+
+ INTERNAL: do not use
+
+
+ INTERNAL: do not use
+
+
+ INTERNAL: do not use
+
+
+ INTERNAL: do not use
+
+
+ INTERNAL: do not use
+
+
+ INTERNAL: do not use
+
+
+
+ Extra non-tweening-related curve methods
+
+
+
+
+ Cubic bezier curve methods
+
+
+
+
+ Calculates a point along the given Cubic Bezier segment-curve.
+
+ Segment start point
+ Start point's control point/handle
+ Segment end point
+ End point's control point/handle
+ 0-1 percentage along which to retrieve point
+
+
+
+ Returns an array containing a series of points along the given Cubic Bezier segment-curve.
+
+ Start point
+ Start point's control point/handle
+ End point
+ End point's control point/handle
+ Cloud resolution (min: 2)
+
+
+
+ Calculates a series of points along the given Cubic Bezier segment-curve and adds them to the given list.
+
+ Start point
+ Start point's control point/handle
+ End point
+ End point's control point/handle
+ Cloud resolution (min: 2)
+
+
+
+ Main DOTween class. Contains static methods to create and control tweens in a generic way
+
+
+
+ DOTween's version
+
+
+ If TRUE (default) makes tweens slightly slower but safer, automatically taking care of a series of things
+ (like targets becoming null while a tween is playing).
+ Default: TRUE
+
+
+ Log type when safe mode reports capturing an error and preventing it
+
+
+ Behaviour in case a tween nested inside a Sequence fails (and is caught by safe mode).
+ Default: NestedTweenFailureBehaviour.TryToPreserveSequence
+
+
+ If TRUE you will get a DOTween report when exiting play mode (only in the Editor).
+ Useful to know how many max Tweeners and Sequences you reached and optimize your final project accordingly.
+ Beware, this will slightly slow down your tweens while inside Unity Editor.
+ Default: FALSE
+
+
+ Global DOTween global timeScale (default: 1).
+ The final timeScale of a non-timeScaleIndependent tween is:
+ Unity's Time.timeScale * DOTween.timeScale * tween.timeScale
+ while the final timeScale of a timeScaleIndependent tween is:
+ DOTween.unscaledTimeScale * DOTween.timeScale * tween.timeScale
+
+
+ DOTween timeScale applied only to timeScaleIndependent tweens (default: 1).
+ The final timeScale of a timeScaleIndependent tween is:
+ DOTween.unscaledTimeScale * DOTween.timeScale * tween.timeScale
+
+
+ If TRUE, DOTween will use Time.smoothDeltaTime instead of Time.deltaTime for UpdateType.Normal and UpdateType.Late tweens
+ (unless they're set as timeScaleIndependent, in which case a value between the last timestep
+ and will be used instead).
+ Setting this to TRUE will lead to smoother animations.
+ Default: FALSE
+
+
+ If is TRUE, this indicates the max timeStep that an independent update call can last.
+ Setting this to TRUE will lead to smoother animations.
+ Default: FALSE
+
+
+ DOTween's log behaviour.
+ Default: LogBehaviour.ErrorsOnly
+
+
+ Used to intercept DOTween's logs. If this method isn't NULL, DOTween will call it before writing a log via Unity's own Debug log methods.
+ Return TRUE if you want DOTween to proceed with the log, FALSE otherwise.
+ This method must return a bool
and accept two parameters:
+ - LogType
: the type of Unity log that DOTween is trying to log
+ - object
: the log message that DOTween wants to log
+
+
+ If TRUE draws path gizmos in Unity Editor (if the gizmos button is active).
+ Deactivate this if you want to avoid gizmos overhead while in Unity Editor
+
+
+ If TRUE activates various debug options
+
+
+ Stores the target id so it can be used to give more info in case of safeMode error capturing.
+ Only active if both debugMode
and useSafeMode
are TRUE
+
+
+ Default updateType for new tweens.
+ Default: UpdateType.Normal
+
+
+ Sets whether Unity's timeScale should be taken into account by default or not.
+ Default: false
+
+
+ Default autoPlay behaviour for new tweens.
+ Default: AutoPlay.All
+
+
+ Default autoKillOnComplete behaviour for new tweens.
+ Default: TRUE
+
+
+ Default loopType applied to all new tweens.
+ Default: LoopType.Restart
+
+
+ If TRUE all newly created tweens are set as recyclable, otherwise not.
+ Default: FALSE
+
+
+ Default ease applied to all new Tweeners (not to Sequences which always have Ease.Linear as default).
+ Default: Ease.InOutQuad
+
+
+ Default overshoot/amplitude used for eases
+ Default: 1.70158f
+
+
+ Default period used for eases
+ Default: 0
+
+
+ Used internally. Assigned/removed by DOTweenComponent.Create/DestroyInstance
+
+
+
+ Must be called once, before the first ever DOTween call/reference,
+ otherwise it will be called automatically and will use default options.
+ Calling it a second time won't have any effect.
+ You can chain SetCapacity
to this method, to directly set the max starting size of Tweeners and Sequences:
+ DOTween.Init(false, false, LogBehaviour.Default).SetCapacity(100, 20);
+
+ If TRUE all new tweens will be set for recycling, meaning that when killed,
+ instead of being destroyed, they will be put in a pool and reused instead of creating new tweens. This option allows you to avoid
+ GC allocations by reusing tweens, but you will have to take care of tween references, since they might result active
+ even if they were killed (since they might have been respawned and are now being used for other tweens).
+ If you want to automatically set your tween references to NULL when a tween is killed
+ you can use the OnKill callback like this:
+ .OnKill(()=> myTweenReference = null)
+ You can change this setting at any time by changing the static property,
+ or you can set the recycling behaviour for each tween separately, using:
+ SetRecyclable(bool recyclable)
+ Default: FALSE
+ If TRUE makes tweens slightly slower but safer, automatically taking care of a series of things
+ (like targets becoming null while a tween is playing).
+ You can change this setting at any time by changing the static property.
+ Default: FALSE
+ Type of logging to use.
+ You can change this setting at any time by changing the static property.
+ Default: ErrorsOnly
+
+
+
+ Directly sets the current max capacity of Tweeners and Sequences
+ (meaning how many Tweeners and Sequences can be running at the same time),
+ so that DOTween doesn't need to automatically increase them in case the max is reached
+ (which might lead to hiccups when that happens).
+ Sequences capacity must be less or equal to Tweeners capacity
+ (if you pass a low Tweener capacity it will be automatically increased to match the Sequence's).
+ Beware: use this method only when there are no tweens running.
+
+ Max Tweeners capacity.
+ Default: 200
+ Max Sequences capacity.
+ Default: 50
+
+
+
+ Kills all tweens, clears all cached tween pools and plugins and resets the max Tweeners/Sequences capacities to the default values.
+
+ If TRUE also destroys DOTween's gameObject and resets its initializiation, default settings and everything else
+ (so that next time you use it it will need to be re-initialized)
+
+
+
+ Clears all cached tween pools.
+
+
+
+
+ Checks all active tweens to find and remove eventually invalid ones (usually because their targets became NULL)
+ and returns the total number of invalid tweens found and removed.
+ IMPORTANT: this will cause an error on UWP platform, so don't use it there
+ BEWARE: this is a slightly expensive operation so use it with care
+
+
+
+
+ Updates all tweens that are set to .
+
+ Manual deltaTime
+ Unscaled delta time (used with tweens set as timeScaleIndependent)
+
+
+ Tweens a property or field to the given value using default plugins
+ A getter for the field or property to tween.
+ Example usage with lambda:()=> myProperty
+ A setter for the field or property to tween
+ Example usage with lambda:x=> myProperty = x
+ The end value to reachThe tween's duration
+
+
+ Tweens a property or field to the given value using default plugins
+ A getter for the field or property to tween.
+ Example usage with lambda:()=> myProperty
+ A setter for the field or property to tween
+ Example usage with lambda:x=> myProperty = x
+ The end value to reachThe tween's duration
+
+
+ Tweens a property or field to the given value using default plugins
+ A getter for the field or property to tween.
+ Example usage with lambda:()=> myProperty
+ A setter for the field or property to tween
+ Example usage with lambda:x=> myProperty = x
+ The end value to reachThe tween's duration
+
+
+ Tweens a property or field to the given value using default plugins
+ A getter for the field or property to tween.
+ Example usage with lambda:()=> myProperty
+ A setter for the field or property to tween
+ Example usage with lambda:x=> myProperty = x
+ The end value to reachThe tween's duration
+
+
+ Tweens a property or field to the given value using default plugins
+ A getter for the field or property to tween.
+ Example usage with lambda:()=> myProperty
+ A setter for the field or property to tween
+ Example usage with lambda:x=> myProperty = x
+ The end value to reachThe tween's duration
+
+
+ Tweens a property or field to the given value using default plugins
+ A getter for the field or property to tween.
+ Example usage with lambda:()=> myProperty
+ A setter for the field or property to tween
+ Example usage with lambda:x=> myProperty = x
+ The end value to reachThe tween's duration
+
+
+ Tweens a property or field to the given value using default plugins
+ A getter for the field or property to tween.
+ Example usage with lambda:()=> myProperty
+ A setter for the field or property to tween
+ Example usage with lambda:x=> myProperty = x
+ The end value to reachThe tween's duration
+
+
+ Tweens a property or field to the given value using default plugins
+ A getter for the field or property to tween.
+ Example usage with lambda:()=> myProperty
+ A setter for the field or property to tween
+ Example usage with lambda:x=> myProperty = x
+ The end value to reachThe tween's duration
+
+
+ Tweens a property or field to the given value using default plugins
+ A getter for the field or property to tween.
+ Example usage with lambda:()=> myProperty
+ A setter for the field or property to tween
+ Example usage with lambda:x=> myProperty = x
+ The end value to reachThe tween's duration
+
+
+ Tweens a property or field to the given value using default plugins
+ A getter for the field or property to tween.
+ Example usage with lambda:()=> myProperty
+ A setter for the field or property to tween
+ Example usage with lambda:x=> myProperty = x
+ The end value to reachThe tween's duration
+
+
+ Tweens a property or field to the given value using default plugins
+ A getter for the field or property to tween.
+ Example usage with lambda:()=> myProperty
+ A setter for the field or property to tween
+ Example usage with lambda:x=> myProperty = x
+ The end value to reachThe tween's duration
+
+
+ Tweens a property or field to the given value using default plugins
+ A getter for the field or property to tween.
+ Example usage with lambda:()=> myProperty
+ A setter for the field or property to tween
+ Example usage with lambda:x=> myProperty = x
+ The end value to reachThe tween's duration
+
+
+ Tweens a property or field to the given value using default plugins
+ A getter for the field or property to tween.
+ Example usage with lambda:()=> myProperty
+ A setter for the field or property to tween
+ Example usage with lambda:x=> myProperty = x
+ The end value to reachThe tween's duration
+
+
+ Tweens a property or field to the given value using default plugins
+ A getter for the field or property to tween.
+ Example usage with lambda:()=> myProperty
+ A setter for the field or property to tween
+ Example usage with lambda:x=> myProperty = x
+ The end value to reachThe tween's duration
+
+
+ Tweens a property or field to the given value using a custom plugin
+ The plugin to use. Each custom plugin implements a static Get()
method
+ you'll need to call to assign the correct plugin in the correct way, like this:
+ CustomPlugin.Get()
+ A getter for the field or property to tween.
+ Example usage with lambda:()=> myProperty
+ A setter for the field or property to tween
+ Example usage with lambda:x=> myProperty = x
+ The end value to reachThe tween's duration
+
+
+ Tweens only one axis of a Vector3 to the given value using default plugins.
+ A getter for the field or property to tween.
+ Example usage with lambda:()=> myProperty
+ A setter for the field or property to tween
+ Example usage with lambda:x=> myProperty = x
+ The end value to reachThe tween's duration
+ The axis to tween
+
+
+ Tweens only the alpha of a Color to the given value using default plugins
+ A getter for the field or property to tween.
+ Example usage with lambda:()=> myProperty
+ A setter for the field or property to tween
+ Example usage with lambda:x=> myProperty = x
+ The end value to reachThe tween's duration
+
+
+ Tweens a virtual property from the given start to the given end value
+ and implements a setter that allows to use that value with an external method or a lambda
+ Example:
+ To(MyMethod, 0, 12, 0.5f);
+ Where MyMethod is a function that accepts a float parameter (which will be the result of the virtual tween)
+ The action to perform with the tweened value
+ The value to start from
+ The end value to reach
+ The duration of the virtual tween
+
+
+
+ Punches a Vector3 towards the given direction and then back to the starting one
+ as if it was connected to the starting position via an elastic.
+ This tween type generates some GC allocations at startup
+ A getter for the field or property to tween.
+ Example usage with lambda:()=> myProperty
+ A setter for the field or property to tween
+ Example usage with lambda:x=> myProperty = x
+ The direction and strength of the punch
+ The duration of the tween
+ Indicates how much will the punch vibrate
+ Represents how much (0 to 1) the vector will go beyond the starting position when bouncing backwards.
+ 1 creates a full oscillation between the direction and the opposite decaying direction,
+ while 0 oscillates only between the starting position and the decaying direction
+
+
+ Shakes a Vector3 with the given values.
+ A getter for the field or property to tween.
+ Example usage with lambda:()=> myProperty
+ A setter for the field or property to tween
+ Example usage with lambda:x=> myProperty = x
+ The duration of the tween
+ The shake strength
+ Indicates how much will the shake vibrate
+ Indicates how much the shake will be random (0 to 180 - values higher than 90 kind of suck, so beware).
+ Setting it to 0 will shake along a single direction and behave like a random punch.
+ If TRUE only shakes on the X Y axis (looks better with things like cameras).
+ If TRUE the shake will automatically fadeOut smoothly within the tween's duration, otherwise it will not
+ Randomness mode
+
+
+ Shakes a Vector3 with the given values.
+ A getter for the field or property to tween.
+ Example usage with lambda:()=> myProperty
+ A setter for the field or property to tween
+ Example usage with lambda:x=> myProperty = x
+ The duration of the tween
+ The shake strength on each axis
+ Indicates how much will the shake vibrate
+ Indicates how much the shake will be random (0 to 180 - values higher than 90 kind of suck, so beware).
+ Setting it to 0 will shake along a single direction and behave like a random punch.
+ If TRUE the shake will automatically fadeOut smoothly within the tween's duration, otherwise it will not
+ Randomness mode
+
+
+ Tweens a property or field to the given values using default plugins.
+ Ease is applied between each segment and not as a whole.
+ This tween type generates some GC allocations at startup
+ A getter for the field or property to tween.
+ Example usage with lambda:()=> myProperty
+ A setter for the field or property to tween
+ Example usage with lambda:x=> myProperty = x
+ The end values to reach for each segment. This array must have the same length as durations
+ The duration of each segment. This array must have the same length as endValues
+
+
+
+ Returns a new to be used for tween groups.
+ Mind that Sequences don't have a target applied automatically like Tweener creation shortcuts,
+ so if you want to be able to kill this Sequence when calling DOTween.Kill(target) you'll have to add
+ the target manually; you can do that directly by using the overload instead of this one
+
+
+
+
+ Returns a new to be used for tween groups, and allows to set a target
+ (because Sequences don't have their target set automatically like Tweener creation shortcuts).
+ That way killing/controlling tweens by target will apply to this Sequence too.
+
+ The target of the Sequence. Relevant only for static target-based methods like DOTween.Kill(target),
+ useless otherwise
+
+
+ Completes all tweens and returns the number of actual tweens completed
+ (meaning tweens that don't have infinite loops and were not already complete)
+ For Sequences only: if TRUE also internal Sequence callbacks will be fired,
+ otherwise they will be ignored
+
+
+ Completes all tweens with the given ID or target and returns the number of actual tweens completed
+ (meaning the tweens that don't have infinite loops and were not already complete)
+ For Sequences only: if TRUE internal Sequence callbacks will be fired,
+ otherwise they will be ignored
+
+
+ Flips all tweens (changing their direction to forward if it was backwards and viceversa),
+ then returns the number of actual tweens flipped
+
+
+ Flips the tweens with the given ID or target (changing their direction to forward if it was backwards and viceversa),
+ then returns the number of actual tweens flipped
+
+
+ Sends all tweens to the given position (calculating also eventual loop cycles) and returns the actual tweens involved
+
+
+ Sends all tweens with the given ID or target to the given position (calculating also eventual loop cycles)
+ and returns the actual tweens involved
+
+
+ Kills all tweens and returns the number of actual tweens killed
+ If TRUE completes the tweens before killing them
+
+
+ Kills all tweens and returns the number of actual tweens killed
+ If TRUE completes the tweens before killing them
+ Eventual IDs or targets to exclude from the killing
+
+
+ Kills all tweens with the given ID or target and returns the number of actual tweens killed
+ If TRUE completes the tweens before killing them
+
+
+ Kills all tweens with the given target and the given ID, and returns the number of actual tweens killed
+ If TRUE completes the tweens before killing them
+
+
+ Pauses all tweens and returns the number of actual tweens paused
+
+
+ Pauses all tweens with the given ID or target and returns the number of actual tweens paused
+ (meaning the tweens that were actually playing and have been paused)
+
+
+ Plays all tweens and returns the number of actual tweens played
+ (meaning tweens that were not already playing or complete)
+
+
+ Plays all tweens with the given ID or target and returns the number of actual tweens played
+ (meaning the tweens that were not already playing or complete)
+
+
+ Plays all tweens with the given target and the given ID, and returns the number of actual tweens played
+ (meaning the tweens that were not already playing or complete)
+
+
+ Plays backwards all tweens and returns the number of actual tweens played
+ (meaning tweens that were not already started, playing backwards or rewinded)
+
+
+ Plays backwards all tweens with the given ID or target and returns the number of actual tweens played
+ (meaning the tweens that were not already started, playing backwards or rewinded)
+
+
+ Plays backwards all tweens with the given target and ID and returns the number of actual tweens played
+ (meaning the tweens that were not already started, playing backwards or rewinded)
+
+
+ Plays forward all tweens and returns the number of actual tweens played
+ (meaning tweens that were not already playing forward or complete)
+
+
+ Plays forward all tweens with the given ID or target and returns the number of actual tweens played
+ (meaning the tweens that were not already playing forward or complete)
+
+
+ Plays forward all tweens with the given target and ID and returns the number of actual tweens played
+ (meaning the tweens that were not already started, playing backwards or rewinded)
+
+
+ Restarts all tweens, then returns the number of actual tweens restarted
+
+
+ Restarts all tweens with the given ID or target, then returns the number of actual tweens restarted
+ If TRUE includes the eventual tweens delays, otherwise skips them
+ If >= 0 changes the startup delay of all involved tweens to this value, otherwise doesn't touch it
+
+
+ Restarts all tweens with the given target and the given ID, and returns the number of actual tweens played
+ (meaning the tweens that were not already playing or complete)
+ If TRUE includes the eventual tweens delays, otherwise skips them
+ If >= 0 changes the startup delay of all involved tweens to this value, otherwise doesn't touch it
+
+
+ Rewinds and pauses all tweens, then returns the number of actual tweens rewinded
+ (meaning tweens that were not already rewinded)
+
+
+ Rewinds and pauses all tweens with the given ID or target, then returns the number of actual tweens rewinded
+ (meaning the tweens that were not already rewinded)
+
+
+ Smoothly rewinds all tweens (delays excluded), then returns the number of actual tweens rewinding/rewinded
+ (meaning tweens that were not already rewinded).
+ A "smooth rewind" animates the tween to its start position,
+ skipping all elapsed loops (except in case of LoopType.Incremental) while keeping the animation fluent.
+ Note that a tween that was smoothly rewinded will have its play direction flipped
+
+
+ Smoothly rewinds all tweens (delays excluded) with the given ID or target, then returns the number of actual tweens rewinding/rewinded
+ (meaning the tweens that were not already rewinded).
+ A "smooth rewind" animates the tween to its start position,
+ skipping all elapsed loops (except in case of LoopType.Incremental) while keeping the animation fluent.
+ Note that a tween that was smoothly rewinded will have its play direction flipped
+
+
+ Toggles the play state of all tweens and returns the number of actual tweens toggled
+ (meaning tweens that could be played or paused, depending on the toggle state)
+
+
+ Toggles the play state of all tweens with the given ID or target and returns the number of actual tweens toggled
+ (meaning the tweens that could be played or paused, depending on the toggle state)
+
+
+
+ Returns TRUE if a tween with the given ID or target is active.
+ You can also use this to know if a shortcut tween is active for a given target.
+ Example:
+ transform.DOMoveX(45, 1); // transform is automatically added as the tween target
+ DOTween.IsTweening(transform); // Returns true
+
+ The target or ID to look for
+ If FALSE (default) returns TRUE as long as a tween for the given target/ID is active,
+ otherwise also requires it to be playing
+
+
+
+ Returns the total number of active tweens (so both Tweeners and Sequences).
+ A tween is considered active if it wasn't killed, regardless if it's playing or paused
+
+
+
+
+ Returns the total number of active Tweeners.
+ A Tweener is considered active if it wasn't killed, regardless if it's playing or paused
+
+
+
+
+ Returns the total number of active Sequences.
+ A Sequence is considered active if it wasn't killed, regardless if it's playing or paused
+
+
+
+
+ Returns the total number of active and playing tweens.
+ A tween is considered as playing even if its delay is actually playing
+
+
+
+
+ Returns a the total number of active tweens with the given id.
+
+ If TRUE returns only the tweens with the given ID that are currently playing
+
+
+
+ Returns a list of all active tweens in a playing state.
+ Returns NULL if there are no active playing tweens.
+ Beware: each time you call this method a new list is generated, so use it for debug only
+
+ If NULL creates a new list, otherwise clears and fills this one (and thus saves allocations)
+
+
+
+ Returns a list of all active tweens in a paused state.
+ Returns NULL if there are no active paused tweens.
+ Beware: each time you call this method a new list is generated, so use it for debug only
+
+ If NULL creates a new list, otherwise clears and fills this one (and thus saves allocations)
+
+
+
+ Returns a list of all active tweens with the given id.
+ Returns NULL if there are no active tweens with the given id.
+ Beware: each time you call this method a new list is generated
+
+ If TRUE returns only the tweens with the given ID that are currently playing
+ If NULL creates a new list, otherwise clears and fills this one (and thus saves allocations)
+
+
+
+ Returns a list of all active tweens with the given target.
+ Returns NULL if there are no active tweens with the given target.
+ Beware: each time you call this method a new list is generated
+ If TRUE returns only the tweens with the given target that are currently playing
+ If NULL creates a new list, otherwise clears and fills this one (and thus saves allocations)
+
+
+
+
+ Creates virtual tweens that can be used to change other elements via their OnUpdate calls
+
+
+
+
+ Tweens a virtual float.
+ You can add regular settings to the generated tween,
+ but do not use OnUpdate
or you will overwrite the onVirtualUpdate parameter
+
+ The value to start from
+ The value to tween to
+ The duration of the tween
+ A callback which must accept a parameter of type float, called at each update
+
+
+
+ Tweens a virtual int.
+ You can add regular settings to the generated tween,
+ but do not use OnUpdate
or you will overwrite the onVirtualUpdate parameter
+
+ The value to start from
+ The value to tween to
+ The duration of the tween
+ A callback which must accept a parameter of type int, called at each update
+
+
+
+ Tweens a virtual Vector2.
+ You can add regular settings to the generated tween,
+ but do not use OnUpdate
or you will overwrite the onVirtualUpdate parameter
+
+ The value to start from
+ The value to tween to
+ The duration of the tween
+ A callback which must accept a parameter of type Vector3, called at each update
+
+
+
+ Tweens a virtual Vector3.
+ You can add regular settings to the generated tween,
+ but do not use OnUpdate
or you will overwrite the onVirtualUpdate parameter
+
+ The value to start from
+ The value to tween to
+ The duration of the tween
+ A callback which must accept a parameter of type Vector3, called at each update
+
+
+
+ Tweens a virtual Color.
+ You can add regular settings to the generated tween,
+ but do not use OnUpdate
or you will overwrite the onVirtualUpdate parameter
+
+ The value to start from
+ The value to tween to
+ The duration of the tween
+ A callback which must accept a parameter of type Color, called at each update
+
+
+ Returns a value based on the given ease and lifetime percentage (0 to 1)
+ The value to start from when lifetimePercentage is 0
+ The value to reach when lifetimePercentage is 1
+ The time percentage (0 to 1) at which the value should be taken
+ The type of ease
+
+
+ Returns a value based on the given ease and lifetime percentage (0 to 1)
+ The value to start from when lifetimePercentage is 0
+ The value to reach when lifetimePercentage is 1
+ The time percentage (0 to 1) at which the value should be taken
+ The type of ease
+ Eventual overshoot to use with Back ease
+
+
+ Returns a value based on the given ease and lifetime percentage (0 to 1)
+ The value to start from when lifetimePercentage is 0
+ The value to reach when lifetimePercentage is 1
+ The time percentage (0 to 1) at which the value should be taken
+ The type of ease
+ Eventual amplitude to use with Elastic easeType
+ Eventual period to use with Elastic easeType
+
+
+ Returns a value based on the given ease and lifetime percentage (0 to 1)
+ The value to start from when lifetimePercentage is 0
+ The value to reach when lifetimePercentage is 1
+ The time percentage (0 to 1) at which the value should be taken
+ The AnimationCurve to use for ease
+
+
+ Returns a value based on the given ease and lifetime percentage (0 to 1)
+ The value to start from when lifetimePercentage is 0
+ The value to reach when lifetimePercentage is 1
+ The time percentage (0 to 1) at which the value should be taken
+ The type of ease
+
+
+ Returns a value based on the given ease and lifetime percentage (0 to 1)
+ The value to start from when lifetimePercentage is 0
+ The value to reach when lifetimePercentage is 1
+ The time percentage (0 to 1) at which the value should be taken
+ The type of ease
+ Eventual overshoot to use with Back ease
+
+
+ Returns a value based on the given ease and lifetime percentage (0 to 1)
+ The value to start from when lifetimePercentage is 0
+ The value to reach when lifetimePercentage is 1
+ The time percentage (0 to 1) at which the value should be taken
+ The type of ease
+ Eventual amplitude to use with Elastic easeType
+ Eventual period to use with Elastic easeType
+
+
+ Returns a value based on the given ease and lifetime percentage (0 to 1)
+ The value to start from when lifetimePercentage is 0
+ The value to reach when lifetimePercentage is 1
+ The time percentage (0 to 1) at which the value should be taken
+ The AnimationCurve to use for ease
+
+
+ Fires the given callback after the given time.
+ Callback delay
+ Callback to fire when the delay has expired
+ If TRUE (default) ignores Unity's timeScale
+
+
+
+ Don't assign this! It's assigned automatically when creating 0 duration tweens
+
+
+
+
+ Don't assign this! It's assigned automatically when setting the ease to an AnimationCurve or to a custom ease function
+
+
+
+
+ Allows to wrap ease method in special ways, adding extra features
+
+
+
+
+ Converts the given ease so that it also creates a stop-motion effect, by playing the tween at the given FPS
+
+ FPS at which the tween should be played
+ Ease type
+
+
+
+ Converts the given ease so that it also creates a stop-motion effect, by playing the tween at the given FPS
+
+ FPS at which the tween should be played
+ AnimationCurve to use for the ease
+
+
+
+ Converts the given ease so that it also creates a stop-motion effect, by playing the tween at the given FPS
+
+ FPS at which the tween should be played
+ Custom ease function to use
+
+
+
+ Used to allow method chaining with DOTween.Init
+
+
+
+
+ Directly sets the current max capacity of Tweeners and Sequences
+ (meaning how many Tweeners and Sequences can be running at the same time),
+ so that DOTween doesn't need to automatically increase them in case the max is reached
+ (which might lead to hiccups when that happens).
+ Sequences capacity must be less or equal to Tweeners capacity
+ (if you pass a low Tweener capacity it will be automatically increased to match the Sequence's).
+ Beware: use this method only when there are no tweens running.
+
+ Max Tweeners capacity.
+ Default: 200
+ Max Sequences capacity.
+ Default: 50
+
+
+
+ Behaviour that can be assigned when chaining a SetLink to a tween
+
+
+
+ Pauses the tween when the link target is disabled
+
+
+ Pauses the tween when the link target is disabled, plays it when it's enabled
+
+
+ Pauses the tween when the link target is disabled, restarts it when it's enabled
+
+
+ Plays the tween when the link target is enabled
+
+
+ Restarts the tween when the link target is enabled
+
+
+ Kills the tween when the link target is disabled
+
+
+ Kills the tween when the link target is destroyed (becomes NULL). This is always active even if another behaviour is chosen
+
+
+ Completes the tween when the link target is disabled
+
+
+ Completes and kills the tween when the link target is disabled
+
+
+ Rewinds the tween (delay excluded) when the link target is disabled
+
+
+ Rewinds and kills the tween when the link target is disabled
+
+
+
+ Path mode (used to determine correct LookAt orientation)
+
+
+
+ Ignores the path mode (and thus LookAt behaviour)
+
+
+ Regular 3D path
+
+
+ 2D top-down path
+
+
+ 2D side-scroller path
+
+
+
+ Type of path to use with DOPath tweens
+
+
+
+ Linear, composed of straight segments between each waypoint
+
+
+ Curved path (which uses Catmull-Rom curves)
+
+
+ EXPERIMENTAL:
Curved path (which uses Cubic Bezier curves, where each point requires two extra control points)
+
+
+
+ Tweens a Vector2 along a circle.
+ EndValue represents the center of the circle, start and end value degrees are inside options
+ ChangeValue x is changeValue°, y is unused
+
+
+
+
+ Path control point
+
+
+
+
+ Path waypoints (modified by PathPlugin when setting relative end/change value or by CubicBezierDecoder) and by DOTweenPathInspector
+
+
+
+
+ Minimum input points necessary to create the path (doesn't correspond to actual waypoints required)
+
+
+
+
+ Gets the point on the path at the given percentage (0 to 1)
+
+ The percentage (0 to 1) at which to get the point
+ If TRUE constant speed is taken into account, otherwise not
+
+
+
+ Base interface for all tween plugins options
+
+
+
+ Resets the plugin
+
+
+
+ This plugin generates some GC allocations at startup
+
+
+
+
+ Path plugin works exclusively with Transforms
+
+
+
+
+ Rotation mode used with DORotate methods
+
+
+
+
+ Fastest way that never rotates beyond 360°
+
+
+
+
+ Fastest way that rotates beyond 360°
+
+
+
+
+ Adds the given rotation to the transform using world axis and an advanced precision mode
+ (like when using transform.Rotate(Space.World)).
+ In this mode the end value is is always considered relative
+
+
+
+
+ Adds the given rotation to the transform's local axis
+ (like when rotating an object with the "local" switch enabled in Unity's editor or using transform.Rotate(Space.Self)).
+ In this mode the end value is is always considered relative
+
+
+
+
+ Type of scramble to apply to string tweens
+
+
+
+
+ No scrambling of characters
+
+
+
+
+ A-Z + a-z + 0-9 characters
+
+
+
+
+ A-Z characters
+
+
+
+
+ a-z characters
+
+
+
+
+ 0-9 characters
+
+
+
+
+ Custom characters
+
+
+
+
+ Type of randomness to apply to a shake tween
+
+
+
+ Default, full randomness
+
+
+ Creates a more balanced randomness that looks more harmonic
+
+
+
+ Methods that extend Tween objects and allow to control or get data from them
+
+
+
+ Completes the tween
+
+
+ Completes the tween
+ For Sequences only: if TRUE also internal Sequence callbacks will be fired,
+ otherwise they will be ignored
+
+
+ Optional: indicates that the tween creation has ended, to be used (optionally) as the last element of tween chaining creation.
+ This method won't do anything except in case of 0-duration tweens,
+ where it will complete them immediately instead of waiting for the next internal update routine
+ (unless they're nested in a Sequence, in which case the Sequence will still be the one in control and this method will be ignored)
+
+
+ Flips the direction of this tween (backwards if it was going forward or viceversa)
+
+
+ Forces the tween to initialize its settings immediately
+
+
+ Send the tween to the given position in time
+ Time position to reach
+ (if higher than the whole tween duration the tween will simply reach its end)
+ If TRUE will play the tween after reaching the given position, otherwise it will pause it
+
+
+ Send the tween to the given position in time while also executing any callback between the previous time position and the new one
+ Time position to reach
+ (if higher than the whole tween duration the tween will simply reach its end)
+ If TRUE will play the tween after reaching the given position, otherwise it will pause it
+
+
+ Kills the tween
+ If TRUE completes the tween before killing it
+
+
+
+ Forces this tween to update manually, regardless of the set via SetUpdate.
+ Note that the tween will still be subject to normal tween rules, so if for example it's paused this method will do nothing.
+ Also note that if you only want to update this tween instance manually you'll have to set it to anyway,
+ so that it's not updated automatically.
+
+ Manual deltaTime
+ Unscaled delta time (used with tweens set as timeScaleIndependent)
+
+
+ Pauses the tween
+
+
+ Plays the tween
+
+
+ Sets the tween in a backwards direction and plays it
+
+
+ Sets the tween in a forward direction and plays it
+
+
+ Restarts the tween from the beginning
+ Ignored in case of Sequences. If TRUE includes the eventual tween delay, otherwise skips it
+ Ignored in case of Sequences. If >= 0 changes the startup delay to this value, otherwise doesn't touch it
+
+
+ Rewinds and pauses the tween
+ Ignored in case of Sequences. If TRUE includes the eventual tween delay, otherwise skips it
+
+
+ Smoothly rewinds the tween (delays excluded).
+ A "smooth rewind" animates the tween to its start position,
+ skipping all elapsed loops (except in case of LoopType.Incremental) while keeping the animation fluent.
+ If called on a tween who is still waiting for its delay to happen, it will simply set the delay to 0 and pause the tween.
+ Note that a tween that was smoothly rewinded will have its play direction flipped
+
+
+ Plays the tween if it was paused, pauses it if it was playing
+
+
+ Send a path tween to the given waypoint.
+ Has no effect if this is not a path tween.
+ BEWARE, this is a special utility method:
+ it works only with Linear eases. Also, the lookAt direction might be wrong after calling this and might need to be set manually
+ (because it relies on a smooth path movement and doesn't work well with jumps that encompass dramatic direction changes)
+ Waypoint index to reach
+ (if higher than the max waypoint index the tween will simply go to the last one)
+ If TRUE will play the tween after reaching the given waypoint, otherwise it will pause it
+
+
+
+ Creates a yield instruction that waits until the tween is killed or complete.
+ It can be used inside a coroutine as a yield.
+ Example usage:yield return myTween.WaitForCompletion();
+
+
+
+
+ Creates a yield instruction that waits until the tween is killed or rewinded.
+ It can be used inside a coroutine as a yield.
+ Example usage:yield return myTween.WaitForRewind();
+
+
+
+
+ Creates a yield instruction that waits until the tween is killed.
+ It can be used inside a coroutine as a yield.
+ Example usage:yield return myTween.WaitForKill();
+
+
+
+
+ Creates a yield instruction that waits until the tween is killed or has gone through the given amount of loops.
+ It can be used inside a coroutine as a yield.
+ Example usage:yield return myTween.WaitForElapsedLoops(2);
+
+ Elapsed loops to wait for
+
+
+
+ Creates a yield instruction that waits until the tween is killed or has reached the given position (loops included, delays excluded).
+ It can be used inside a coroutine as a yield.
+ Example usage:yield return myTween.WaitForPosition(2.5f);
+
+ Position (loops included, delays excluded) to wait for
+
+
+
+ Creates a yield instruction that waits until the tween is killed or started
+ (meaning when the tween is set in a playing state the first time, after any eventual delay).
+ It can be used inside a coroutine as a yield.
+ Example usage:yield return myTween.WaitForStart();
+
+
+
+ Returns the total number of loops completed by this tween
+
+
+ Returns the eventual delay set for this tween
+
+
+ Returns the eventual elapsed delay set for this tween
+
+
+ Returns the duration of this tween (delays excluded).
+ NOTE: when using settings like SpeedBased, the duration will be recalculated when the tween starts
+ If TRUE returns the full duration loops included,
+ otherwise the duration of a single loop cycle
+
+
+ Returns the elapsed time for this tween (delays exluded)
+ If TRUE returns the elapsed time since startup loops included,
+ otherwise the elapsed time within the current loop cycle
+
+
+ Returns the elapsed percentage (0 to 1) of this tween (delays exluded)
+ If TRUE returns the elapsed percentage since startup loops included,
+ otherwise the elapsed percentage within the current loop cycle
+
+
+ Returns the elapsed percentage (0 to 1) of this tween (delays exluded),
+ based on a single loop, and calculating eventual backwards Yoyo loops as 1 to 0 instead of 0 to 1
+
+
+ Returns FALSE if this tween has been killed or is NULL, TRUE otherwise.
+ BEWARE: if this tween is recyclable it might have been spawned again for another use and thus return TRUE anyway.
+ When working with recyclable tweens you should take care to know when a tween has been killed and manually set your references to NULL.
+ If you want to be sure your references are set to NULL when a tween is killed you can use the OnKill
callback like this:
+ .OnKill(()=> myTweenReference = null)
+
+
+ Returns TRUE if this tween was reversed and is set to go backwards
+
+
+ NOTE: To check if a tween was simply set to go backwards see .
+ Returns TRUE if this tween is going backwards for any of these reasons:
+ - The tween was reversed and is going backwards on a straight loop
+ - The tween was reversed and is going backwards on an odd Yoyo loop
+ - The tween is going forward but on an even Yoyo loop
+ IMPORTANT: if used inside a tween's callback, this will return a result concerning the exact frame when it's asked,
+ so for example in a callback at the end of a Yoyo loop step this method will never return FALSE
+ because the frame will never end exactly there and the tween will already be going backwards when the callback is fired
+
+
+ Returns TRUE if the tween is complete
+ (silently fails and returns FALSE if the tween has been killed)
+
+
+ Returns TRUE if this tween has been initialized
+
+
+ Returns TRUE if this tween is playing
+
+
+ Returns the total number of loops set for this tween
+ (returns -1 if the loops are infinite)
+
+
+
+ Returns a point on a path based on the given path percentage.
+ Returns Vector3.zero
if this is not a path tween, if the tween is invalid, or if the path is not yet initialized.
+ A path is initialized after its tween starts, or immediately if the tween was created with the Path Editor (DOTween Pro feature).
+ You can force a path to be initialized by calling myTween.ForceInit()
.
+
+ Percentage of the path (0 to 1) on which to get the point
+
+
+
+ Returns an array of points that can be used to draw the path.
+ Note that this method generates allocations, because it creates a new array.
+ Returns NULL
if this is not a path tween, if the tween is invalid, or if the path is not yet initialized.
+ A path is initialized after its tween starts, or immediately if the tween was created with the Path Editor (DOTween Pro feature).
+ You can force a path to be initialized by calling myTween.ForceInit()
.
+
+ How many points to create for each path segment (waypoint to waypoint).
+ Only used in case of non-Linear paths
+
+
+
+ Returns the length of a path.
+ Returns -1 if this is not a path tween, if the tween is invalid, or if the path is not yet initialized.
+ A path is initialized after its tween starts, or immediately if the tween was created with the Path Editor (DOTween Pro feature).
+ You can force a path to be initialized by calling myTween.ForceInit()
.
+
+
+
+
+ Types of loop
+
+
+
+ Each loop cycle restarts from the beginning
+
+
+ The tween moves forward and backwards at alternate cycles
+
+
+ Continuously increments the tween at the end of each loop cycle (A to B, B to B+(A-B), and so on), thus always moving "onward".
+ In case of String tweens works only if the tween is set as relative
+
+
+
+ Controls other tweens as a group
+
+
+
+
+ Methods that extend known Unity objects and allow to directly create and control tweens from their instances
+
+
+
+ Tweens a Camera's aspect
to the given value.
+ Also stores the camera as the tween's target so it can be used for filtered operations
+ The end value to reachThe duration of the tween
+
+
+ Tweens a Camera's backgroundColor to the given value.
+ Also stores the camera as the tween's target so it can be used for filtered operations
+ The end value to reachThe duration of the tween
+
+
+ Tweens a Camera's farClipPlane
to the given value.
+ Also stores the camera as the tween's target so it can be used for filtered operations
+ The end value to reachThe duration of the tween
+
+
+ Tweens a Camera's fieldOfView
to the given value.
+ Also stores the camera as the tween's target so it can be used for filtered operations
+ The end value to reachThe duration of the tween
+
+
+ Tweens a Camera's nearClipPlane
to the given value.
+ Also stores the camera as the tween's target so it can be used for filtered operations
+ The end value to reachThe duration of the tween
+
+
+ Tweens a Camera's orthographicSize
to the given value.
+ Also stores the camera as the tween's target so it can be used for filtered operations
+ The end value to reachThe duration of the tween
+
+
+ Tweens a Camera's pixelRect
to the given value.
+ Also stores the camera as the tween's target so it can be used for filtered operations
+ The end value to reachThe duration of the tween
+
+
+ Tweens a Camera's rect
to the given value.
+ Also stores the camera as the tween's target so it can be used for filtered operations
+ The end value to reachThe duration of the tween
+
+
+ Shakes a Camera's localPosition along its relative X Y axes with the given values.
+ Also stores the camera as the tween's target so it can be used for filtered operations
+ The duration of the tween
+ The shake strength
+ Indicates how much will the shake vibrate
+ Indicates how much the shake will be random (0 to 180 - values higher than 90 kind of suck, so beware).
+ Setting it to 0 will shake along a single direction.
+ If TRUE the shake will automatically fadeOut smoothly within the tween's duration, otherwise it will not
+ Randomness mode
+
+
+ Shakes a Camera's localPosition along its relative X Y axes with the given values.
+ Also stores the camera as the tween's target so it can be used for filtered operations
+ The duration of the tween
+ The shake strength on each axis
+ Indicates how much will the shake vibrate
+ Indicates how much the shake will be random (0 to 180 - values higher than 90 kind of suck, so beware).
+ Setting it to 0 will shake along a single direction.
+ If TRUE the shake will automatically fadeOut smoothly within the tween's duration, otherwise it will not
+ Randomness mode
+
+
+ Shakes a Camera's localRotation.
+ Also stores the camera as the tween's target so it can be used for filtered operations
+ The duration of the tween
+ The shake strength
+ Indicates how much will the shake vibrate
+ Indicates how much the shake will be random (0 to 180 - values higher than 90 kind of suck, so beware).
+ Setting it to 0 will shake along a single direction.
+ If TRUE the shake will automatically fadeOut smoothly within the tween's duration, otherwise it will not
+ Randomness mode
+
+
+ Shakes a Camera's localRotation.
+ Also stores the camera as the tween's target so it can be used for filtered operations
+ The duration of the tween
+ The shake strength on each axis
+ Indicates how much will the shake vibrate
+ Indicates how much the shake will be random (0 to 180 - values higher than 90 kind of suck, so beware).
+ Setting it to 0 will shake along a single direction.
+ If TRUE the shake will automatically fadeOut smoothly within the tween's duration, otherwise it will not
+ Randomness mode
+
+
+ Tweens a Light's color to the given value.
+ Also stores the light as the tween's target so it can be used for filtered operations
+ The end value to reachThe duration of the tween
+
+
+ Tweens a Light's intensity to the given value.
+ Also stores the light as the tween's target so it can be used for filtered operations
+ The end value to reachThe duration of the tween
+
+
+ Tweens a Light's shadowStrength to the given value.
+ Also stores the light as the tween's target so it can be used for filtered operations
+ The end value to reachThe duration of the tween
+
+
+ Tweens a LineRenderer's color to the given value.
+ Also stores the LineRenderer as the tween's target so it can be used for filtered operations.
+ Note that this method requires to also insert the start colors for the tween,
+ since LineRenderers have no way to get them.
+ The start value to tween from
+ The end value to reachThe duration of the tween
+
+
+ Tweens a Material's color to the given value.
+ Also stores the material as the tween's target so it can be used for filtered operations
+ The end value to reachThe duration of the tween
+
+
+ Tweens a Material's named color property to the given value.
+ Also stores the material as the tween's target so it can be used for filtered operations
+ The end value to reach
+ The name of the material property to tween (like _Tint or _SpecColor)
+ The duration of the tween
+
+
+ Tweens a Material's named color property with the given ID to the given value.
+ Also stores the material as the tween's target so it can be used for filtered operations
+ The end value to reach
+ The ID of the material property to tween (also called nameID in Unity's manual)
+ The duration of the tween
+
+
+ Tweens a Material's alpha color to the given value
+ (will have no effect unless your material supports transparency).
+ Also stores the material as the tween's target so it can be used for filtered operations
+ The end value to reachThe duration of the tween
+
+
+ Tweens a Material's alpha color to the given value
+ (will have no effect unless your material supports transparency).
+ Also stores the material as the tween's target so it can be used for filtered operations
+ The end value to reach
+ The name of the material property to tween (like _Tint or _SpecColor)
+ The duration of the tween
+
+
+ Tweens a Material's alpha color with the given ID to the given value
+ (will have no effect unless your material supports transparency).
+ Also stores the material as the tween's target so it can be used for filtered operations
+ The end value to reach
+ The ID of the material property to tween (also called nameID in Unity's manual)
+ The duration of the tween
+
+
+ Tweens a Material's named float property to the given value.
+ Also stores the material as the tween's target so it can be used for filtered operations
+ The end value to reach
+ The name of the material property to tween
+ The duration of the tween
+
+
+ Tweens a Material's named float property with the given ID to the given value.
+ Also stores the material as the tween's target so it can be used for filtered operations
+ The end value to reach
+ The ID of the material property to tween (also called nameID in Unity's manual)
+ The duration of the tween
+
+
+ Tweens a Material's texture offset to the given value.
+ Also stores the material as the tween's target so it can be used for filtered operations
+ The end value to reach
+ The duration of the tween
+
+
+ Tweens a Material's named texture offset property to the given value.
+ Also stores the material as the tween's target so it can be used for filtered operations
+ The end value to reach
+ The name of the material property to tween
+ The duration of the tween
+
+
+ Tweens a Material's texture scale to the given value.
+ Also stores the material as the tween's target so it can be used for filtered operations
+ The end value to reach
+ The duration of the tween
+
+
+ Tweens a Material's named texture scale property to the given value.
+ Also stores the material as the tween's target so it can be used for filtered operations
+ The end value to reach
+ The name of the material property to tween
+ The duration of the tween
+
+
+ Tweens a Material's named Vector property to the given value.
+ Also stores the material as the tween's target so it can be used for filtered operations
+ The end value to reach
+ The name of the material property to tween
+ The duration of the tween
+
+
+ Tweens a Material's named Vector property with the given ID to the given value.
+ Also stores the material as the tween's target so it can be used for filtered operations
+ The end value to reach
+ The ID of the material property to tween (also called nameID in Unity's manual)
+ The duration of the tween
+
+
+ Tweens a TrailRenderer's startWidth/endWidth to the given value.
+ Also stores the TrailRenderer as the tween's target so it can be used for filtered operations
+ The end startWidth to reachThe end endWidth to reach
+ The duration of the tween
+
+
+ Tweens a TrailRenderer's time to the given value.
+ Also stores the TrailRenderer as the tween's target so it can be used for filtered operations
+ The end value to reachThe duration of the tween
+
+
+ Tweens a Transform's position to the given value.
+ Also stores the transform as the tween's target so it can be used for filtered operations
+ The end value to reachThe duration of the tween
+ If TRUE the tween will smoothly snap all values to integers
+
+
+ Tweens a Transform's X position to the given value.
+ Also stores the transform as the tween's target so it can be used for filtered operations
+ The end value to reachThe duration of the tween
+ If TRUE the tween will smoothly snap all values to integers
+
+
+ Tweens a Transform's Y position to the given value.
+ Also stores the transform as the tween's target so it can be used for filtered operations
+ The end value to reachThe duration of the tween
+ If TRUE the tween will smoothly snap all values to integers
+
+
+ Tweens a Transform's Z position to the given value.
+ Also stores the transform as the tween's target so it can be used for filtered operations
+ The end value to reachThe duration of the tween
+ If TRUE the tween will smoothly snap all values to integers
+
+
+ Tweens a Transform's localPosition to the given value.
+ Also stores the transform as the tween's target so it can be used for filtered operations
+ The end value to reachThe duration of the tween
+ If TRUE the tween will smoothly snap all values to integers
+
+
+ Tweens a Transform's X localPosition to the given value.
+ Also stores the transform as the tween's target so it can be used for filtered operations
+ The end value to reachThe duration of the tween
+ If TRUE the tween will smoothly snap all values to integers
+
+
+ Tweens a Transform's Y localPosition to the given value.
+ Also stores the transform as the tween's target so it can be used for filtered operations
+ The end value to reachThe duration of the tween
+ If TRUE the tween will smoothly snap all values to integers
+
+
+ Tweens a Transform's Z localPosition to the given value.
+ Also stores the transform as the tween's target so it can be used for filtered operations
+ The end value to reachThe duration of the tween
+ If TRUE the tween will smoothly snap all values to integers
+
+
+ Tweens a Transform's rotation to the given value.
+ Also stores the transform as the tween's target so it can be used for filtered operations
+ The end value to reachThe duration of the tween
+ Rotation mode
+
+
+ Tweens a Transform's rotation to the given value using pure quaternion values.
+ Also stores the transform as the tween's target so it can be used for filtered operations.
+ PLEASE NOTE: DORotate, which takes Vector3 values, is the preferred rotation method.
+ This method was implemented for very special cases, and doesn't support LoopType.Incremental loops
+ (neither for itself nor if placed inside a LoopType.Incremental Sequence)
+
+ The end value to reachThe duration of the tween
+
+
+ Tweens a Transform's localRotation to the given value.
+ Also stores the transform as the tween's target so it can be used for filtered operations
+ The end value to reachThe duration of the tween
+ Rotation mode
+
+
+ Tweens a Transform's rotation to the given value using pure quaternion values.
+ Also stores the transform as the tween's target so it can be used for filtered operations.
+ PLEASE NOTE: DOLocalRotate, which takes Vector3 values, is the preferred rotation method.
+ This method was implemented for very special cases, and doesn't support LoopType.Incremental loops
+ (neither for itself nor if placed inside a LoopType.Incremental Sequence)
+
+ The end value to reachThe duration of the tween
+
+
+ Tweens a Transform's localScale to the given value.
+ Also stores the transform as the tween's target so it can be used for filtered operations
+ The end value to reachThe duration of the tween
+
+
+ Tweens a Transform's localScale uniformly to the given value.
+ Also stores the transform as the tween's target so it can be used for filtered operations
+ The end value to reachThe duration of the tween
+
+
+ Tweens a Transform's X localScale to the given value.
+ Also stores the transform as the tween's target so it can be used for filtered operations
+ The end value to reachThe duration of the tween
+
+
+ Tweens a Transform's Y localScale to the given value.
+ Also stores the transform as the tween's target so it can be used for filtered operations
+ The end value to reachThe duration of the tween
+
+
+ Tweens a Transform's Z localScale to the given value.
+ Also stores the transform as the tween's target so it can be used for filtered operations
+ The end value to reachThe duration of the tween
+
+
+ Tweens a Transform's rotation so that it will look towards the given world position.
+ Also stores the transform as the tween's target so it can be used for filtered operations
+ The position to look atThe duration of the tween
+ Eventual axis constraint for the rotation
+ The vector that defines in which direction up is (default: Vector3.up)
+
+
+ EXPERIMENTAL
Tweens a Transform's rotation so that it will look towards the given world position,
+ while also updating the lookAt position every frame
+ (contrary to which calculates the lookAt rotation only once, when the tween starts).
+ Also stores the transform as the tween's target so it can be used for filtered operations
+ The position to look atThe duration of the tween
+ Eventual axis constraint for the rotation
+ The vector that defines in which direction up is (default: Vector3.up)
+
+
+ Punches a Transform's localPosition towards the given direction and then back to the starting one
+ as if it was connected to the starting position via an elastic.
+ The direction and strength of the punch (added to the Transform's current position)
+ The duration of the tween
+ Indicates how much will the punch vibrate
+ Represents how much (0 to 1) the vector will go beyond the starting position when bouncing backwards.
+ 1 creates a full oscillation between the punch direction and the opposite direction,
+ while 0 oscillates only between the punch and the start position
+ If TRUE the tween will smoothly snap all values to integers
+
+
+ Punches a Transform's localScale towards the given size and then back to the starting one
+ as if it was connected to the starting scale via an elastic.
+ The punch strength (added to the Transform's current scale)
+ The duration of the tween
+ Indicates how much will the punch vibrate
+ Represents how much (0 to 1) the vector will go beyond the starting size when bouncing backwards.
+ 1 creates a full oscillation between the punch scale and the opposite scale,
+ while 0 oscillates only between the punch scale and the start scale
+
+
+ Punches a Transform's localRotation towards the given size and then back to the starting one
+ as if it was connected to the starting rotation via an elastic.
+ The punch strength (added to the Transform's current rotation)
+ The duration of the tween
+ Indicates how much will the punch vibrate
+ Represents how much (0 to 1) the vector will go beyond the starting rotation when bouncing backwards.
+ 1 creates a full oscillation between the punch rotation and the opposite rotation,
+ while 0 oscillates only between the punch and the start rotation
+
+
+ Shakes a Transform's localPosition with the given values.
+ The duration of the tween
+ The shake strength
+ Indicates how much will the shake vibrate
+ Indicates how much the shake will be random (0 to 180 - values higher than 90 kind of suck, so beware).
+ Setting it to 0 will shake along a single direction.
+ If TRUE the tween will smoothly snap all values to integers
+ If TRUE the shake will automatically fadeOut smoothly within the tween's duration, otherwise it will not
+ Randomness mode
+
+
+ Shakes a Transform's localPosition with the given values.
+ The duration of the tween
+ The shake strength on each axis
+ Indicates how much will the shake vibrate
+ Indicates how much the shake will be random (0 to 180 - values higher than 90 kind of suck, so beware).
+ Setting it to 0 will shake along a single direction.
+ If TRUE the tween will smoothly snap all values to integers
+ If TRUE the shake will automatically fadeOut smoothly within the tween's duration, otherwise it will not
+ Randomness mode
+
+
+ Shakes a Transform's localRotation.
+ The duration of the tween
+ The shake strength
+ Indicates how much will the shake vibrate
+ Indicates how much the shake will be random (0 to 180 - values higher than 90 kind of suck, so beware).
+ Setting it to 0 will shake along a single direction.
+ If TRUE the shake will automatically fadeOut smoothly within the tween's duration, otherwise it will not
+ Randomness mode
+
+
+ Shakes a Transform's localRotation.
+ The duration of the tween
+ The shake strength on each axis
+ Indicates how much will the shake vibrate
+ Indicates how much the shake will be random (0 to 180 - values higher than 90 kind of suck, so beware).
+ Setting it to 0 will shake along a single direction.
+ If TRUE the shake will automatically fadeOut smoothly within the tween's duration, otherwise it will not
+ Randomness mode
+
+
+ Shakes a Transform's localScale.
+ The duration of the tween
+ The shake strength
+ Indicates how much will the shake vibrate
+ Indicates how much the shake will be random (0 to 180 - values higher than 90 kind of suck, so beware).
+ Setting it to 0 will shake along a single direction.
+ If TRUE the shake will automatically fadeOut smoothly within the tween's duration, otherwise it will not
+ Randomness mode
+
+
+ Shakes a Transform's localScale.
+ The duration of the tween
+ The shake strength on each axis
+ Indicates how much will the shake vibrate
+ Indicates how much the shake will be random (0 to 180 - values higher than 90 kind of suck, so beware).
+ Setting it to 0 will shake along a single direction.
+ If TRUE the shake will automatically fadeOut smoothly within the tween's duration, otherwise it will not
+ Randomness mode
+
+
+ Tweens a Transform's position to the given value, while also applying a jump effect along the Y axis.
+ Returns a Sequence instead of a Tweener.
+ Also stores the transform as the tween's target so it can be used for filtered operations
+ The end value to reach
+ Power of the jump (the max height of the jump is represented by this plus the final Y offset)
+ Total number of jumps
+ The duration of the tween
+ If TRUE the tween will smoothly snap all values to integers
+
+
+ Tweens a Transform's localPosition to the given value, while also applying a jump effect along the Y axis.
+ Returns a Sequence instead of a Tweener.
+ Also stores the transform as the tween's target so it can be used for filtered operations
+ The end value to reach
+ Power of the jump (the max height of the jump is represented by this plus the final Y offset)
+ Total number of jumps
+ The duration of the tween
+ If TRUE the tween will smoothly snap all values to integers
+
+
+ Tweens a Transform's position through the given path waypoints, using the chosen path algorithm.
+ Also stores the transform as the tween's target so it can be used for filtered operations
+ The waypoints to go through
+ The duration of the tween
+ The type of path: Linear (straight path), CatmullRom (curved CatmullRom path) or CubicBezier (curved with control points)
+ The path mode: 3D, side-scroller 2D, top-down 2D
+ The resolution of the path (useless in case of Linear paths): higher resolutions make for more detailed curved paths but are more expensive.
+ Defaults to 10, but a value of 5 is usually enough if you don't have dramatic long curves between waypoints
+ The color of the path (shown when gizmos are active in the Play panel and the tween is running)
+
+
+ Tweens a Transform's localPosition through the given path waypoints, using the chosen path algorithm.
+ Also stores the transform as the tween's target so it can be used for filtered operations
+ The waypoint to go through
+ The duration of the tween
+ The type of path: Linear (straight path), CatmullRom (curved CatmullRom path) or CubicBezier (curved with control points)
+ The path mode: 3D, side-scroller 2D, top-down 2D
+ The resolution of the path: higher resolutions make for more detailed curved paths but are more expensive.
+ Defaults to 10, but a value of 5 is usually enough if you don't have dramatic long curves between waypoints
+ The color of the path (shown when gizmos are active in the Play panel and the tween is running)
+
+
+ IMPORTANT: Unless you really know what you're doing, you should use the overload that accepts a Vector3 array instead.
+ Tweens a Transform's position via the given path.
+ Also stores the transform as the tween's target so it can be used for filtered operations
+ The path to use
+ The duration of the tween
+ The path mode: 3D, side-scroller 2D, top-down 2D
+
+
+ IMPORTANT: Unless you really know what you're doing, you should use the overload that accepts a Vector3 array instead.
+ Tweens a Transform's localPosition via the given path.
+ Also stores the transform as the tween's target so it can be used for filtered operations
+ The path to use
+ The duration of the tween
+ The path mode: 3D, side-scroller 2D, top-down 2D
+
+
+ Tweens a Tween's timeScale to the given value.
+ Also stores the Tween as the tween's target so it can be used for filtered operations
+ The end value to reachThe duration of the tween
+
+
+ Tweens a Light's color to the given value,
+ in a way that allows other DOBlendableColor tweens to work together on the same target,
+ instead than fight each other as multiple DOColor would do.
+ Also stores the Light as the tween's target so it can be used for filtered operations
+ The value to tween toThe duration of the tween
+
+
+ Tweens a Material's color to the given value,
+ in a way that allows other DOBlendableColor tweens to work together on the same target,
+ instead than fight each other as multiple DOColor would do.
+ Also stores the Material as the tween's target so it can be used for filtered operations
+ The value to tween toThe duration of the tween
+
+
+ Tweens a Material's named color property to the given value,
+ in a way that allows other DOBlendableColor tweens to work together on the same target,
+ instead than fight each other as multiple DOColor would do.
+ Also stores the Material as the tween's target so it can be used for filtered operations
+ The value to tween to
+ The name of the material property to tween (like _Tint or _SpecColor)
+ The duration of the tween
+
+
+ Tweens a Material's named color property with the given ID to the given value,
+ in a way that allows other DOBlendableColor tweens to work together on the same target,
+ instead than fight each other as multiple DOColor would do.
+ Also stores the Material as the tween's target so it can be used for filtered operations
+ The value to tween to
+ The ID of the material property to tween (also called nameID in Unity's manual)
+ The duration of the tween
+
+
+ Tweens a Transform's position BY the given value (as if you chained a SetRelative
),
+ in a way that allows other DOBlendableMove tweens to work together on the same target,
+ instead than fight each other as multiple DOMove would do.
+ Also stores the transform as the tween's target so it can be used for filtered operations
+ The value to tween byThe duration of the tween
+ If TRUE the tween will smoothly snap all values to integers
+
+
+ Tweens a Transform's localPosition BY the given value (as if you chained a SetRelative
),
+ in a way that allows other DOBlendableMove tweens to work together on the same target,
+ instead than fight each other as multiple DOMove would do.
+ Also stores the transform as the tween's target so it can be used for filtered operations
+ The value to tween byThe duration of the tween
+ If TRUE the tween will smoothly snap all values to integers
+
+
+ EXPERIMENTAL METHOD - Tweens a Transform's rotation BY the given value (as if you chained a SetRelative
),
+ in a way that allows other DOBlendableRotate tweens to work together on the same target,
+ instead than fight each other as multiple DORotate would do.
+ Also stores the transform as the tween's target so it can be used for filtered operations
+ The value to tween byThe duration of the tween
+ Rotation mode
+
+
+ EXPERIMENTAL METHOD - Tweens a Transform's lcoalRotation BY the given value (as if you chained a SetRelative
),
+ in a way that allows other DOBlendableRotate tweens to work together on the same target,
+ instead than fight each other as multiple DORotate would do.
+ Also stores the transform as the tween's target so it can be used for filtered operations
+ The value to tween byThe duration of the tween
+ Rotation mode
+
+
+ Punches a Transform's localRotation BY the given value and then back to the starting one
+ as if it was connected to the starting rotation via an elastic. Does it in a way that allows other
+ DOBlendableRotate tweens to work together on the same target
+ The punch strength (added to the Transform's current rotation)
+ The duration of the tween
+ Indicates how much will the punch vibrate
+ Represents how much (0 to 1) the vector will go beyond the starting rotation when bouncing backwards.
+ 1 creates a full oscillation between the punch rotation and the opposite rotation,
+ while 0 oscillates only between the punch and the start rotation
+
+
+ Tweens a Transform's localScale BY the given value (as if you chained a SetRelative
),
+ in a way that allows other DOBlendableScale tweens to work together on the same target,
+ instead than fight each other as multiple DOScale would do.
+ Also stores the transform as the tween's target so it can be used for filtered operations
+ The value to tween byThe duration of the tween
+
+
+
+ Completes all tweens that have this target as a reference
+ (meaning tweens that were started from this target, or that had this target added as an Id)
+ and returns the total number of tweens completed
+ (meaning the tweens that don't have infinite loops and were not already complete)
+
+ For Sequences only: if TRUE also internal Sequence callbacks will be fired,
+ otherwise they will be ignored
+
+
+
+ Completes all tweens that have this target as a reference
+ (meaning tweens that were started from this target, or that had this target added as an Id)
+ and returns the total number of tweens completed
+ (meaning the tweens that don't have infinite loops and were not already complete)
+
+ For Sequences only: if TRUE also internal Sequence callbacks will be fired,
+ otherwise they will be ignored
+
+
+
+ Kills all tweens that have this target as a reference
+ (meaning tweens that were started from this target, or that had this target added as an Id)
+ and returns the total number of tweens killed.
+
+ If TRUE completes the tween before killing it
+
+
+
+ Kills all tweens that have this target as a reference
+ (meaning tweens that were started from this target, or that had this target added as an Id)
+ and returns the total number of tweens killed.
+
+ If TRUE completes the tween before killing it
+
+
+
+ Flips the direction (backwards if it was going forward or viceversa) of all tweens that have this target as a reference
+ (meaning tweens that were started from this target, or that had this target added as an Id)
+ and returns the total number of tweens flipped.
+
+
+
+
+ Flips the direction (backwards if it was going forward or viceversa) of all tweens that have this target as a reference
+ (meaning tweens that were started from this target, or that had this target added as an Id)
+ and returns the total number of tweens flipped.
+
+
+
+
+ Sends to the given position all tweens that have this target as a reference
+ (meaning tweens that were started from this target, or that had this target added as an Id)
+ and returns the total number of tweens involved.
+
+ Time position to reach
+ (if higher than the whole tween duration the tween will simply reach its end)
+ If TRUE will play the tween after reaching the given position, otherwise it will pause it
+
+
+
+ Sends to the given position all tweens that have this target as a reference
+ (meaning tweens that were started from this target, or that had this target added as an Id)
+ and returns the total number of tweens involved.
+
+ Time position to reach
+ (if higher than the whole tween duration the tween will simply reach its end)
+ If TRUE will play the tween after reaching the given position, otherwise it will pause it
+
+
+
+ Pauses all tweens that have this target as a reference
+ (meaning tweens that were started from this target, or that had this target added as an Id)
+ and returns the total number of tweens paused.
+
+
+
+
+ Pauses all tweens that have this target as a reference
+ (meaning tweens that were started from this target, or that had this target added as an Id)
+ and returns the total number of tweens paused.
+
+
+
+
+ Plays all tweens that have this target as a reference
+ (meaning tweens that were started from this target, or that had this target added as an Id)
+ and returns the total number of tweens played.
+
+
+
+
+ Plays all tweens that have this target as a reference
+ (meaning tweens that were started from this target, or that had this target added as an Id)
+ and returns the total number of tweens played.
+
+
+
+
+ Plays backwards all tweens that have this target as a reference
+ (meaning tweens that were started from this target, or that had this target added as an Id)
+ and returns the total number of tweens played.
+
+
+
+
+ Plays backwards all tweens that have this target as a reference
+ (meaning tweens that were started from this target, or that had this target added as an Id)
+ and returns the total number of tweens played.
+
+
+
+
+ Plays forward all tweens that have this target as a reference
+ (meaning tweens that were started from this target, or that had this target added as an Id)
+ and returns the total number of tweens played.
+
+
+
+
+ Plays forward all tweens that have this target as a reference
+ (meaning tweens that were started from this target, or that had this target added as an Id)
+ and returns the total number of tweens played.
+
+
+
+
+ Restarts all tweens that have this target as a reference
+ (meaning tweens that were started from this target, or that had this target added as an Id)
+ and returns the total number of tweens restarted.
+
+
+
+
+ Restarts all tweens that have this target as a reference
+ (meaning tweens that were started from this target, or that had this target added as an Id)
+ and returns the total number of tweens restarted.
+
+
+
+
+ Rewinds all tweens that have this target as a reference
+ (meaning tweens that were started from this target, or that had this target added as an Id)
+ and returns the total number of tweens rewinded.
+
+
+
+
+ Rewinds all tweens that have this target as a reference
+ (meaning tweens that were started from this target, or that had this target added as an Id)
+ and returns the total number of tweens rewinded.
+
+
+
+
+ Smoothly rewinds all tweens that have this target as a reference
+ (meaning tweens that were started from this target, or that had this target added as an Id)
+ and returns the total number of tweens rewinded.
+
+
+
+
+ Smoothly rewinds all tweens that have this target as a reference
+ (meaning tweens that were started from this target, or that had this target added as an Id)
+ and returns the total number of tweens rewinded.
+
+
+
+
+ Toggles the paused state (plays if it was paused, pauses if it was playing) of all tweens that have this target as a reference
+ (meaning tweens that were started from this target, or that had this target added as an Id)
+ and returns the total number of tweens involved.
+
+
+
+
+ Toggles the paused state (plays if it was paused, pauses if it was playing) of all tweens that have this target as a reference
+ (meaning tweens that were started from this target, or that had this target added as an Id)
+ and returns the total number of tweens involved.
+
+
+
+
+ This class serves only as a utility class to store tween settings to apply on multiple tweens.
+ It is in no way needed otherwise, since you can directly apply tween settings to a tween via chaining
+
+
+
+ A variable you can eventually Clear and reuse when needed,
+ to avoid instantiating TweenParams objects
+
+
+ Creates a new TweenParams object, which you can use to store tween settings
+ to pass to multiple tweens via myTween.SetAs(myTweenParms)
+
+
+ Clears and resets this TweenParams instance using default values,
+ so it can be reused without instantiating another one
+
+
+ Sets the autoKill behaviour of the tween.
+ Has no effect if the tween has already started
+ If TRUE the tween will be automatically killed when complete
+
+
+ Sets an ID for the tween, which can then be used as a filter with DOTween's static methods.
+ The ID to assign to this tween. Can be an int, a string, an object or anything else.
+
+
+ Sets an ID for the tween, which can then be used as a filter with DOTween's static methods.
+ The ID to assign to this tween. Can be an int, a string, an object or anything else.
+
+
+ Sets an ID for the tween, which can then be used as a filter with DOTween's static methods.
+ The ID to assign to this tween. Can be an int, a string, an object or anything else.
+
+
+ Sets the target for the tween, which can then be used as a filter with DOTween's static methods.
+ IMPORTANT: use it with caution. If you just want to set an ID for the tween use SetId
instead.
+ When using shorcuts the shortcut target is already assigned as the tween's target,
+ so using this method will overwrite it and prevent shortcut-operations like myTarget.DOPause from working correctly.
+ The target to assign to this tween. Can be an int, a string, an object or anything else.
+
+
+ Sets the looping options for the tween.
+ Has no effect if the tween has already started
+ Number of cycles to play (-1 for infinite - will be converted to 1 in case the tween is nested in a Sequence)
+ Loop behaviour type (default: LoopType.Restart)
+
+
+ Sets the ease of the tween.
+ If applied to Sequences eases the whole sequence animation
+ Eventual overshoot or amplitude to use with Back or Elastic easeType (default is 1.70158)
+ Eventual period to use with Elastic easeType (default is 0)
+
+
+ Sets the ease of the tween using an AnimationCurve.
+ If applied to Sequences eases the whole sequence animation
+
+
+ Sets the ease of the tween using a custom ease function.
+ If applied to Sequences eases the whole sequence animation
+
+
+ Sets the recycling behaviour for the tween.
+ If TRUE the tween will be recycled after being killed, otherwise it will be destroyed.
+
+
+ Sets the update type to the one defined in DOTween.defaultUpdateType (UpdateType.Normal unless changed)
+ and lets you choose if it should be independent from Unity's Time.timeScale
+ If TRUE the tween will ignore Unity's Time.timeScale
+
+
+ Sets the type of update (default or independent) for the tween
+ The type of update (default: UpdateType.Normal)
+ If TRUE the tween will ignore Unity's Time.timeScale
+
+
+ Sets the onStart callback for the tween.
+ Called the first time the tween is set in a playing state, after any eventual delay
+
+
+ Sets the onPlay callback for the tween.
+ Called when the tween is set in a playing state, after any eventual delay.
+ Also called each time the tween resumes playing from a paused state
+
+
+ Sets the onRewind callback for the tween.
+ Called when the tween is rewinded,
+ either by calling Rewind
or by reaching the start position while playing backwards.
+ Rewinding a tween that is already rewinded will not fire this callback
+
+
+ Sets the onUpdate callback for the tween.
+ Called each time the tween updates
+
+
+ Sets the onStepComplete callback for the tween.
+ Called the moment the tween completes one loop cycle, even when going backwards
+
+
+ Sets the onComplete callback for the tween.
+ Called the moment the tween reaches its final forward position, loops included
+
+
+ Sets the onKill callback for the tween.
+ Called the moment the tween is killed
+
+
+ Sets the onWaypointChange callback for the tween.
+ Called when a path tween reaches a new waypoint
+
+
+ Sets a delayed startup for the tween.
+ Has no effect on Sequences or if the tween has already started
+
+
+ If isRelative is TRUE sets the tween as relative
+ (the endValue will be calculated as startValue + endValue
instead than being used directly).
+ Has no effect on Sequences or if the tween has already started
+
+
+ If isSpeedBased is TRUE sets the tween as speed based
+ (the duration will represent the number of units the tween moves x second).
+ Has no effect on Sequences, nested tweens, or if the tween has already started
+
+
+
+ Methods that extend Tween objects and allow to set their parameters
+
+
+
+ Sets the autoKill behaviour of the tween to TRUE.
+ Has no effect
if the tween has already started or if it's added to a Sequence
+
+
+ Sets the autoKill behaviour of the tween.
+ Has no effect
if the tween has already started or if it's added to a Sequence
+ If TRUE the tween will be automatically killed when complete
+
+
+ Sets an ID for the tween (), which can then be used as a filter with DOTween's static methods.
+ The ID to assign to this tween. Can be an int, a string, an object or anything else.
+
+
+ Sets a string ID for the tween (), which can then be used as a filter with DOTween's static methods.
+ Filtering via string is 2X faster than using an object as an ID (using the alternate obejct overload)
+ The string ID to assign to this tween.
+
+
+ Sets an int ID for the tween (), which can then be used as a filter with DOTween's static methods.
+ Filtering via int is 4X faster than via object, 2X faster than via string (using the alternate object/string overloads)
+ The int ID to assign to this tween.
+
+
+ Allows to link this tween to a GameObject
+ so that it will be automatically killed when the GameObject is destroyed.
+ Has no effect
if the tween is added to a Sequence
+ The link target (unrelated to the target set via SetTarget
)
+
+
+ Allows to link this tween to a GameObject and assign a behaviour depending on it.
+ This will also automatically kill the tween when the GameObject is destroyed.
+ Has no effect
if the tween is added to a Sequence
+ The link target (unrelated to the target set via SetTarget
)
+ The behaviour to use ( is always evaluated even if you choose another one)
+
+
+ Sets the target for the tween, which can then be used as a filter with DOTween's static methods.
+ IMPORTANT: use it with caution. If you just want to set an ID for the tween use SetId
instead.
+ When using shorcuts the shortcut target is already assigned as the tween's target,
+ so using this method will overwrite it and prevent shortcut-operations like myTarget.DOPause from working correctly.
+ The target to assign to this tween. Can be an int, a string, an object or anything else.
+
+
+ Sets the looping options for the tween.
+ Has no effect if the tween has already started
+ Number of cycles to play (-1 for infinite - will be converted to 1 in case the tween is nested in a Sequence)
+
+
+ Sets the looping options for the tween.
+ Has no effect if the tween has already started
+ Number of cycles to play (-1 for infinite - will be converted to 1 in case the tween is nested in a Sequence)
+ Loop behaviour type (default: LoopType.Restart)
+
+
+ Sets the ease of the tween.
+ If applied to Sequences eases the whole sequence animation
+
+
+ Sets the ease of the tween.
+ If applied to Sequences eases the whole sequence animation
+
+ Eventual overshoot to use with Back or Flash ease (default is 1.70158 - 1 for Flash).
+ In case of Flash ease it must be an intenger and sets the total number of flashes that will happen.
+ Using an even number will complete the tween on the starting value, while an odd one will complete it on the end value.
+
+
+
+ Sets the ease of the tween.
+ If applied to Sequences eases the whole sequence animation
+ Eventual amplitude to use with Elastic easeType or overshoot to use with Flash easeType (default is 1.70158 - 1 for Flash).
+ In case of Flash ease it must be an integer and sets the total number of flashes that will happen.
+ Using an even number will complete the tween on the starting value, while an odd one will complete it on the end value.
+
+ Eventual period to use with Elastic or Flash easeType (default is 0).
+ In case of Flash ease it indicates the power in time of the ease, and must be between -1 and 1.
+ 0 is balanced, 1 weakens the ease with time, -1 starts the ease weakened and gives it power towards the end.
+
+
+
+ Sets the ease of the tween using an AnimationCurve.
+ If applied to Sequences eases the whole sequence animation
+
+
+ Sets the ease of the tween using a custom ease function (which must return a value between 0 and 1).
+ If applied to Sequences eases the whole sequence animation
+
+
+ Allows the tween to be recycled after being killed.
+
+
+ Sets the recycling behaviour for the tween.
+ If TRUE the tween will be recycled after being killed, otherwise it will be destroyed.
+
+
+ Sets the update type to UpdateType.Normal and lets you choose if it should be independent from Unity's Time.timeScale
+ If TRUE the tween will ignore Unity's Time.timeScale
+
+
+ Sets the type of update for the tween
+ The type of update (defalt: UpdateType.Normal)
+
+
+ Sets the type of update for the tween and lets you choose if it should be independent from Unity's Time.timeScale
+ The type of update
+ If TRUE the tween will ignore Unity's Time.timeScale
+
+
+ EXPERIMENTAL: inverts this tween, so that it will play from the end to the beginning
+ (playing it backwards will actually play it from the beginning to the end).
+ Has no effect
if the tween has already started or if it's added to a Sequence
+
+
+ EXPERIMENTAL: inverts this tween, so that it will play from the end to the beginning
+ (playing it backwards will actually play it from the beginning to the end).
+ Has no effect
if the tween has already started or if it's added to a Sequence
+ If TRUE the tween will be inverted, otherwise it won't
+
+
+ Sets the onStart
callback for the tween, clearing any previous onStart
callback that was set.
+ Called the first time the tween is set in a playing state, after any eventual delay
+
+
+ Sets the onPlay
callback for the tween, clearing any previous onPlay
callback that was set.
+ Called when the tween is set in a playing state, after any eventual delay.
+ Also called each time the tween resumes playing from a paused state
+
+
+ Sets the onPause
callback for the tween, clearing any previous onPause
callback that was set.
+ Called when the tween state changes from playing to paused.
+ If the tween has autoKill set to FALSE, this is called also when the tween reaches completion.
+
+
+ Sets the onRewind
callback for the tween, clearing any previous onRewind
callback that was set.
+ Called when the tween is rewinded,
+ either by calling Rewind
or by reaching the start position while playing backwards.
+ Rewinding a tween that is already rewinded will not fire this callback
+
+
+ Sets the onUpdate
callback for the tween, clearing any previous onUpdate
callback that was set.
+ Called each time the tween updates
+
+
+ Sets the onStepComplete
callback for the tween, clearing any previous onStepComplete
callback that was set.
+ Called the moment the tween completes one loop cycle, even when going backwards
+
+
+ Sets the onComplete
callback for the tween, clearing any previous onComplete
callback that was set.
+ Called the moment the tween reaches its final forward position, loops included
+
+
+ Sets the onKill
callback for the tween, clearing any previous onKill
callback that was set.
+ Called the moment the tween is killed
+
+
+ Sets the onWaypointChange
callback for the tween, clearing any previous onWaypointChange
callback that was set.
+ Called when a path tween's current waypoint changes
+
+
+ Sets the parameters of the tween (id, ease, loops, delay, timeScale, callbacks, etc) as the parameters of the given one.
+ Doesn't copy specific SetOptions settings: those will need to be applied manually each time.
+ Has no effect if the tween has already started.
+ NOTE: the tween's target
will not be changed
+ Tween from which to copy the parameters
+
+
+ Sets the parameters of the tween (id, ease, loops, delay, timeScale, callbacks, etc) as the parameters of the given TweenParams.
+ Has no effect if the tween has already started.
+ TweenParams from which to copy the parameters
+
+
+ Adds the given tween to the end of the Sequence.
+ Has no effect if the Sequence has already started
+ The tween to append
+
+
+ Adds the given tween to the beginning of the Sequence, pushing forward the other nested content.
+ Has no effect if the Sequence has already started
+ The tween to prepend
+
+
+ Inserts the given tween at the same time position of the last tween, callback or interval added to the Sequence.
+ Note that, in case of a Join after an interval, the insertion time will be the time where the interval starts, not where it finishes.
+ Has no effect if the Sequence has already started
+
+
+ Inserts the given tween at the given time position in the Sequence,
+ automatically adding an interval if needed.
+ Has no effect if the Sequence has already started
+ The time position where the tween will be placed
+ The tween to insert
+
+
+ Adds the given interval to the end of the Sequence.
+ Has no effect if the Sequence has already started
+ The interval duration
+
+
+ Adds the given interval to the beginning of the Sequence, pushing forward the other nested content.
+ Has no effect if the Sequence has already started
+ The interval duration
+
+
+ Adds the given callback to the end of the Sequence.
+ Has no effect if the Sequence has already started
+ The callback to append
+
+
+ Adds the given callback to the beginning of the Sequence, pushing forward the other nested content.
+ Has no effect if the Sequence has already started
+ The callback to prepend
+
+
+ Inserts the given callback at the same time position of the last tween, callback or interval added to the Sequence.
+ Note that, in case of a Join after an interval, the insertion time will be the time where the interval starts, not where it finishes.
+ Has no effect if the Sequence has already started
+ /// <param name="callback">The callback to prepend</param>
+
+
+ Inserts the given callback at the given time position in the Sequence,
+ automatically adding an interval if needed.
+ Has no effect if the Sequence has already started
+ The time position where the callback will be placed
+ The callback to insert
+
+
+ Changes a TO tween into a FROM tween: sets the current target's position as the tween's endValue
+ then immediately sends the target to the previously set endValue.
+
+
+ Changes a TO tween into a FROM tween: sets the current target's position as the tween's endValue
+ then immediately sends the target to the previously set endValue.
+ If TRUE the FROM value will be calculated as relative to the current one
+
+
+ Changes a TO tween into a FROM tween: sets the current value of the target as the endValue,
+ and the previously passed endValue as the actual startValue.
+ If TRUE sets the target to from value immediately, otherwise waits for the tween to start
+ If TRUE the FROM value will be calculated as relative to the current one
+
+
+ Changes a TO tween into a FROM tween: sets the tween's starting value to the given one
+ and eventually sets the tween's target to that value immediately.
+ Value to start from
+ If TRUE sets the target to from value immediately, otherwise waits for the tween to start
+ If TRUE the FROM/TO values will be calculated as relative to the current ones
+
+
+ Changes a TO tween into a FROM tween: sets the tween's starting value to the given one
+ and eventually sets the tween's target to that value immediately.
+ Alpha value to start from (in case of Fade tweens)
+ If TRUE sets the target to from value immediately, otherwise waits for the tween to start
+ If TRUE the FROM/TO values will be calculated as relative to the current ones
+
+
+ Changes a TO tween into a FROM tween: sets the tween's starting value to the given one
+ and eventually sets the tween's target to that value immediately.
+ Value to start from (in case of Vector tweens that act on a single coordinate or scale tweens)
+ If TRUE sets the target to from value immediately, otherwise waits for the tween to start
+ If TRUE the FROM/TO values will be calculated as relative to the current ones
+
+
+ Changes a TO tween into a FROM tween: sets the tween's starting value to the given one
+ and eventually sets the tween's target to that value immediately.
+ Value to start from (in case of Vector tweens that act on a single coordinate or scale tweens)
+ If TRUE sets the target to from value immediately, otherwise waits for the tween to start
+ If TRUE the FROM/TO values will be calculated as relative to the current ones
+
+
+ Sets a delayed startup for the tween.
+ In case of Sequences behaves the same as ,
+ which means the delay will repeat in case of loops (while with tweens it's ignored after the first loop cycle).
+ Has no effect if the tween has already started
+
+
+ EXPERIMENTAL: implemented in v1.2.340.
+ Sets a delayed startup for the tween with options to choose how the delay is applied in case of Sequences.
+ Has no effect if the tween has already started
+ Only used by types: If FALSE sets the delay as a one-time occurrence
+ (defaults to this for types),
+ otherwise as a Sequence interval which will repeat at the beginning of every loop cycle
+
+
+ Sets the tween as relative
+ (the endValue will be calculated as startValue + endValue
instead than being used directly).
+ Has no effect on Sequences or if the tween has already started
+
+
+ If isRelative is TRUE sets the tween as relative
+ (the endValue will be calculated as startValue + endValue
instead than being used directly).
+ Has no effect on Sequences or if the tween has already started
+
+
+ If isSpeedBased is TRUE sets the tween as speed based
+ (the duration will represent the number of units the tween moves x second).
+ Has no effect on Sequences, nested tweens, or if the tween has already started
+
+
+ If isSpeedBased is TRUE sets the tween as speed based
+ (the duration will represent the number of units the tween moves x second).
+ Has no effect on Sequences, nested tweens, or if the tween has already started
+
+
+ Options for float tweens
+ If TRUE the tween will smoothly snap all values to integers
+
+
+ Options for Vector2 tweens
+ If TRUE the tween will smoothly snap all values to integers
+
+
+ Options for Vector2 tweens
+ Selecting an axis will tween the vector only on that axis, leaving the others untouched
+ If TRUE the tween will smoothly snap all values to integers
+
+
+ Options for Vector3 tweens
+ If TRUE the tween will smoothly snap all values to integers
+
+
+ Options for Vector3 tweens
+ Selecting an axis will tween the vector only on that axis, leaving the others untouched
+ If TRUE the tween will smoothly snap all values to integers
+
+
+ Options for Vector4 tweens
+ If TRUE the tween will smoothly snap all values to integers
+
+
+ Options for Vector4 tweens
+ Selecting an axis will tween the vector only on that axis, leaving the others untouched
+ If TRUE the tween will smoothly snap all values to integers
+
+
+ Options for Quaternion tweens
+ If TRUE (default) the rotation will take the shortest route, and will not rotate more than 360°.
+ If FALSE the rotation will be fully accounted. Is always FALSE if the tween is set as relative
+
+
+ Options for Color tweens
+ If TRUE only the alpha value of the color will be tweened
+
+
+ Options for Vector4 tweens
+ If TRUE the tween will smoothly snap all values to integers
+
+
+ Options for Vector4 tweens
+ If TRUE, rich text will be interpreted correctly while animated,
+ otherwise all tags will be considered as normal text
+ The type of scramble to use, if any
+ A string containing the characters to use for scrambling.
+ Use as many characters as possible (minimum 10) because DOTween uses a fast scramble mode which gives better results with more characters.
+ Leave it to NULL to use default ones
+
+
+ Options for Vector3Array tweens
+ If TRUE the tween will smoothly snap all values to integers
+
+
+ Options for Vector3Array tweens
+ If TRUE the tween will smoothly snap all values to integers
+
+
+ Options for ShapeCircle tweens
+ If TRUE the center you set in the DOTween.To method will be considered as relative
+ to the starting position of the target
+ If TRUE the tween will smoothly snap all values to integers
+
+
+ Options for Path tweens (created via the DOPath
shortcut)
+ The eventual movement axis to lock. You can input multiple axis if you separate them like this:
+ AxisConstrain.X | AxisConstraint.Y
+ The eventual rotation axis to lock. You can input multiple axis if you separate them like this:
+ AxisConstrain.X | AxisConstraint.Y
+
+
+ Options for Path tweens (created via the DOPath
shortcut)
+ If TRUE the path will be automatically closed
+ The eventual movement axis to lock. You can input multiple axis if you separate them like this:
+ AxisConstrain.X | AxisConstraint.Y
+ The eventual rotation axis to lock. You can input multiple axis if you separate them like this:
+ AxisConstrain.X | AxisConstraint.Y
+
+
+ Additional LookAt options for Path tweens (created via the DOPath
shortcut).
+ Orients the target towards the given position.
+ Must be chained directly to the tween creation method or to a SetOptions
+ The position to look at
+ The eventual direction to consider as "forward".
+ If left to NULL defaults to the regular forward side of the transform
+ The vector that defines in which direction up is (default: Vector3.up)
+
+
+ Additional LookAt options for Path tweens (created via the DOPath
shortcut).
+ Orients the target towards the given position with options to keep the Z rotation stable.
+ Must be chained directly to the tween creation method or to a SetOptions
+ The position to look at
+ If TRUE doesn't rotate the target along the Z axis
+
+
+ Additional LookAt options for Path tweens (created via the DOPath
shortcut).
+ Orients the target towards another transform.
+ Must be chained directly to the tween creation method or to a SetOptions
+ The transform to look at
+ The eventual direction to consider as "forward".
+ If left to NULL defaults to the regular forward side of the transform
+ The vector that defines in which direction up is (default: Vector3.up)
+
+
+ Additional LookAt options for Path tweens (created via the DOPath
shortcut).
+ Orients the target towards another transform with options to keep the Z rotation stable.
+ Must be chained directly to the tween creation method or to a SetOptions
+ The transform to look at
+ If TRUE doesn't rotate the target along the Z axis
+
+
+ Additional LookAt options for Path tweens (created via the DOPath
shortcut).
+ Orients the target to the path, with the given lookAhead.
+ Must be chained directly to the tween creation method or to a SetOptions
+ The percentage of lookAhead to use (0 to 1)
+ The eventual direction to consider as "forward".
+ If left to NULL defaults to the regular forward side of the transform
+ The vector that defines in which direction up is (default: Vector3.up)
+
+
+ Additional LookAt options for Path tweens (created via the DOPath
shortcut).
+ Orients the path with options to keep the Z rotation stable.
+ Must be chained directly to the tween creation method or to a SetOptions
+ The percentage of lookAhead to use (0 to 1)
+ If TRUE doesn't rotate the target along the Z axis
+
+
+
+ Types of log behaviours
+
+
+
+ Log only warnings and errors
+
+
+ Log warnings, errors and additional infos
+
+
+ Log only errors
+
+
+
+ Indicates either a Tweener or a Sequence
+
+
+
+ TimeScale for the tween
+
+
+ If TRUE the tween will play backwards
+
+
+ If TRUE the tween is completely inverted but without playing it backwards
+ (play backwards will actually play the tween in the original direction)
+
+
+ Object ID (usable for filtering with DOTween static methods). Can be anything except a string or an int
+ (use or for those)
+
+
+ String ID (usable for filtering with DOTween static methods). 2X faster than using an object id
+
+
+ Int ID (usable for filtering with DOTween static methods). 4X faster than using an object id, 2X faster than using a string id.
+ Default is -999 so avoid using an ID like that or it will capture all unset intIds
+
+
+ Tween target (usable for filtering with DOTween static methods). Automatically set by tween creation shortcuts
+
+
+ Called when the tween is set in a playing state, after any eventual delay.
+ Also called each time the tween resumes playing from a paused state
+
+
+ Called when the tween state changes from playing to paused.
+ If the tween has autoKill set to FALSE, this is called also when the tween reaches completion.
+
+
+ Called when the tween is rewinded,
+ either by calling Rewind
or by reaching the start position while playing backwards.
+ Rewinding a tween that is already rewinded will not fire this callback
+
+
+ Called each time the tween updates
+
+
+ Called the moment the tween completes one loop cycle
+
+
+ Called the moment the tween reaches completion (loops included)
+
+
+ Called the moment the tween is killed
+
+
+ Called when a path tween's current waypoint changes
+
+
+ Tweeners-only (ignored by Sequences), returns TRUE if the tween was set as relative
+
+
+
+ Set by SetTarget if DOTween's Debug Mode is on (see DOTween Utility Panel -> "Store GameObject's ID" debug option
+
+
+
+ FALSE when tween is (or should be) despawned - set only by TweenManager
+
+
+ Gets and sets the time position (loops included, delays excluded) of the tween
+
+
+ Returns TRUE if the tween is set to loop (either a set number of times or infinitely)
+
+
+ TRUE after the tween was set in a play state at least once, AFTER any delay is elapsed
+
+
+ Time position within a single loop cycle
+
+
+
+ Animates a single value
+
+
+
+ Changes the start value of a tween and rewinds it (without pausing it).
+ Has no effect with tweens that are inside Sequences
+ The new start value
+ If bigger than 0 applies it as the new tween duration
+
+
+ Changes the end value of a tween and rewinds it (without pausing it).
+ Has no effect with tweens that are inside Sequences
+ The new end value
+ If bigger than 0 applies it as the new tween duration
+ If TRUE the start value will become the current target's value, otherwise it will stay the same
+
+
+ Changes the end value of a tween and rewinds it (without pausing it).
+ Has no effect with tweens that are inside Sequences
+ The new end value
+ If TRUE the start value will become the current target's value, otherwise it will stay the same
+
+
+ Changes the start and end value of a tween and rewinds it (without pausing it).
+ Has no effect with tweens that are inside Sequences
+ The new start value
+ The new end value
+ If bigger than 0 applies it as the new tween duration
+
+
+
+ Used internally
+
+
+
+
+ Update type
+
+
+
+ Updates every frame during Update calls
+
+
+ Updates every frame during LateUpdate calls
+
+
+ Updates using FixedUpdate calls
+
+
+ Updates using manual update calls
+
+
+
diff --git a/Assets/Plugins/Demigiant/DOTween/DOTween.XML.meta b/Assets/Plugins/Demigiant/DOTween/DOTween.XML.meta
new file mode 100644
index 0000000..7a866b5
--- /dev/null
+++ b/Assets/Plugins/Demigiant/DOTween/DOTween.XML.meta
@@ -0,0 +1,4 @@
+fileFormatVersion: 2
+guid: 34192c5e0d14aee43a0e86cc4823268a
+TextScriptImporter:
+ userData:
diff --git a/Assets/Plugins/Demigiant/DOTween/DOTween.dll b/Assets/Plugins/Demigiant/DOTween/DOTween.dll
new file mode 100644
index 0000000..57112d3
Binary files /dev/null and b/Assets/Plugins/Demigiant/DOTween/DOTween.dll differ
diff --git a/Assets/Plugins/Demigiant/DOTween/DOTween.dll.meta b/Assets/Plugins/Demigiant/DOTween/DOTween.dll.meta
new file mode 100644
index 0000000..482dbb8
--- /dev/null
+++ b/Assets/Plugins/Demigiant/DOTween/DOTween.dll.meta
@@ -0,0 +1,22 @@
+fileFormatVersion: 2
+guid: a811bde74b26b53498b4f6d872b09b6d
+PluginImporter:
+ serializedVersion: 1
+ iconMap: {}
+ executionOrder: {}
+ isPreloaded: 0
+ platformData:
+ Any:
+ enabled: 1
+ settings: {}
+ Editor:
+ enabled: 0
+ settings:
+ DefaultValueInitialized: true
+ WindowsStoreApps:
+ enabled: 0
+ settings:
+ CPU: AnyCPU
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Plugins/Demigiant/DOTween/Editor.meta b/Assets/Plugins/Demigiant/DOTween/Editor.meta
new file mode 100644
index 0000000..532edfb
--- /dev/null
+++ b/Assets/Plugins/Demigiant/DOTween/Editor.meta
@@ -0,0 +1,5 @@
+fileFormatVersion: 2
+guid: b27f58ae5d5c33a4bb2d1f4f34bd036d
+folderAsset: yes
+DefaultImporter:
+ userData:
diff --git a/Assets/Plugins/Demigiant/DOTween/Editor/DOTweenEditor.XML b/Assets/Plugins/Demigiant/DOTween/Editor/DOTweenEditor.XML
new file mode 100644
index 0000000..690bfc4
--- /dev/null
+++ b/Assets/Plugins/Demigiant/DOTween/Editor/DOTweenEditor.XML
@@ -0,0 +1,144 @@
+
+
+
+ DOTweenEditor
+
+
+
+
+ Contains compatibility methods taken from DemiEditor (for when DOTween is without it)
+
+
+
+
+ Warning: some versions of this method don't have the includeInactive parameter so it won't be taken into account
+
+
+
+
+ Warning: some versions of this method don't have the includeInactive parameter so it won't be taken into account
+
+
+
+
+ Warning: some versions of this method don't have the includeInactive parameter so it won't be taken into account
+
+
+
+
+ Warning: some versions of this method don't have the includeInactive parameter so it won't be taken into account
+
+
+
+
+ Starts the update loop of tween in the editor. Has no effect during playMode.
+
+ Eventual callback to call after every update
+
+
+
+ Stops the update loop and clears the onPreviewUpdated callback.
+
+ If TRUE also resets the tweened objects to their original state.
+ Note that this works by calling Rewind on all tweens, so it will work correctly
+ only if you have a single tween type per object and it wasn't killed
+ If TRUE also kills any cached tween
+
+
+
+ Readies the tween for editor preview by setting its UpdateType to Manual plus eventual extra settings.
+
+ The tween to ready
+ If TRUE (recommended) removes all callbacks (OnComplete/Rewind/etc)
+ If TRUE prevents the tween from being auto-killed at completion
+ If TRUE starts playing the tween immediately
+
+
+ Full major version + first minor version (ex: 2018.1f)
+
+
+ Major version
+
+
+ First minor version (ex: in 2018.1 it would be 1)
+
+
+
+ Checks that the given editor texture use the correct import settings,
+ and applies them if they're incorrect.
+
+
+
+
+ Returns TRUE if setup is required
+
+
+
+
+ Returns TRUE if the file/directory at the given path exists.
+
+ Path, relative to Unity's project folder
+
+
+
+
+ Converts the given project-relative path to a full path,
+ with backward (\) slashes).
+
+
+
+
+ Converts the given full path to a path usable with AssetDatabase methods
+ (relative to Unity's project folder, and with the correct Unity forward (/) slashes).
+
+
+
+
+ Connects to a asset.
+ If the asset already exists at the given path, loads it and returns it.
+ Otherwise, either returns NULL or automatically creates it before loading and returning it
+ (depending on the given parameters).
+
+ Asset type
+ File path (relative to Unity's project folder)
+ If TRUE and the requested asset doesn't exist, forces its creation
+
+
+
+ Full path for the given loaded assembly, assembly file included
+
+
+
+
+ Adds the given global define if it's not already present
+
+
+
+
+ Removes the given global define if it's present
+
+
+
+
+ Returns TRUE if the given global define is present in all the
+ or only in the given , depending on passed parameters.
+
+
+ to use. Leave NULL to check in all of them.
+
+
+
+ Not used as menu item anymore, but as a utility function
+
+
+
+ Full major version + first minor version (ex: 2018.1f)
+
+
+ Major version
+
+
+ First minor version (ex: in 2018.1 it would be 1)
+
+
+
diff --git a/Assets/Plugins/Demigiant/DOTween/Editor/DOTweenEditor.XML.meta b/Assets/Plugins/Demigiant/DOTween/Editor/DOTweenEditor.XML.meta
new file mode 100644
index 0000000..7cec113
--- /dev/null
+++ b/Assets/Plugins/Demigiant/DOTween/Editor/DOTweenEditor.XML.meta
@@ -0,0 +1,4 @@
+fileFormatVersion: 2
+guid: 2e2c6224d345d9249acfa6e8ef40bb2d
+TextScriptImporter:
+ userData:
diff --git a/Assets/Plugins/Demigiant/DOTween/Editor/DOTweenEditor.dll b/Assets/Plugins/Demigiant/DOTween/Editor/DOTweenEditor.dll
new file mode 100644
index 0000000..4911a86
Binary files /dev/null and b/Assets/Plugins/Demigiant/DOTween/Editor/DOTweenEditor.dll differ
diff --git a/Assets/Plugins/Demigiant/DOTween/Editor/DOTweenEditor.dll.meta b/Assets/Plugins/Demigiant/DOTween/Editor/DOTweenEditor.dll.meta
new file mode 100644
index 0000000..53590f3
--- /dev/null
+++ b/Assets/Plugins/Demigiant/DOTween/Editor/DOTweenEditor.dll.meta
@@ -0,0 +1,22 @@
+fileFormatVersion: 2
+guid: 45d5034162d6cf04dbe46da84fc7d074
+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:
diff --git a/Assets/Plugins/Demigiant/DOTween/Editor/DOTweenUpgradeManager.XML b/Assets/Plugins/Demigiant/DOTween/Editor/DOTweenUpgradeManager.XML
new file mode 100644
index 0000000..02c3c95
--- /dev/null
+++ b/Assets/Plugins/Demigiant/DOTween/Editor/DOTweenUpgradeManager.XML
@@ -0,0 +1,14 @@
+
+
+
+ DOTweenUpgradeManager
+
+
+
+
+ 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
+
+
+
+
diff --git a/Assets/Plugins/Demigiant/DOTween/Editor/DOTweenUpgradeManager.XML.meta b/Assets/Plugins/Demigiant/DOTween/Editor/DOTweenUpgradeManager.XML.meta
new file mode 100644
index 0000000..a7f43a3
--- /dev/null
+++ b/Assets/Plugins/Demigiant/DOTween/Editor/DOTweenUpgradeManager.XML.meta
@@ -0,0 +1,4 @@
+fileFormatVersion: 2
+guid: 3df9fdaadcb4c394e826a4d8d20bb952
+TextScriptImporter:
+ userData:
diff --git a/Assets/Plugins/Demigiant/DOTween/Editor/DOTweenUpgradeManager.dll b/Assets/Plugins/Demigiant/DOTween/Editor/DOTweenUpgradeManager.dll
new file mode 100644
index 0000000..ec5dd4c
Binary files /dev/null and b/Assets/Plugins/Demigiant/DOTween/Editor/DOTweenUpgradeManager.dll differ
diff --git a/Assets/Plugins/Demigiant/DOTween/Editor/DOTweenUpgradeManager.dll.meta b/Assets/Plugins/Demigiant/DOTween/Editor/DOTweenUpgradeManager.dll.meta
new file mode 100644
index 0000000..c6717e9
--- /dev/null
+++ b/Assets/Plugins/Demigiant/DOTween/Editor/DOTweenUpgradeManager.dll.meta
@@ -0,0 +1,22 @@
+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:
diff --git a/Assets/Plugins/Demigiant/DOTween/Editor/Imgs.meta b/Assets/Plugins/Demigiant/DOTween/Editor/Imgs.meta
new file mode 100644
index 0000000..a81ba5f
--- /dev/null
+++ b/Assets/Plugins/Demigiant/DOTween/Editor/Imgs.meta
@@ -0,0 +1,5 @@
+fileFormatVersion: 2
+guid: 0034ebae0c2a9344e897db1160d71b6d
+folderAsset: yes
+DefaultImporter:
+ userData:
diff --git a/Assets/Plugins/Demigiant/DOTween/Editor/Imgs/DOTweenIcon.png b/Assets/Plugins/Demigiant/DOTween/Editor/Imgs/DOTweenIcon.png
new file mode 100644
index 0000000..d06fc7c
Binary files /dev/null and b/Assets/Plugins/Demigiant/DOTween/Editor/Imgs/DOTweenIcon.png differ
diff --git a/Assets/Plugins/Demigiant/DOTween/Editor/Imgs/DOTweenIcon.png.meta b/Assets/Plugins/Demigiant/DOTween/Editor/Imgs/DOTweenIcon.png.meta
new file mode 100644
index 0000000..61c3cce
--- /dev/null
+++ b/Assets/Plugins/Demigiant/DOTween/Editor/Imgs/DOTweenIcon.png.meta
@@ -0,0 +1,47 @@
+fileFormatVersion: 2
+guid: 8da095e39e9b4df488dfd436f81116d6
+TextureImporter:
+ fileIDToRecycleName: {}
+ serializedVersion: 2
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 0
+ linearTexture: 1
+ correctGamma: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: .25
+ normalMapFilter: 0
+ isReadable: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 0
+ seamlessCubemap: 0
+ textureFormat: -3
+ maxTextureSize: 128
+ textureSettings:
+ filterMode: 1
+ aniso: 1
+ mipBias: -1
+ wrapMode: 1
+ nPOTScale: 0
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: .5, y: .5}
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spritePixelsToUnits: 100
+ alphaIsTransparency: 1
+ textureType: 2
+ buildTargetSettings: []
+ spriteSheet:
+ sprites: []
+ spritePackingTag:
+ userData:
diff --git a/Assets/Plugins/Demigiant/DOTween/Editor/Imgs/DOTweenMiniIcon.png b/Assets/Plugins/Demigiant/DOTween/Editor/Imgs/DOTweenMiniIcon.png
new file mode 100644
index 0000000..7cd74c1
Binary files /dev/null and b/Assets/Plugins/Demigiant/DOTween/Editor/Imgs/DOTweenMiniIcon.png differ
diff --git a/Assets/Plugins/Demigiant/DOTween/Editor/Imgs/DOTweenMiniIcon.png.meta b/Assets/Plugins/Demigiant/DOTween/Editor/Imgs/DOTweenMiniIcon.png.meta
new file mode 100644
index 0000000..c343a61
--- /dev/null
+++ b/Assets/Plugins/Demigiant/DOTween/Editor/Imgs/DOTweenMiniIcon.png.meta
@@ -0,0 +1,68 @@
+fileFormatVersion: 2
+guid: 61521df2e071645488ba3d05e49289ae
+timeCreated: 1602317874
+licenseType: Store
+TextureImporter:
+ fileIDToRecycleName: {}
+ serializedVersion: 4
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ isReadable: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ filterMode: -1
+ aniso: -1
+ mipBias: -1
+ wrapMode: -1
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spritePixelsToUnits: 100
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ platformSettings:
+ - buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ spritePackingTag:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Plugins/Demigiant/DOTween/Editor/Imgs/Footer.png b/Assets/Plugins/Demigiant/DOTween/Editor/Imgs/Footer.png
new file mode 100644
index 0000000..e29d02f
Binary files /dev/null and b/Assets/Plugins/Demigiant/DOTween/Editor/Imgs/Footer.png differ
diff --git a/Assets/Plugins/Demigiant/DOTween/Editor/Imgs/Footer.png.meta b/Assets/Plugins/Demigiant/DOTween/Editor/Imgs/Footer.png.meta
new file mode 100644
index 0000000..7ca1911
--- /dev/null
+++ b/Assets/Plugins/Demigiant/DOTween/Editor/Imgs/Footer.png.meta
@@ -0,0 +1,47 @@
+fileFormatVersion: 2
+guid: 7051dba417b3d53409f2918f1ea4938d
+TextureImporter:
+ fileIDToRecycleName: {}
+ serializedVersion: 2
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 0
+ linearTexture: 1
+ correctGamma: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: .25
+ normalMapFilter: 0
+ isReadable: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 0
+ seamlessCubemap: 0
+ textureFormat: -3
+ maxTextureSize: 256
+ textureSettings:
+ filterMode: 1
+ aniso: 1
+ mipBias: -1
+ wrapMode: 1
+ nPOTScale: 0
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: .5, y: .5}
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spritePixelsToUnits: 100
+ alphaIsTransparency: 1
+ textureType: 2
+ buildTargetSettings: []
+ spriteSheet:
+ sprites: []
+ spritePackingTag:
+ userData:
diff --git a/Assets/Plugins/Demigiant/DOTween/Editor/Imgs/Footer_dark.png b/Assets/Plugins/Demigiant/DOTween/Editor/Imgs/Footer_dark.png
new file mode 100644
index 0000000..e48db5e
Binary files /dev/null and b/Assets/Plugins/Demigiant/DOTween/Editor/Imgs/Footer_dark.png differ
diff --git a/Assets/Plugins/Demigiant/DOTween/Editor/Imgs/Footer_dark.png.meta b/Assets/Plugins/Demigiant/DOTween/Editor/Imgs/Footer_dark.png.meta
new file mode 100644
index 0000000..f12a1a7
--- /dev/null
+++ b/Assets/Plugins/Demigiant/DOTween/Editor/Imgs/Footer_dark.png.meta
@@ -0,0 +1,47 @@
+fileFormatVersion: 2
+guid: 519694efe2bb2914788b151fbd8c01f4
+TextureImporter:
+ fileIDToRecycleName: {}
+ serializedVersion: 2
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ linearTexture: 0
+ correctGamma: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: .25
+ normalMapFilter: 0
+ isReadable: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 0
+ seamlessCubemap: 0
+ textureFormat: -1
+ maxTextureSize: 1024
+ textureSettings:
+ filterMode: -1
+ aniso: -1
+ mipBias: -1
+ wrapMode: -1
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: .5, y: .5}
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spritePixelsToUnits: 100
+ alphaIsTransparency: 0
+ textureType: -1
+ buildTargetSettings: []
+ spriteSheet:
+ sprites: []
+ spritePackingTag:
+ userData:
diff --git a/Assets/Plugins/Demigiant/DOTween/Editor/Imgs/Header.jpg b/Assets/Plugins/Demigiant/DOTween/Editor/Imgs/Header.jpg
new file mode 100644
index 0000000..4d710d7
Binary files /dev/null and b/Assets/Plugins/Demigiant/DOTween/Editor/Imgs/Header.jpg differ
diff --git a/Assets/Plugins/Demigiant/DOTween/Editor/Imgs/Header.jpg.meta b/Assets/Plugins/Demigiant/DOTween/Editor/Imgs/Header.jpg.meta
new file mode 100644
index 0000000..26e4255
--- /dev/null
+++ b/Assets/Plugins/Demigiant/DOTween/Editor/Imgs/Header.jpg.meta
@@ -0,0 +1,47 @@
+fileFormatVersion: 2
+guid: 78a59ca99f8987941adb61f9e14a06a7
+TextureImporter:
+ fileIDToRecycleName: {}
+ serializedVersion: 2
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 0
+ linearTexture: 1
+ correctGamma: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: .25
+ normalMapFilter: 0
+ isReadable: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 0
+ seamlessCubemap: 0
+ textureFormat: -3
+ maxTextureSize: 512
+ textureSettings:
+ filterMode: 1
+ aniso: 1
+ mipBias: -1
+ wrapMode: 1
+ nPOTScale: 0
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: .5, y: .5}
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spritePixelsToUnits: 100
+ alphaIsTransparency: 1
+ textureType: 2
+ buildTargetSettings: []
+ spriteSheet:
+ sprites: []
+ spritePackingTag:
+ userData:
diff --git a/Assets/Plugins/Demigiant/DOTween/Modules.meta b/Assets/Plugins/Demigiant/DOTween/Modules.meta
new file mode 100644
index 0000000..24cd2ac
--- /dev/null
+++ b/Assets/Plugins/Demigiant/DOTween/Modules.meta
@@ -0,0 +1,5 @@
+fileFormatVersion: 2
+guid: 143604b8bad857d47a6f7cc7a533e2dc
+folderAsset: yes
+DefaultImporter:
+ userData:
diff --git a/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleAudio.cs b/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleAudio.cs
new file mode 100644
index 0000000..d958ae0
--- /dev/null
+++ b/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleAudio.cs
@@ -0,0 +1,198 @@
+// Author: Daniele Giardini - http://www.demigiant.com
+// Created: 2018/07/13
+
+#if true // MODULE_MARKER
+using System;
+using DG.Tweening.Core;
+using DG.Tweening.Plugins.Options;
+using UnityEngine;
+using UnityEngine.Audio; // Required for AudioMixer
+
+#pragma warning disable 1591
+namespace DG.Tweening
+{
+ public static class DOTweenModuleAudio
+ {
+ #region Shortcuts
+
+ #region Audio
+
+ /// Tweens an AudioSource's volume to the given value.
+ /// Also stores the AudioSource as the tween's target so it can be used for filtered operations
+ /// The end value to reach (0 to 1)The duration of the tween
+ public static TweenerCore DOFade(this AudioSource target, float endValue, float duration)
+ {
+ if (endValue < 0) endValue = 0;
+ else if (endValue > 1) endValue = 1;
+ TweenerCore t = DOTween.To(() => target.volume, x => target.volume = x, endValue, duration);
+ t.SetTarget(target);
+ return t;
+ }
+
+ /// Tweens an AudioSource's pitch to the given value.
+ /// Also stores the AudioSource as the tween's target so it can be used for filtered operations
+ /// The end value to reachThe duration of the tween
+ public static TweenerCore DOPitch(this AudioSource target, float endValue, float duration)
+ {
+ TweenerCore t = DOTween.To(() => target.pitch, x => target.pitch = x, endValue, duration);
+ t.SetTarget(target);
+ return t;
+ }
+
+ #endregion
+
+ #region AudioMixer
+
+ /// Tweens an AudioMixer's exposed float to the given value.
+ /// Also stores the AudioMixer as the tween's target so it can be used for filtered operations.
+ /// Note that you need to manually expose a float in an AudioMixerGroup in order to be able to tween it from an AudioMixer.
+ /// Name given to the exposed float to set
+ /// The end value to reachThe duration of the tween
+ public static TweenerCore DOSetFloat(this AudioMixer target, string floatName, float endValue, float duration)
+ {
+ TweenerCore t = DOTween.To(()=> {
+ float currVal;
+ target.GetFloat(floatName, out currVal);
+ return currVal;
+ }, x=> target.SetFloat(floatName, x), endValue, duration);
+ t.SetTarget(target);
+ return t;
+ }
+
+ #region Operation Shortcuts
+
+ ///
+ /// Completes all tweens that have this target as a reference
+ /// (meaning tweens that were started from this target, or that had this target added as an Id)
+ /// and returns the total number of tweens completed
+ /// (meaning the tweens that don't have infinite loops and were not already complete)
+ ///
+ /// For Sequences only: if TRUE also internal Sequence callbacks will be fired,
+ /// otherwise they will be ignored
+ public static int DOComplete(this AudioMixer target, bool withCallbacks = false)
+ {
+ return DOTween.Complete(target, withCallbacks);
+ }
+
+ ///
+ /// Kills all tweens that have this target as a reference
+ /// (meaning tweens that were started from this target, or that had this target added as an Id)
+ /// and returns the total number of tweens killed.
+ ///
+ /// If TRUE completes the tween before killing it
+ public static int DOKill(this AudioMixer target, bool complete = false)
+ {
+ return DOTween.Kill(target, complete);
+ }
+
+ ///
+ /// Flips the direction (backwards if it was going forward or viceversa) of all tweens that have this target as a reference
+ /// (meaning tweens that were started from this target, or that had this target added as an Id)
+ /// and returns the total number of tweens flipped.
+ ///
+ public static int DOFlip(this AudioMixer target)
+ {
+ return DOTween.Flip(target);
+ }
+
+ ///
+ /// Sends to the given position all tweens that have this target as a reference
+ /// (meaning tweens that were started from this target, or that had this target added as an Id)
+ /// and returns the total number of tweens involved.
+ ///
+ /// Time position to reach
+ /// (if higher than the whole tween duration the tween will simply reach its end)
+ /// If TRUE will play the tween after reaching the given position, otherwise it will pause it
+ public static int DOGoto(this AudioMixer target, float to, bool andPlay = false)
+ {
+ return DOTween.Goto(target, to, andPlay);
+ }
+
+ ///
+ /// Pauses all tweens that have this target as a reference
+ /// (meaning tweens that were started from this target, or that had this target added as an Id)
+ /// and returns the total number of tweens paused.
+ ///
+ public static int DOPause(this AudioMixer target)
+ {
+ return DOTween.Pause(target);
+ }
+
+ ///
+ /// Plays all tweens that have this target as a reference
+ /// (meaning tweens that were started from this target, or that had this target added as an Id)
+ /// and returns the total number of tweens played.
+ ///
+ public static int DOPlay(this AudioMixer target)
+ {
+ return DOTween.Play(target);
+ }
+
+ ///
+ /// Plays backwards all tweens that have this target as a reference
+ /// (meaning tweens that were started from this target, or that had this target added as an Id)
+ /// and returns the total number of tweens played.
+ ///
+ public static int DOPlayBackwards(this AudioMixer target)
+ {
+ return DOTween.PlayBackwards(target);
+ }
+
+ ///
+ /// Plays forward all tweens that have this target as a reference
+ /// (meaning tweens that were started from this target, or that had this target added as an Id)
+ /// and returns the total number of tweens played.
+ ///
+ public static int DOPlayForward(this AudioMixer target)
+ {
+ return DOTween.PlayForward(target);
+ }
+
+ ///
+ /// Restarts all tweens that have this target as a reference
+ /// (meaning tweens that were started from this target, or that had this target added as an Id)
+ /// and returns the total number of tweens restarted.
+ ///
+ public static int DORestart(this AudioMixer target)
+ {
+ return DOTween.Restart(target);
+ }
+
+ ///
+ /// Rewinds all tweens that have this target as a reference
+ /// (meaning tweens that were started from this target, or that had this target added as an Id)
+ /// and returns the total number of tweens rewinded.
+ ///
+ public static int DORewind(this AudioMixer target)
+ {
+ return DOTween.Rewind(target);
+ }
+
+ ///
+ /// Smoothly rewinds all tweens that have this target as a reference
+ /// (meaning tweens that were started from this target, or that had this target added as an Id)
+ /// and returns the total number of tweens rewinded.
+ ///
+ public static int DOSmoothRewind(this AudioMixer target)
+ {
+ return DOTween.SmoothRewind(target);
+ }
+
+ ///
+ /// Toggles the paused state (plays if it was paused, pauses if it was playing) of all tweens that have this target as a reference
+ /// (meaning tweens that were started from this target, or that had this target added as an Id)
+ /// and returns the total number of tweens involved.
+ ///
+ public static int DOTogglePause(this AudioMixer target)
+ {
+ return DOTween.TogglePause(target);
+ }
+
+ #endregion
+
+ #endregion
+
+ #endregion
+ }
+}
+#endif
diff --git a/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleAudio.cs.meta b/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleAudio.cs.meta
new file mode 100644
index 0000000..50aa010
--- /dev/null
+++ b/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleAudio.cs.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: b766d08851589514b97afb23c6f30a70
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
diff --git a/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleEPOOutline.cs b/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleEPOOutline.cs
new file mode 100644
index 0000000..2ab3775
--- /dev/null
+++ b/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleEPOOutline.cs
@@ -0,0 +1,146 @@
+using UnityEngine;
+
+#if false || EPO_DOTWEEN // MODULE_MARKER
+
+using EPOOutline;
+using DG.Tweening.Plugins.Options;
+using DG.Tweening;
+using DG.Tweening.Core;
+
+namespace DG.Tweening
+{
+ public static class DOTweenModuleEPOOutline
+ {
+ public static int DOKill(this SerializedPass target, bool complete)
+ {
+ return DOTween.Kill(target, complete);
+ }
+
+ public static TweenerCore DOFloat(this SerializedPass target, string propertyName, float endValue, float duration)
+ {
+ var tweener = DOTween.To(() => target.GetFloat(propertyName), x => target.SetFloat(propertyName, x), endValue, duration);
+ tweener.SetOptions(true).SetTarget(target);
+ return tweener;
+ }
+
+ public static TweenerCore DOFade(this SerializedPass target, string propertyName, float endValue, float duration)
+ {
+ var tweener = DOTween.ToAlpha(() => target.GetColor(propertyName), x => target.SetColor(propertyName, x), endValue, duration);
+ tweener.SetOptions(true).SetTarget(target);
+ return tweener;
+ }
+
+ public static TweenerCore DOColor(this SerializedPass target, string propertyName, Color endValue, float duration)
+ {
+ var tweener = DOTween.To(() => target.GetColor(propertyName), x => target.SetColor(propertyName, x), endValue, duration);
+ tweener.SetOptions(false).SetTarget(target);
+ return tweener;
+ }
+
+ public static TweenerCore DOVector(this SerializedPass target, string propertyName, Vector4 endValue, float duration)
+ {
+ var tweener = DOTween.To(() => target.GetVector(propertyName), x => target.SetVector(propertyName, x), endValue, duration);
+ tweener.SetOptions(false).SetTarget(target);
+ return tweener;
+ }
+
+ public static TweenerCore DOFloat(this SerializedPass target, int propertyId, float endValue, float duration)
+ {
+ var tweener = DOTween.To(() => target.GetFloat(propertyId), x => target.SetFloat(propertyId, x), endValue, duration);
+ tweener.SetOptions(true).SetTarget(target);
+ return tweener;
+ }
+
+ public static TweenerCore DOFade(this SerializedPass target, int propertyId, float endValue, float duration)
+ {
+ var tweener = DOTween.ToAlpha(() => target.GetColor(propertyId), x => target.SetColor(propertyId, x), endValue, duration);
+ tweener.SetOptions(true).SetTarget(target);
+ return tweener;
+ }
+
+ public static TweenerCore DOColor(this SerializedPass target, int propertyId, Color endValue, float duration)
+ {
+ var tweener = DOTween.To(() => target.GetColor(propertyId), x => target.SetColor(propertyId, x), endValue, duration);
+ tweener.SetOptions(false).SetTarget(target);
+ return tweener;
+ }
+
+ public static TweenerCore DOVector(this SerializedPass target, int propertyId, Vector4 endValue, float duration)
+ {
+ var tweener = DOTween.To(() => target.GetVector(propertyId), x => target.SetVector(propertyId, x), endValue, duration);
+ tweener.SetOptions(false).SetTarget(target);
+ return tweener;
+ }
+
+ public static int DOKill(this Outlinable.OutlineProperties target, bool complete = false)
+ {
+ return DOTween.Kill(target, complete);
+ }
+
+ public static int DOKill(this Outliner target, bool complete = false)
+ {
+ return DOTween.Kill(target, complete);
+ }
+
+ ///
+ /// Controls the alpha (transparency) of the outline
+ ///
+ public static TweenerCore DOFade(this Outlinable.OutlineProperties target, float endValue, float duration)
+ {
+ var tweener = DOTween.ToAlpha(() => target.Color, x => target.Color = x, endValue, duration);
+ tweener.SetOptions(true).SetTarget(target);
+ return tweener;
+ }
+
+ ///
+ /// Controls the color of the outline
+ ///
+ public static TweenerCore DOColor(this Outlinable.OutlineProperties target, Color endValue, float duration)
+ {
+ var tweener = DOTween.To(() => target.Color, x => target.Color = x, endValue, duration);
+ tweener.SetOptions(false).SetTarget(target);
+ return tweener;
+ }
+
+ ///
+ /// Controls the amount of blur applied to the outline
+ ///
+ public static TweenerCore DOBlurShift(this Outlinable.OutlineProperties target, float endValue, float duration, bool snapping = false)
+ {
+ var tweener = DOTween.To(() => target.BlurShift, x => target.BlurShift = x, endValue, duration);
+ tweener.SetOptions(snapping).SetTarget(target);
+ return tweener;
+ }
+
+ ///
+ /// Controls the amount of blur applied to the outline
+ ///
+ public static TweenerCore DOBlurShift(this Outliner target, float endValue, float duration, bool snapping = false)
+ {
+ var tweener = DOTween.To(() => target.BlurShift, x => target.BlurShift = x, endValue, duration);
+ tweener.SetOptions(snapping).SetTarget(target);
+ return tweener;
+ }
+
+ ///
+ /// Controls the amount of dilation applied to the outline
+ ///
+ public static TweenerCore DODilateShift(this Outlinable.OutlineProperties target, float endValue, float duration, bool snapping = false)
+ {
+ var tweener = DOTween.To(() => target.DilateShift, x => target.DilateShift = x, endValue, duration);
+ tweener.SetOptions(snapping).SetTarget(target);
+ return tweener;
+ }
+
+ ///
+ /// Controls the amount of dilation applied to the outline
+ ///
+ public static TweenerCore DODilateShift(this Outliner target, float endValue, float duration, bool snapping = false)
+ {
+ var tweener = DOTween.To(() => target.DilateShift, x => target.DilateShift = x, endValue, duration);
+ tweener.SetOptions(snapping).SetTarget(target);
+ return tweener;
+ }
+ }
+}
+#endif
diff --git a/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleEPOOutline.cs.meta b/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleEPOOutline.cs.meta
new file mode 100644
index 0000000..4b8991f
--- /dev/null
+++ b/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleEPOOutline.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: e944529dcaee98f4e9498d80e541d93e
+timeCreated: 1602593330
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModulePhysics.cs b/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModulePhysics.cs
new file mode 100644
index 0000000..08b0700
--- /dev/null
+++ b/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModulePhysics.cs
@@ -0,0 +1,216 @@
+// Author: Daniele Giardini - http://www.demigiant.com
+// Created: 2018/07/13
+
+#if true // MODULE_MARKER
+using System;
+using DG.Tweening.Core;
+using DG.Tweening.Core.Enums;
+using DG.Tweening.Plugins;
+using DG.Tweening.Plugins.Core.PathCore;
+using DG.Tweening.Plugins.Options;
+using UnityEngine;
+
+#pragma warning disable 1591
+namespace DG.Tweening
+{
+ public static class DOTweenModulePhysics
+ {
+ #region Shortcuts
+
+ #region Rigidbody
+
+ /// Tweens a Rigidbody's position to the given value.
+ /// Also stores the rigidbody as the tween's target so it can be used for filtered operations
+ /// The end value to reachThe duration of the tween
+ /// If TRUE the tween will smoothly snap all values to integers
+ public static TweenerCore DOMove(this Rigidbody target, Vector3 endValue, float duration, bool snapping = false)
+ {
+ TweenerCore t = DOTween.To(() => target.position, target.MovePosition, endValue, duration);
+ t.SetOptions(snapping).SetTarget(target);
+ return t;
+ }
+
+ /// Tweens a Rigidbody's X position to the given value.
+ /// Also stores the rigidbody as the tween's target so it can be used for filtered operations
+ /// The end value to reachThe duration of the tween
+ /// If TRUE the tween will smoothly snap all values to integers
+ public static TweenerCore DOMoveX(this Rigidbody target, float endValue, float duration, bool snapping = false)
+ {
+ TweenerCore t = DOTween.To(() => target.position, target.MovePosition, new Vector3(endValue, 0, 0), duration);
+ t.SetOptions(AxisConstraint.X, snapping).SetTarget(target);
+ return t;
+ }
+
+ /// Tweens a Rigidbody's Y position to the given value.
+ /// Also stores the rigidbody as the tween's target so it can be used for filtered operations
+ /// The end value to reachThe duration of the tween
+ /// If TRUE the tween will smoothly snap all values to integers
+ public static TweenerCore DOMoveY(this Rigidbody target, float endValue, float duration, bool snapping = false)
+ {
+ TweenerCore t = DOTween.To(() => target.position, target.MovePosition, new Vector3(0, endValue, 0), duration);
+ t.SetOptions(AxisConstraint.Y, snapping).SetTarget(target);
+ return t;
+ }
+
+ /// Tweens a Rigidbody's Z position to the given value.
+ /// Also stores the rigidbody as the tween's target so it can be used for filtered operations
+ /// The end value to reachThe duration of the tween
+ /// If TRUE the tween will smoothly snap all values to integers
+ public static TweenerCore DOMoveZ(this Rigidbody target, float endValue, float duration, bool snapping = false)
+ {
+ TweenerCore t = DOTween.To(() => target.position, target.MovePosition, new Vector3(0, 0, endValue), duration);
+ t.SetOptions(AxisConstraint.Z, snapping).SetTarget(target);
+ return t;
+ }
+
+ /// Tweens a Rigidbody's rotation to the given value.
+ /// Also stores the rigidbody as the tween's target so it can be used for filtered operations
+ /// The end value to reachThe duration of the tween
+ /// Rotation mode
+ public static TweenerCore DORotate(this Rigidbody target, Vector3 endValue, float duration, RotateMode mode = RotateMode.Fast)
+ {
+ TweenerCore t = DOTween.To(() => target.rotation, target.MoveRotation, endValue, duration);
+ t.SetTarget(target);
+ t.plugOptions.rotateMode = mode;
+ return t;
+ }
+
+ /// Tweens a Rigidbody's rotation so that it will look towards the given position.
+ /// Also stores the rigidbody as the tween's target so it can be used for filtered operations
+ /// The position to look atThe duration of the tween
+ /// Eventual axis constraint for the rotation
+ /// The vector that defines in which direction up is (default: Vector3.up)
+ public static TweenerCore DOLookAt(this Rigidbody target, Vector3 towards, float duration, AxisConstraint axisConstraint = AxisConstraint.None, Vector3? up = null)
+ {
+ TweenerCore t = DOTween.To(() => target.rotation, target.MoveRotation, towards, duration)
+ .SetTarget(target).SetSpecialStartupMode(SpecialStartupMode.SetLookAt);
+ t.plugOptions.axisConstraint = axisConstraint;
+ t.plugOptions.up = (up == null) ? Vector3.up : (Vector3)up;
+ return t;
+ }
+
+ #region Special
+
+ /// Tweens a Rigidbody's position to the given value, while also applying a jump effect along the Y axis.
+ /// Returns a Sequence instead of a Tweener.
+ /// Also stores the Rigidbody as the tween's target so it can be used for filtered operations
+ /// The end value to reach
+ /// Power of the jump (the max height of the jump is represented by this plus the final Y offset)
+ /// Total number of jumps
+ /// The duration of the tween
+ /// If TRUE the tween will smoothly snap all values to integers
+ public static Sequence DOJump(this Rigidbody target, Vector3 endValue, float jumpPower, int numJumps, float duration, bool snapping = false)
+ {
+ if (numJumps < 1) numJumps = 1;
+ float startPosY = 0;
+ float offsetY = -1;
+ bool offsetYSet = false;
+ Sequence s = DOTween.Sequence();
+ Tween yTween = DOTween.To(() => target.position, target.MovePosition, new Vector3(0, jumpPower, 0), duration / (numJumps * 2))
+ .SetOptions(AxisConstraint.Y, snapping).SetEase(Ease.OutQuad).SetRelative()
+ .SetLoops(numJumps * 2, LoopType.Yoyo)
+ .OnStart(() => startPosY = target.position.y);
+ s.Append(DOTween.To(() => target.position, target.MovePosition, new Vector3(endValue.x, 0, 0), duration)
+ .SetOptions(AxisConstraint.X, snapping).SetEase(Ease.Linear)
+ ).Join(DOTween.To(() => target.position, target.MovePosition, new Vector3(0, 0, endValue.z), duration)
+ .SetOptions(AxisConstraint.Z, snapping).SetEase(Ease.Linear)
+ ).Join(yTween)
+ .SetTarget(target).SetEase(DOTween.defaultEaseType);
+ yTween.OnUpdate(() => {
+ if (!offsetYSet) {
+ offsetYSet = true;
+ offsetY = s.isRelative ? endValue.y : endValue.y - startPosY;
+ }
+ Vector3 pos = target.position;
+ pos.y += DOVirtual.EasedValue(0, offsetY, yTween.ElapsedPercentage(), Ease.OutQuad);
+ target.MovePosition(pos);
+ });
+ return s;
+ }
+
+ /// Tweens a Rigidbody's position through the given path waypoints, using the chosen path algorithm.
+ /// Also stores the Rigidbody as the tween's target so it can be used for filtered operations.
+ /// NOTE: to tween a rigidbody correctly it should be set to kinematic at least while being tweened.
+ /// BEWARE: doesn't work on Windows Phone store (waiting for Unity to fix their own bug).
+ /// If you plan to publish there you should use a regular transform.DOPath.
+ /// The waypoints to go through
+ /// The duration of the tween
+ /// The type of path: Linear (straight path), CatmullRom (curved CatmullRom path) or CubicBezier (curved with control points)
+ /// The path mode: 3D, side-scroller 2D, top-down 2D
+ /// The resolution of the path (useless in case of Linear paths): higher resolutions make for more detailed curved paths but are more expensive.
+ /// Defaults to 10, but a value of 5 is usually enough if you don't have dramatic long curves between waypoints
+ /// The color of the path (shown when gizmos are active in the Play panel and the tween is running)
+ public static TweenerCore DOPath(
+ this Rigidbody target, Vector3[] path, float duration, PathType pathType = PathType.Linear,
+ PathMode pathMode = PathMode.Full3D, int resolution = 10, Color? gizmoColor = null
+ )
+ {
+ if (resolution < 1) resolution = 1;
+ TweenerCore t = DOTween.To(PathPlugin.Get(), () => target.position, target.MovePosition, new Path(pathType, path, resolution, gizmoColor), duration)
+ .SetTarget(target).SetUpdate(UpdateType.Fixed);
+
+ t.plugOptions.isRigidbody = true;
+ t.plugOptions.mode = pathMode;
+ return t;
+ }
+ /// Tweens a Rigidbody's localPosition through the given path waypoints, using the chosen path algorithm.
+ /// Also stores the Rigidbody as the tween's target so it can be used for filtered operations
+ /// NOTE: to tween a rigidbody correctly it should be set to kinematic at least while being tweened.
+ /// BEWARE: doesn't work on Windows Phone store (waiting for Unity to fix their own bug).
+ /// If you plan to publish there you should use a regular transform.DOLocalPath.
+ /// The waypoint to go through
+ /// The duration of the tween
+ /// The type of path: Linear (straight path), CatmullRom (curved CatmullRom path) or CubicBezier (curved with control points)
+ /// The path mode: 3D, side-scroller 2D, top-down 2D
+ /// The resolution of the path: higher resolutions make for more detailed curved paths but are more expensive.
+ /// Defaults to 10, but a value of 5 is usually enough if you don't have dramatic long curves between waypoints
+ /// The color of the path (shown when gizmos are active in the Play panel and the tween is running)
+ public static TweenerCore DOLocalPath(
+ this Rigidbody target, Vector3[] path, float duration, PathType pathType = PathType.Linear,
+ PathMode pathMode = PathMode.Full3D, int resolution = 10, Color? gizmoColor = null
+ )
+ {
+ if (resolution < 1) resolution = 1;
+ Transform trans = target.transform;
+ TweenerCore t = DOTween.To(PathPlugin.Get(), () => trans.localPosition, x => target.MovePosition(trans.parent == null ? x : trans.parent.TransformPoint(x)), new Path(pathType, path, resolution, gizmoColor), duration)
+ .SetTarget(target).SetUpdate(UpdateType.Fixed);
+
+ t.plugOptions.isRigidbody = true;
+ t.plugOptions.mode = pathMode;
+ t.plugOptions.useLocalPosition = true;
+ return t;
+ }
+ // Used by path editor when creating the actual tween, so it can pass a pre-compiled path
+ internal static TweenerCore DOPath(
+ this Rigidbody target, Path path, float duration, PathMode pathMode = PathMode.Full3D
+ )
+ {
+ TweenerCore t = DOTween.To(PathPlugin.Get(), () => target.position, target.MovePosition, path, duration)
+ .SetTarget(target);
+
+ t.plugOptions.isRigidbody = true;
+ t.plugOptions.mode = pathMode;
+ return t;
+ }
+ internal static TweenerCore DOLocalPath(
+ this Rigidbody target, Path path, float duration, PathMode pathMode = PathMode.Full3D
+ )
+ {
+ Transform trans = target.transform;
+ TweenerCore t = DOTween.To(PathPlugin.Get(), () => trans.localPosition, x => target.MovePosition(trans.parent == null ? x : trans.parent.TransformPoint(x)), path, duration)
+ .SetTarget(target);
+
+ t.plugOptions.isRigidbody = true;
+ t.plugOptions.mode = pathMode;
+ t.plugOptions.useLocalPosition = true;
+ return t;
+ }
+
+ #endregion
+
+ #endregion
+
+ #endregion
+ }
+}
+#endif
diff --git a/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModulePhysics.cs.meta b/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModulePhysics.cs.meta
new file mode 100644
index 0000000..0ce0d75
--- /dev/null
+++ b/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModulePhysics.cs.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: dae9aa560b4242648a3affa2bfabc365
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
diff --git a/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModulePhysics2D.cs b/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModulePhysics2D.cs
new file mode 100644
index 0000000..8ce2b56
--- /dev/null
+++ b/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModulePhysics2D.cs
@@ -0,0 +1,193 @@
+// Author: Daniele Giardini - http://www.demigiant.com
+// Created: 2018/07/13
+
+#if true // MODULE_MARKER
+using System;
+using DG.Tweening.Core;
+using DG.Tweening.Plugins;
+using DG.Tweening.Plugins.Core.PathCore;
+using DG.Tweening.Plugins.Options;
+using UnityEngine;
+
+#pragma warning disable 1591
+namespace DG.Tweening
+{
+ public static class DOTweenModulePhysics2D
+ {
+ #region Shortcuts
+
+ #region Rigidbody2D Shortcuts
+
+ /// Tweens a Rigidbody2D's position to the given value.
+ /// Also stores the Rigidbody2D as the tween's target so it can be used for filtered operations
+ /// The end value to reachThe duration of the tween
+ /// If TRUE the tween will smoothly snap all values to integers
+ public static TweenerCore DOMove(this Rigidbody2D target, Vector2 endValue, float duration, bool snapping = false)
+ {
+ TweenerCore t = DOTween.To(() => target.position, target.MovePosition, endValue, duration);
+ t.SetOptions(snapping).SetTarget(target);
+ return t;
+ }
+
+ /// Tweens a Rigidbody2D's X position to the given value.
+ /// Also stores the Rigidbody2D as the tween's target so it can be used for filtered operations
+ /// The end value to reachThe duration of the tween
+ /// If TRUE the tween will smoothly snap all values to integers
+ public static TweenerCore DOMoveX(this Rigidbody2D target, float endValue, float duration, bool snapping = false)
+ {
+ TweenerCore t = DOTween.To(() => target.position, target.MovePosition, new Vector2(endValue, 0), duration);
+ t.SetOptions(AxisConstraint.X, snapping).SetTarget(target);
+ return t;
+ }
+
+ /// Tweens a Rigidbody2D's Y position to the given value.
+ /// Also stores the Rigidbody2D as the tween's target so it can be used for filtered operations
+ /// The end value to reachThe duration of the tween
+ /// If TRUE the tween will smoothly snap all values to integers
+ public static TweenerCore DOMoveY(this Rigidbody2D target, float endValue, float duration, bool snapping = false)
+ {
+ TweenerCore t = DOTween.To(() => target.position, target.MovePosition, new Vector2(0, endValue), duration);
+ t.SetOptions(AxisConstraint.Y, snapping).SetTarget(target);
+ return t;
+ }
+
+ /// Tweens a Rigidbody2D's rotation to the given value.
+ /// Also stores the Rigidbody2D as the tween's target so it can be used for filtered operations
+ /// The end value to reachThe duration of the tween
+ public static TweenerCore DORotate(this Rigidbody2D target, float endValue, float duration)
+ {
+ TweenerCore t = DOTween.To(() => target.rotation, target.MoveRotation, endValue, duration);
+ t.SetTarget(target);
+ return t;
+ }
+
+ #region Special
+
+ /// Tweens a Rigidbody2D's position to the given value, while also applying a jump effect along the Y axis.
+ /// Returns a Sequence instead of a Tweener.
+ /// Also stores the Rigidbody2D as the tween's target so it can be used for filtered operations.
+ /// IMPORTANT: a rigidbody2D can't be animated in a jump arc using MovePosition, so the tween will directly set the position
+ /// The end value to reach
+ /// Power of the jump (the max height of the jump is represented by this plus the final Y offset)
+ /// Total number of jumps
+ /// The duration of the tween
+ /// If TRUE the tween will smoothly snap all values to integers
+ public static Sequence DOJump(this Rigidbody2D target, Vector2 endValue, float jumpPower, int numJumps, float duration, bool snapping = false)
+ {
+ if (numJumps < 1) numJumps = 1;
+ float startPosY = 0;
+ float offsetY = -1;
+ bool offsetYSet = false;
+ Sequence s = DOTween.Sequence();
+ Tween yTween = DOTween.To(() => target.position, x => target.position = x, new Vector2(0, jumpPower), duration / (numJumps * 2))
+ .SetOptions(AxisConstraint.Y, snapping).SetEase(Ease.OutQuad).SetRelative()
+ .SetLoops(numJumps * 2, LoopType.Yoyo)
+ .OnStart(() => startPosY = target.position.y);
+ s.Append(DOTween.To(() => target.position, x => target.position = x, new Vector2(endValue.x, 0), duration)
+ .SetOptions(AxisConstraint.X, snapping).SetEase(Ease.Linear)
+ ).Join(yTween)
+ .SetTarget(target).SetEase(DOTween.defaultEaseType);
+ yTween.OnUpdate(() => {
+ if (!offsetYSet) {
+ offsetYSet = true;
+ offsetY = s.isRelative ? endValue.y : endValue.y - startPosY;
+ }
+ Vector3 pos = target.position;
+ pos.y += DOVirtual.EasedValue(0, offsetY, yTween.ElapsedPercentage(), Ease.OutQuad);
+ target.MovePosition(pos);
+ });
+ return s;
+ }
+
+ /// Tweens a Rigidbody2D's position through the given path waypoints, using the chosen path algorithm.
+ /// Also stores the Rigidbody2D as the tween's target so it can be used for filtered operations.
+ /// NOTE: to tween a Rigidbody2D correctly it should be set to kinematic at least while being tweened.
+ /// BEWARE: doesn't work on Windows Phone store (waiting for Unity to fix their own bug).
+ /// If you plan to publish there you should use a regular transform.DOPath.
+ /// The waypoints to go through
+ /// The duration of the tween
+ /// The type of path: Linear (straight path), CatmullRom (curved CatmullRom path) or CubicBezier (curved with control points)
+ /// The path mode: 3D, side-scroller 2D, top-down 2D
+ /// The resolution of the path (useless in case of Linear paths): higher resolutions make for more detailed curved paths but are more expensive.
+ /// Defaults to 10, but a value of 5 is usually enough if you don't have dramatic long curves between waypoints
+ /// The color of the path (shown when gizmos are active in the Play panel and the tween is running)
+ public static TweenerCore DOPath(
+ this Rigidbody2D target, Vector2[] path, float duration, PathType pathType = PathType.Linear,
+ PathMode pathMode = PathMode.Full3D, int resolution = 10, Color? gizmoColor = null
+ )
+ {
+ if (resolution < 1) resolution = 1;
+ int len = path.Length;
+ Vector3[] path3D = new Vector3[len];
+ for (int i = 0; i < len; ++i) path3D[i] = path[i];
+ TweenerCore t = DOTween.To(PathPlugin.Get(), () => target.position, x => target.MovePosition(x), new Path(pathType, path3D, resolution, gizmoColor), duration)
+ .SetTarget(target).SetUpdate(UpdateType.Fixed);
+
+ t.plugOptions.isRigidbody2D = true;
+ t.plugOptions.mode = pathMode;
+ return t;
+ }
+ /// Tweens a Rigidbody2D's localPosition through the given path waypoints, using the chosen path algorithm.
+ /// Also stores the Rigidbody2D as the tween's target so it can be used for filtered operations
+ /// NOTE: to tween a Rigidbody2D correctly it should be set to kinematic at least while being tweened.
+ /// BEWARE: doesn't work on Windows Phone store (waiting for Unity to fix their own bug).
+ /// If you plan to publish there you should use a regular transform.DOLocalPath.
+ /// The waypoint to go through
+ /// The duration of the tween
+ /// The type of path: Linear (straight path), CatmullRom (curved CatmullRom path) or CubicBezier (curved with control points)
+ /// The path mode: 3D, side-scroller 2D, top-down 2D
+ /// The resolution of the path: higher resolutions make for more detailed curved paths but are more expensive.
+ /// Defaults to 10, but a value of 5 is usually enough if you don't have dramatic long curves between waypoints
+ /// The color of the path (shown when gizmos are active in the Play panel and the tween is running)
+ public static TweenerCore DOLocalPath(
+ this Rigidbody2D target, Vector2[] path, float duration, PathType pathType = PathType.Linear,
+ PathMode pathMode = PathMode.Full3D, int resolution = 10, Color? gizmoColor = null
+ )
+ {
+ if (resolution < 1) resolution = 1;
+ int len = path.Length;
+ Vector3[] path3D = new Vector3[len];
+ for (int i = 0; i < len; ++i) path3D[i] = path[i];
+ Transform trans = target.transform;
+ TweenerCore t = DOTween.To(PathPlugin.Get(), () => trans.localPosition, x => target.MovePosition(trans.parent == null ? x : trans.parent.TransformPoint(x)), new Path(pathType, path3D, resolution, gizmoColor), duration)
+ .SetTarget(target).SetUpdate(UpdateType.Fixed);
+
+ t.plugOptions.isRigidbody2D = true;
+ t.plugOptions.mode = pathMode;
+ t.plugOptions.useLocalPosition = true;
+ return t;
+ }
+ // Used by path editor when creating the actual tween, so it can pass a pre-compiled path
+ internal static TweenerCore DOPath(
+ this Rigidbody2D target, Path path, float duration, PathMode pathMode = PathMode.Full3D
+ )
+ {
+ TweenerCore t = DOTween.To(PathPlugin.Get(), () => target.position, x => target.MovePosition(x), path, duration)
+ .SetTarget(target);
+
+ t.plugOptions.isRigidbody2D = true;
+ t.plugOptions.mode = pathMode;
+ return t;
+ }
+ internal static TweenerCore DOLocalPath(
+ this Rigidbody2D target, Path path, float duration, PathMode pathMode = PathMode.Full3D
+ )
+ {
+ Transform trans = target.transform;
+ TweenerCore t = DOTween.To(PathPlugin.Get(), () => trans.localPosition, x => target.MovePosition(trans.parent == null ? x : trans.parent.TransformPoint(x)), path, duration)
+ .SetTarget(target);
+
+ t.plugOptions.isRigidbody2D = true;
+ t.plugOptions.mode = pathMode;
+ t.plugOptions.useLocalPosition = true;
+ return t;
+ }
+
+ #endregion
+
+ #endregion
+
+ #endregion
+ }
+}
+#endif
diff --git a/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModulePhysics2D.cs.meta b/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModulePhysics2D.cs.meta
new file mode 100644
index 0000000..ca9ed29
--- /dev/null
+++ b/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModulePhysics2D.cs.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 230fe34542e175245ba74b4659dae700
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
diff --git a/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleSprite.cs b/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleSprite.cs
new file mode 100644
index 0000000..72afb7b
--- /dev/null
+++ b/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleSprite.cs
@@ -0,0 +1,93 @@
+// Author: Daniele Giardini - http://www.demigiant.com
+// Created: 2018/07/13
+
+#if true // MODULE_MARKER
+using System;
+using UnityEngine;
+using DG.Tweening.Core;
+using DG.Tweening.Plugins.Options;
+
+#pragma warning disable 1591
+namespace DG.Tweening
+{
+ public static class DOTweenModuleSprite
+ {
+ #region Shortcuts
+
+ #region SpriteRenderer
+
+ /// Tweens a SpriteRenderer's color to the given value.
+ /// Also stores the spriteRenderer as the tween's target so it can be used for filtered operations
+ /// The end value to reachThe duration of the tween
+ public static TweenerCore DOColor(this SpriteRenderer target, Color endValue, float duration)
+ {
+ TweenerCore t = DOTween.To(() => target.color, x => target.color = x, endValue, duration);
+ t.SetTarget(target);
+ return t;
+ }
+
+ /// Tweens a Material's alpha color to the given value.
+ /// Also stores the spriteRenderer as the tween's target so it can be used for filtered operations
+ /// The end value to reachThe duration of the tween
+ public static TweenerCore DOFade(this SpriteRenderer target, float endValue, float duration)
+ {
+ TweenerCore t = DOTween.ToAlpha(() => target.color, x => target.color = x, endValue, duration);
+ t.SetTarget(target);
+ return t;
+ }
+
+ /// Tweens a SpriteRenderer's color using the given gradient
+ /// (NOTE 1: only uses the colors of the gradient, not the alphas - NOTE 2: creates a Sequence, not a Tweener).
+ /// Also stores the image as the tween's target so it can be used for filtered operations
+ /// The gradient to useThe duration of the tween
+ public static Sequence DOGradientColor(this SpriteRenderer target, Gradient gradient, float duration)
+ {
+ Sequence s = DOTween.Sequence();
+ GradientColorKey[] colors = gradient.colorKeys;
+ int len = colors.Length;
+ for (int i = 0; i < len; ++i) {
+ GradientColorKey c = colors[i];
+ if (i == 0 && c.time <= 0) {
+ target.color = c.color;
+ continue;
+ }
+ float colorDuration = i == len - 1
+ ? duration - s.Duration(false) // Verifies that total duration is correct
+ : duration * (i == 0 ? c.time : c.time - colors[i - 1].time);
+ s.Append(target.DOColor(c.color, colorDuration).SetEase(Ease.Linear));
+ }
+ s.SetTarget(target);
+ return s;
+ }
+
+ #endregion
+
+ #region Blendables
+
+ #region SpriteRenderer
+
+ /// Tweens a SpriteRenderer's color to the given value,
+ /// in a way that allows other DOBlendableColor tweens to work together on the same target,
+ /// instead than fight each other as multiple DOColor would do.
+ /// Also stores the SpriteRenderer as the tween's target so it can be used for filtered operations
+ /// The value to tween toThe duration of the tween
+ public static Tweener DOBlendableColor(this SpriteRenderer target, Color endValue, float duration)
+ {
+ endValue = endValue - target.color;
+ Color to = new Color(0, 0, 0, 0);
+ return DOTween.To(() => to, x => {
+ Color diff = x - to;
+ to = x;
+ target.color += diff;
+ }, endValue, duration)
+ .Blendable().SetTarget(target);
+ }
+
+ #endregion
+
+ #endregion
+
+ #endregion
+ }
+}
+#endif
diff --git a/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleSprite.cs.meta b/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleSprite.cs.meta
new file mode 100644
index 0000000..a0c67c4
--- /dev/null
+++ b/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleSprite.cs.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 188918ab119d93148aa0de59ccf5286b
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
diff --git a/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUI.cs b/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUI.cs
new file mode 100644
index 0000000..2381f4c
--- /dev/null
+++ b/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUI.cs
@@ -0,0 +1,662 @@
+// Author: Daniele Giardini - http://www.demigiant.com
+// Created: 2018/07/13
+
+#if true // MODULE_MARKER
+
+using System;
+using System.Globalization;
+using UnityEngine;
+using UnityEngine.UI;
+using DG.Tweening.Core;
+using DG.Tweening.Core.Enums;
+using DG.Tweening.Plugins;
+using DG.Tweening.Plugins.Options;
+using Outline = UnityEngine.UI.Outline;
+using Text = UnityEngine.UI.Text;
+
+#pragma warning disable 1591
+namespace DG.Tweening
+{
+ public static class DOTweenModuleUI
+ {
+ #region Shortcuts
+
+ #region CanvasGroup
+
+ /// Tweens a CanvasGroup's alpha color to the given value.
+ /// Also stores the canvasGroup as the tween's target so it can be used for filtered operations
+ /// The end value to reachThe duration of the tween
+ public static TweenerCore DOFade(this CanvasGroup target, float endValue, float duration)
+ {
+ TweenerCore t = DOTween.To(() => target.alpha, x => target.alpha = x, endValue, duration);
+ t.SetTarget(target);
+ return t;
+ }
+
+ #endregion
+
+ #region Graphic
+
+ /// Tweens an Graphic's color to the given value.
+ /// Also stores the image as the tween's target so it can be used for filtered operations
+ /// The end value to reachThe duration of the tween
+ public static TweenerCore DOColor(this Graphic target, Color endValue, float duration)
+ {
+ TweenerCore t = DOTween.To(() => target.color, x => target.color = x, endValue, duration);
+ t.SetTarget(target);
+ return t;
+ }
+
+ /// Tweens an Graphic's alpha color to the given value.
+ /// Also stores the image as the tween's target so it can be used for filtered operations
+ /// The end value to reachThe duration of the tween
+ public static TweenerCore DOFade(this Graphic target, float endValue, float duration)
+ {
+ TweenerCore t = DOTween.ToAlpha(() => target.color, x => target.color = x, endValue, duration);
+ t.SetTarget(target);
+ return t;
+ }
+
+ #endregion
+
+ #region Image
+
+ /// Tweens an Image's color to the given value.
+ /// Also stores the image as the tween's target so it can be used for filtered operations
+ /// The end value to reachThe duration of the tween
+ public static TweenerCore DOColor(this Image target, Color endValue, float duration)
+ {
+ TweenerCore t = DOTween.To(() => target.color, x => target.color = x, endValue, duration);
+ t.SetTarget(target);
+ return t;
+ }
+
+ /// Tweens an Image's alpha color to the given value.
+ /// Also stores the image as the tween's target so it can be used for filtered operations
+ /// The end value to reachThe duration of the tween
+ public static TweenerCore DOFade(this Image target, float endValue, float duration)
+ {
+ TweenerCore t = DOTween.ToAlpha(() => target.color, x => target.color = x, endValue, duration);
+ t.SetTarget(target);
+ return t;
+ }
+
+ /// Tweens an Image's fillAmount to the given value.
+ /// Also stores the image as the tween's target so it can be used for filtered operations
+ /// The end value to reach (0 to 1)The duration of the tween
+ public static TweenerCore DOFillAmount(this Image target, float endValue, float duration)
+ {
+ if (endValue > 1) endValue = 1;
+ else if (endValue < 0) endValue = 0;
+ TweenerCore t = DOTween.To(() => target.fillAmount, x => target.fillAmount = x, endValue, duration);
+ t.SetTarget(target);
+ return t;
+ }
+
+ /// Tweens an Image's colors using the given gradient
+ /// (NOTE 1: only uses the colors of the gradient, not the alphas - NOTE 2: creates a Sequence, not a Tweener).
+ /// Also stores the image as the tween's target so it can be used for filtered operations
+ /// The gradient to useThe duration of the tween
+ public static Sequence DOGradientColor(this Image target, Gradient gradient, float duration)
+ {
+ Sequence s = DOTween.Sequence();
+ GradientColorKey[] colors = gradient.colorKeys;
+ int len = colors.Length;
+ for (int i = 0; i < len; ++i) {
+ GradientColorKey c = colors[i];
+ if (i == 0 && c.time <= 0) {
+ target.color = c.color;
+ continue;
+ }
+ float colorDuration = i == len - 1
+ ? duration - s.Duration(false) // Verifies that total duration is correct
+ : duration * (i == 0 ? c.time : c.time - colors[i - 1].time);
+ s.Append(target.DOColor(c.color, colorDuration).SetEase(Ease.Linear));
+ }
+ s.SetTarget(target);
+ return s;
+ }
+
+ #endregion
+
+ #region LayoutElement
+
+ /// Tweens an LayoutElement's flexibleWidth/Height to the given value.
+ /// Also stores the LayoutElement as the tween's target so it can be used for filtered operations
+ /// The end value to reachThe duration of the tween
+ /// If TRUE the tween will smoothly snap all values to integers
+ public static TweenerCore DOFlexibleSize(this LayoutElement target, Vector2 endValue, float duration, bool snapping = false)
+ {
+ TweenerCore t = DOTween.To(() => new Vector2(target.flexibleWidth, target.flexibleHeight), x => {
+ target.flexibleWidth = x.x;
+ target.flexibleHeight = x.y;
+ }, endValue, duration);
+ t.SetOptions(snapping).SetTarget(target);
+ return t;
+ }
+
+ /// Tweens an LayoutElement's minWidth/Height to the given value.
+ /// Also stores the LayoutElement as the tween's target so it can be used for filtered operations
+ /// The end value to reachThe duration of the tween
+ /// If TRUE the tween will smoothly snap all values to integers
+ public static TweenerCore DOMinSize(this LayoutElement target, Vector2 endValue, float duration, bool snapping = false)
+ {
+ TweenerCore t = DOTween.To(() => new Vector2(target.minWidth, target.minHeight), x => {
+ target.minWidth = x.x;
+ target.minHeight = x.y;
+ }, endValue, duration);
+ t.SetOptions(snapping).SetTarget(target);
+ return t;
+ }
+
+ /// Tweens an LayoutElement's preferredWidth/Height to the given value.
+ /// Also stores the LayoutElement as the tween's target so it can be used for filtered operations
+ /// The end value to reachThe duration of the tween
+ /// If TRUE the tween will smoothly snap all values to integers
+ public static TweenerCore DOPreferredSize(this LayoutElement target, Vector2 endValue, float duration, bool snapping = false)
+ {
+ TweenerCore t = DOTween.To(() => new Vector2(target.preferredWidth, target.preferredHeight), x => {
+ target.preferredWidth = x.x;
+ target.preferredHeight = x.y;
+ }, endValue, duration);
+ t.SetOptions(snapping).SetTarget(target);
+ return t;
+ }
+
+ #endregion
+
+ #region Outline
+
+ /// Tweens a Outline's effectColor to the given value.
+ /// Also stores the Outline as the tween's target so it can be used for filtered operations
+ /// The end value to reachThe duration of the tween
+ public static TweenerCore DOColor(this Outline target, Color endValue, float duration)
+ {
+ TweenerCore t = DOTween.To(() => target.effectColor, x => target.effectColor = x, endValue, duration);
+ t.SetTarget(target);
+ return t;
+ }
+
+ /// Tweens a Outline's effectColor alpha to the given value.
+ /// Also stores the Outline as the tween's target so it can be used for filtered operations
+ /// The end value to reachThe duration of the tween
+ public static TweenerCore DOFade(this Outline target, float endValue, float duration)
+ {
+ TweenerCore t = DOTween.ToAlpha(() => target.effectColor, x => target.effectColor = x, endValue, duration);
+ t.SetTarget(target);
+ return t;
+ }
+
+ /// Tweens a Outline's effectDistance to the given value.
+ /// Also stores the Outline as the tween's target so it can be used for filtered operations
+ /// The end value to reachThe duration of the tween
+ public static TweenerCore DOScale(this Outline target, Vector2 endValue, float duration)
+ {
+ TweenerCore t = DOTween.To(() => target.effectDistance, x => target.effectDistance = x, endValue, duration);
+ t.SetTarget(target);
+ return t;
+ }
+
+ #endregion
+
+ #region RectTransform
+
+ /// Tweens a RectTransform's anchoredPosition to the given value.
+ /// Also stores the RectTransform as the tween's target so it can be used for filtered operations
+ /// The end value to reachThe duration of the tween
+ /// If TRUE the tween will smoothly snap all values to integers
+ public static TweenerCore DOAnchorPos(this RectTransform target, Vector2 endValue, float duration, bool snapping = false)
+ {
+ TweenerCore t = DOTween.To(() => target.anchoredPosition, x => target.anchoredPosition = x, endValue, duration);
+ t.SetOptions(snapping).SetTarget(target);
+ return t;
+ }
+ /// Tweens a RectTransform's anchoredPosition X to the given value.
+ /// Also stores the RectTransform as the tween's target so it can be used for filtered operations
+ /// The end value to reachThe duration of the tween
+ /// If TRUE the tween will smoothly snap all values to integers
+ public static TweenerCore DOAnchorPosX(this RectTransform target, float endValue, float duration, bool snapping = false)
+ {
+ TweenerCore t = DOTween.To(() => target.anchoredPosition, x => target.anchoredPosition = x, new Vector2(endValue, 0), duration);
+ t.SetOptions(AxisConstraint.X, snapping).SetTarget(target);
+ return t;
+ }
+ /// Tweens a RectTransform's anchoredPosition Y to the given value.
+ /// Also stores the RectTransform as the tween's target so it can be used for filtered operations
+ /// The end value to reachThe duration of the tween
+ /// If TRUE the tween will smoothly snap all values to integers
+ public static TweenerCore DOAnchorPosY(this RectTransform target, float endValue, float duration, bool snapping = false)
+ {
+ TweenerCore t = DOTween.To(() => target.anchoredPosition, x => target.anchoredPosition = x, new Vector2(0, endValue), duration);
+ t.SetOptions(AxisConstraint.Y, snapping).SetTarget(target);
+ return t;
+ }
+
+ /// Tweens a RectTransform's anchoredPosition3D to the given value.
+ /// Also stores the RectTransform as the tween's target so it can be used for filtered operations
+ /// The end value to reachThe duration of the tween
+ /// If TRUE the tween will smoothly snap all values to integers
+ public static TweenerCore DOAnchorPos3D(this RectTransform target, Vector3 endValue, float duration, bool snapping = false)
+ {
+ TweenerCore t = DOTween.To(() => target.anchoredPosition3D, x => target.anchoredPosition3D = x, endValue, duration);
+ t.SetOptions(snapping).SetTarget(target);
+ return t;
+ }
+ /// Tweens a RectTransform's anchoredPosition3D X to the given value.
+ /// Also stores the RectTransform as the tween's target so it can be used for filtered operations
+ /// The end value to reachThe duration of the tween
+ /// If TRUE the tween will smoothly snap all values to integers
+ public static TweenerCore DOAnchorPos3DX(this RectTransform target, float endValue, float duration, bool snapping = false)
+ {
+ TweenerCore t = DOTween.To(() => target.anchoredPosition3D, x => target.anchoredPosition3D = x, new Vector3(endValue, 0, 0), duration);
+ t.SetOptions(AxisConstraint.X, snapping).SetTarget(target);
+ return t;
+ }
+ /// Tweens a RectTransform's anchoredPosition3D Y to the given value.
+ /// Also stores the RectTransform as the tween's target so it can be used for filtered operations
+ /// The end value to reachThe duration of the tween
+ /// If TRUE the tween will smoothly snap all values to integers
+ public static TweenerCore DOAnchorPos3DY(this RectTransform target, float endValue, float duration, bool snapping = false)
+ {
+ TweenerCore t = DOTween.To(() => target.anchoredPosition3D, x => target.anchoredPosition3D = x, new Vector3(0, endValue, 0), duration);
+ t.SetOptions(AxisConstraint.Y, snapping).SetTarget(target);
+ return t;
+ }
+ /// Tweens a RectTransform's anchoredPosition3D Z to the given value.
+ /// Also stores the RectTransform as the tween's target so it can be used for filtered operations
+ /// The end value to reachThe duration of the tween
+ /// If TRUE the tween will smoothly snap all values to integers
+ public static TweenerCore DOAnchorPos3DZ(this RectTransform target, float endValue, float duration, bool snapping = false)
+ {
+ TweenerCore t = DOTween.To(() => target.anchoredPosition3D, x => target.anchoredPosition3D = x, new Vector3(0, 0, endValue), duration);
+ t.SetOptions(AxisConstraint.Z, snapping).SetTarget(target);
+ return t;
+ }
+
+ /// Tweens a RectTransform's anchorMax to the given value.
+ /// Also stores the RectTransform as the tween's target so it can be used for filtered operations
+ /// The end value to reachThe duration of the tween
+ /// If TRUE the tween will smoothly snap all values to integers
+ public static TweenerCore DOAnchorMax(this RectTransform target, Vector2 endValue, float duration, bool snapping = false)
+ {
+ TweenerCore t = DOTween.To(() => target.anchorMax, x => target.anchorMax = x, endValue, duration);
+ t.SetOptions(snapping).SetTarget(target);
+ return t;
+ }
+
+ /// Tweens a RectTransform's anchorMin to the given value.
+ /// Also stores the RectTransform as the tween's target so it can be used for filtered operations
+ /// The end value to reachThe duration of the tween
+ /// If TRUE the tween will smoothly snap all values to integers
+ public static TweenerCore DOAnchorMin(this RectTransform target, Vector2 endValue, float duration, bool snapping = false)
+ {
+ TweenerCore t = DOTween.To(() => target.anchorMin, x => target.anchorMin = x, endValue, duration);
+ t.SetOptions(snapping).SetTarget(target);
+ return t;
+ }
+
+ /// Tweens a RectTransform's pivot to the given value.
+ /// Also stores the RectTransform as the tween's target so it can be used for filtered operations
+ /// The end value to reachThe duration of the tween
+ public static TweenerCore DOPivot(this RectTransform target, Vector2 endValue, float duration)
+ {
+ TweenerCore t = DOTween.To(() => target.pivot, x => target.pivot = x, endValue, duration);
+ t.SetTarget(target);
+ return t;
+ }
+ /// Tweens a RectTransform's pivot X to the given value.
+ /// Also stores the RectTransform as the tween's target so it can be used for filtered operations
+ /// The end value to reachThe duration of the tween
+ public static TweenerCore DOPivotX(this RectTransform target, float endValue, float duration)
+ {
+ TweenerCore t = DOTween.To(() => target.pivot, x => target.pivot = x, new Vector2(endValue, 0), duration);
+ t.SetOptions(AxisConstraint.X).SetTarget(target);
+ return t;
+ }
+ /// Tweens a RectTransform's pivot Y to the given value.
+ /// Also stores the RectTransform as the tween's target so it can be used for filtered operations
+ /// The end value to reachThe duration of the tween
+ public static TweenerCore DOPivotY(this RectTransform target, float endValue, float duration)
+ {
+ TweenerCore t = DOTween.To(() => target.pivot, x => target.pivot = x, new Vector2(0, endValue), duration);
+ t.SetOptions(AxisConstraint.Y).SetTarget(target);
+ return t;
+ }
+
+ /// Tweens a RectTransform's sizeDelta to the given value.
+ /// Also stores the RectTransform as the tween's target so it can be used for filtered operations
+ /// The end value to reachThe duration of the tween
+ /// If TRUE the tween will smoothly snap all values to integers
+ public static TweenerCore DOSizeDelta(this RectTransform target, Vector2 endValue, float duration, bool snapping = false)
+ {
+ TweenerCore t = DOTween.To(() => target.sizeDelta, x => target.sizeDelta = x, endValue, duration);
+ t.SetOptions(snapping).SetTarget(target);
+ return t;
+ }
+
+ /// Punches a RectTransform's anchoredPosition towards the given direction and then back to the starting one
+ /// as if it was connected to the starting position via an elastic.
+ /// Also stores the RectTransform as the tween's target so it can be used for filtered operations
+ /// The direction and strength of the punch (added to the RectTransform's current position)
+ /// The duration of the tween
+ /// Indicates how much will the punch vibrate
+ /// Represents how much (0 to 1) the vector will go beyond the starting position when bouncing backwards.
+ /// 1 creates a full oscillation between the punch direction and the opposite direction,
+ /// while 0 oscillates only between the punch and the start position
+ /// If TRUE the tween will smoothly snap all values to integers
+ public static Tweener DOPunchAnchorPos(this RectTransform target, Vector2 punch, float duration, int vibrato = 10, float elasticity = 1, bool snapping = false)
+ {
+ return DOTween.Punch(() => target.anchoredPosition, x => target.anchoredPosition = x, punch, duration, vibrato, elasticity)
+ .SetTarget(target).SetOptions(snapping);
+ }
+
+ /// Shakes a RectTransform's anchoredPosition with the given values.
+ /// Also stores the RectTransform as the tween's target so it can be used for filtered operations
+ /// The duration of the tween
+ /// The shake strength
+ /// Indicates how much will the shake vibrate
+ /// Indicates how much the shake will be random (0 to 180 - values higher than 90 kind of suck, so beware).
+ /// Setting it to 0 will shake along a single direction.
+ /// If TRUE the tween will smoothly snap all values to integers
+ /// If TRUE the shake will automatically fadeOut smoothly within the tween's duration, otherwise it will not
+ /// Randomness mode
+ public static Tweener DOShakeAnchorPos(this RectTransform target, float duration, float strength = 100, int vibrato = 10, float randomness = 90, bool snapping = false, bool fadeOut = true, ShakeRandomnessMode randomnessMode = ShakeRandomnessMode.Full)
+ {
+ return DOTween.Shake(() => target.anchoredPosition, x => target.anchoredPosition = x, duration, strength, vibrato, randomness, true, fadeOut, randomnessMode)
+ .SetTarget(target).SetSpecialStartupMode(SpecialStartupMode.SetShake).SetOptions(snapping);
+ }
+ /// Shakes a RectTransform's anchoredPosition with the given values.
+ /// Also stores the RectTransform as the tween's target so it can be used for filtered operations
+ /// The duration of the tween
+ /// The shake strength on each axis
+ /// Indicates how much will the shake vibrate
+ /// Indicates how much the shake will be random (0 to 180 - values higher than 90 kind of suck, so beware).
+ /// Setting it to 0 will shake along a single direction.
+ /// If TRUE the tween will smoothly snap all values to integers
+ /// If TRUE the shake will automatically fadeOut smoothly within the tween's duration, otherwise it will not
+ /// Randomness mode
+ public static Tweener DOShakeAnchorPos(this RectTransform target, float duration, Vector2 strength, int vibrato = 10, float randomness = 90, bool snapping = false, bool fadeOut = true, ShakeRandomnessMode randomnessMode = ShakeRandomnessMode.Full)
+ {
+ return DOTween.Shake(() => target.anchoredPosition, x => target.anchoredPosition = x, duration, strength, vibrato, randomness, fadeOut, randomnessMode)
+ .SetTarget(target).SetSpecialStartupMode(SpecialStartupMode.SetShake).SetOptions(snapping);
+ }
+
+ #region Special
+
+ /// Tweens a RectTransform's anchoredPosition to the given value, while also applying a jump effect along the Y axis.
+ /// Returns a Sequence instead of a Tweener.
+ /// Also stores the RectTransform as the tween's target so it can be used for filtered operations
+ /// The end value to reach
+ /// Power of the jump (the max height of the jump is represented by this plus the final Y offset)
+ /// Total number of jumps
+ /// The duration of the tween
+ /// If TRUE the tween will smoothly snap all values to integers
+ public static Sequence DOJumpAnchorPos(this RectTransform target, Vector2 endValue, float jumpPower, int numJumps, float duration, bool snapping = false)
+ {
+ if (numJumps < 1) numJumps = 1;
+ float startPosY = 0;
+ float offsetY = -1;
+ bool offsetYSet = false;
+
+ // Separate Y Tween so we can elaborate elapsedPercentage on that insted of on the Sequence
+ // (in case users add a delay or other elements to the Sequence)
+ Sequence s = DOTween.Sequence();
+ Tween yTween = DOTween.To(() => target.anchoredPosition, x => target.anchoredPosition = x, new Vector2(0, jumpPower), duration / (numJumps * 2))
+ .SetOptions(AxisConstraint.Y, snapping).SetEase(Ease.OutQuad).SetRelative()
+ .SetLoops(numJumps * 2, LoopType.Yoyo)
+ .OnStart(()=> startPosY = target.anchoredPosition.y);
+ s.Append(DOTween.To(() => target.anchoredPosition, x => target.anchoredPosition = x, new Vector2(endValue.x, 0), duration)
+ .SetOptions(AxisConstraint.X, snapping).SetEase(Ease.Linear)
+ ).Join(yTween)
+ .SetTarget(target).SetEase(DOTween.defaultEaseType);
+ s.OnUpdate(() => {
+ if (!offsetYSet) {
+ offsetYSet = true;
+ offsetY = s.isRelative ? endValue.y : endValue.y - startPosY;
+ }
+ Vector2 pos = target.anchoredPosition;
+ pos.y += DOVirtual.EasedValue(0, offsetY, s.ElapsedDirectionalPercentage(), Ease.OutQuad);
+ target.anchoredPosition = pos;
+ });
+ return s;
+ }
+
+ #endregion
+
+ #endregion
+
+ #region ScrollRect
+
+ /// Tweens a ScrollRect's horizontal/verticalNormalizedPosition to the given value.
+ /// Also stores the ScrollRect as the tween's target so it can be used for filtered operations
+ /// The end value to reachThe duration of the tween
+ /// If TRUE the tween will smoothly snap all values to integers
+ public static Tweener DONormalizedPos(this ScrollRect target, Vector2 endValue, float duration, bool snapping = false)
+ {
+ return DOTween.To(() => new Vector2(target.horizontalNormalizedPosition, target.verticalNormalizedPosition),
+ x => {
+ target.horizontalNormalizedPosition = x.x;
+ target.verticalNormalizedPosition = x.y;
+ }, endValue, duration)
+ .SetOptions(snapping).SetTarget(target);
+ }
+ /// Tweens a ScrollRect's horizontalNormalizedPosition to the given value.
+ /// Also stores the ScrollRect as the tween's target so it can be used for filtered operations
+ /// The end value to reachThe duration of the tween
+ /// If TRUE the tween will smoothly snap all values to integers
+ public static Tweener DOHorizontalNormalizedPos(this ScrollRect target, float endValue, float duration, bool snapping = false)
+ {
+ return DOTween.To(() => target.horizontalNormalizedPosition, x => target.horizontalNormalizedPosition = x, endValue, duration)
+ .SetOptions(snapping).SetTarget(target);
+ }
+ /// Tweens a ScrollRect's verticalNormalizedPosition to the given value.
+ /// Also stores the ScrollRect as the tween's target so it can be used for filtered operations
+ /// The end value to reachThe duration of the tween
+ /// If TRUE the tween will smoothly snap all values to integers
+ public static Tweener DOVerticalNormalizedPos(this ScrollRect target, float endValue, float duration, bool snapping = false)
+ {
+ return DOTween.To(() => target.verticalNormalizedPosition, x => target.verticalNormalizedPosition = x, endValue, duration)
+ .SetOptions(snapping).SetTarget(target);
+ }
+
+ #endregion
+
+ #region Slider
+
+ /// Tweens a Slider's value to the given value.
+ /// Also stores the Slider as the tween's target so it can be used for filtered operations
+ /// The end value to reachThe duration of the tween
+ /// If TRUE the tween will smoothly snap all values to integers
+ public static TweenerCore DOValue(this Slider target, float endValue, float duration, bool snapping = false)
+ {
+ TweenerCore t = DOTween.To(() => target.value, x => target.value = x, endValue, duration);
+ t.SetOptions(snapping).SetTarget(target);
+ return t;
+ }
+
+ #endregion
+
+ #region Text
+
+ /// Tweens a Text's color to the given value.
+ /// Also stores the Text as the tween's target so it can be used for filtered operations
+ /// The end value to reachThe duration of the tween
+ public static TweenerCore DOColor(this Text target, Color endValue, float duration)
+ {
+ TweenerCore t = DOTween.To(() => target.color, x => target.color = x, endValue, duration);
+ t.SetTarget(target);
+ return t;
+ }
+
+ ///
+ /// Tweens a Text's text from one integer to another, with options for thousands separators
+ ///
+ /// The value to start from
+ /// The end value to reach
+ /// The duration of the tween
+ /// If TRUE (default) also adds thousands separators
+ /// The to use (InvariantCulture if NULL)
+ public static TweenerCore DOCounter(
+ this Text target, int fromValue, int endValue, float duration, bool addThousandsSeparator = true, CultureInfo culture = null
+ ){
+ int v = fromValue;
+ CultureInfo cInfo = !addThousandsSeparator ? null : culture ?? CultureInfo.InvariantCulture;
+ TweenerCore t = DOTween.To(() => v, x => {
+ v = x;
+ target.text = addThousandsSeparator
+ ? v.ToString("N0", cInfo)
+ : v.ToString();
+ }, endValue, duration);
+ t.SetTarget(target);
+ return t;
+ }
+
+ /// Tweens a Text's alpha color to the given value.
+ /// Also stores the Text as the tween's target so it can be used for filtered operations
+ /// The end value to reachThe duration of the tween
+ public static TweenerCore DOFade(this Text target, float endValue, float duration)
+ {
+ TweenerCore t = DOTween.ToAlpha(() => target.color, x => target.color = x, endValue, duration);
+ t.SetTarget(target);
+ return t;
+ }
+
+ /// Tweens a Text's text to the given value.
+ /// Also stores the Text as the tween's target so it can be used for filtered operations
+ /// The end string to tween toThe duration of the tween
+ /// If TRUE (default), rich text will be interpreted correctly while animated,
+ /// otherwise all tags will be considered as normal text
+ /// The type of scramble mode to use, if any
+ /// A string containing the characters to use for scrambling.
+ /// Use as many characters as possible (minimum 10) because DOTween uses a fast scramble mode which gives better results with more characters.
+ /// Leave it to NULL (default) to use default ones
+ public static TweenerCore DOText(this Text target, string endValue, float duration, bool richTextEnabled = true, ScrambleMode scrambleMode = ScrambleMode.None, string scrambleChars = null)
+ {
+ if (endValue == null) {
+ if (Debugger.logPriority > 0) Debugger.LogWarning("You can't pass a NULL string to DOText: an empty string will be used instead to avoid errors");
+ endValue = "";
+ }
+ TweenerCore t = DOTween.To(() => target.text, x => target.text = x, endValue, duration);
+ t.SetOptions(richTextEnabled, scrambleMode, scrambleChars)
+ .SetTarget(target);
+ return t;
+ }
+
+ #endregion
+
+ #region Blendables
+
+ #region Graphic
+
+ /// Tweens a Graphic's color to the given value,
+ /// in a way that allows other DOBlendableColor tweens to work together on the same target,
+ /// instead than fight each other as multiple DOColor would do.
+ /// Also stores the Graphic as the tween's target so it can be used for filtered operations
+ /// The value to tween toThe duration of the tween
+ public static Tweener DOBlendableColor(this Graphic target, Color endValue, float duration)
+ {
+ endValue = endValue - target.color;
+ Color to = new Color(0, 0, 0, 0);
+ return DOTween.To(() => to, x => {
+ Color diff = x - to;
+ to = x;
+ target.color += diff;
+ }, endValue, duration)
+ .Blendable().SetTarget(target);
+ }
+
+ #endregion
+
+ #region Image
+
+ /// Tweens a Image's color to the given value,
+ /// in a way that allows other DOBlendableColor tweens to work together on the same target,
+ /// instead than fight each other as multiple DOColor would do.
+ /// Also stores the Image as the tween's target so it can be used for filtered operations
+ /// The value to tween toThe duration of the tween
+ public static Tweener DOBlendableColor(this Image target, Color endValue, float duration)
+ {
+ endValue = endValue - target.color;
+ Color to = new Color(0, 0, 0, 0);
+ return DOTween.To(() => to, x => {
+ Color diff = x - to;
+ to = x;
+ target.color += diff;
+ }, endValue, duration)
+ .Blendable().SetTarget(target);
+ }
+
+ #endregion
+
+ #region Text
+
+ /// Tweens a Text's color BY the given value,
+ /// in a way that allows other DOBlendableColor tweens to work together on the same target,
+ /// instead than fight each other as multiple DOColor would do.
+ /// Also stores the Text as the tween's target so it can be used for filtered operations
+ /// The value to tween toThe duration of the tween
+ public static Tweener DOBlendableColor(this Text target, Color endValue, float duration)
+ {
+ endValue = endValue - target.color;
+ Color to = new Color(0, 0, 0, 0);
+ return DOTween.To(() => to, x => {
+ Color diff = x - to;
+ to = x;
+ target.color += diff;
+ }, endValue, duration)
+ .Blendable().SetTarget(target);
+ }
+
+ #endregion
+
+ #endregion
+
+ #region Shapes
+
+ /// Tweens a RectTransform's anchoredPosition so that it draws a circle around the given center.
+ /// Also stores the RectTransform as the tween's target so it can be used for filtered operations.
+ /// IMPORTANT: SetFrom(value) requires a instead of a float, where the X property represents the "from degrees value"
+ /// Circle-center/pivot around which to rotate (in UI anchoredPosition coordinates)
+ /// The end value degrees to reach (to rotate counter-clockwise pass a negative value)
+ /// The duration of the tween
+ /// If TRUE the coordinates will be considered as relative to the target's current anchoredPosition
+ /// If TRUE the tween will smoothly snap all values to integers
+ public static TweenerCore DOShapeCircle(
+ this RectTransform target, Vector2 center, float endValueDegrees, float duration, bool relativeCenter = false, bool snapping = false
+ )
+ {
+ TweenerCore t = DOTween.To(
+ CirclePlugin.Get(), () => target.anchoredPosition, x => target.anchoredPosition = x, center, duration
+ );
+ t.SetOptions(endValueDegrees, relativeCenter, snapping).SetTarget(target);
+ return t;
+ }
+
+ #endregion
+
+ #endregion
+
+ // █████████████████████████████████████████████████████████████████████████████████████████████████████████████████████
+ // ███ INTERNAL CLASSES ████████████████████████████████████████████████████████████████████████████████████████████████
+ // █████████████████████████████████████████████████████████████████████████████████████████████████████████████████████
+
+ public static class Utils
+ {
+ ///
+ /// Converts the anchoredPosition of the first RectTransform to the second RectTransform,
+ /// taking into consideration offset, anchors and pivot, and returns the new anchoredPosition
+ ///
+ public static Vector2 SwitchToRectTransform(RectTransform from, RectTransform to)
+ {
+ Vector2 localPoint;
+ Vector2 fromPivotDerivedOffset = new Vector2(from.rect.width * 0.5f + from.rect.xMin, from.rect.height * 0.5f + from.rect.yMin);
+ Vector2 screenP = RectTransformUtility.WorldToScreenPoint(null, from.position);
+ screenP += fromPivotDerivedOffset;
+ RectTransformUtility.ScreenPointToLocalPointInRectangle(to, screenP, null, out localPoint);
+ Vector2 pivotDerivedOffset = new Vector2(to.rect.width * 0.5f + to.rect.xMin, to.rect.height * 0.5f + to.rect.yMin);
+ return to.anchoredPosition + localPoint - pivotDerivedOffset;
+ }
+ }
+ }
+}
+#endif
diff --git a/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUI.cs.meta b/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUI.cs.meta
new file mode 100644
index 0000000..60d55ef
--- /dev/null
+++ b/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUI.cs.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: a060394c03331a64392db53a10e7f2d1
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
diff --git a/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUnityVersion.cs b/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUnityVersion.cs
new file mode 100644
index 0000000..8f818ba
--- /dev/null
+++ b/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUnityVersion.cs
@@ -0,0 +1,389 @@
+// Author: Daniele Giardini - http://www.demigiant.com
+// Created: 2018/07/13
+
+using System;
+using UnityEngine;
+using DG.Tweening.Core;
+using DG.Tweening.Plugins.Options;
+//#if UNITY_2018_1_OR_NEWER && (NET_4_6 || NET_STANDARD_2_0)
+//using Task = System.Threading.Tasks.Task;
+//#endif
+
+#pragma warning disable 1591
+namespace DG.Tweening
+{
+ ///
+ /// Shortcuts/functions that are not strictly related to specific Modules
+ /// but are available only on some Unity versions
+ ///
+ public static class DOTweenModuleUnityVersion
+ {
+ #region Material
+
+ /// Tweens a Material's color using the given gradient
+ /// (NOTE 1: only uses the colors of the gradient, not the alphas - NOTE 2: creates a Sequence, not a Tweener).
+ /// Also stores the image as the tween's target so it can be used for filtered operations
+ /// The gradient to useThe duration of the tween
+ public static Sequence DOGradientColor(this Material target, Gradient gradient, float duration)
+ {
+ Sequence s = DOTween.Sequence();
+ GradientColorKey[] colors = gradient.colorKeys;
+ int len = colors.Length;
+ for (int i = 0; i < len; ++i) {
+ GradientColorKey c = colors[i];
+ if (i == 0 && c.time <= 0) {
+ target.color = c.color;
+ continue;
+ }
+ float colorDuration = i == len - 1
+ ? duration - s.Duration(false) // Verifies that total duration is correct
+ : duration * (i == 0 ? c.time : c.time - colors[i - 1].time);
+ s.Append(target.DOColor(c.color, colorDuration).SetEase(Ease.Linear));
+ }
+ s.SetTarget(target);
+ return s;
+ }
+ /// Tweens a Material's named color property using the given gradient
+ /// (NOTE 1: only uses the colors of the gradient, not the alphas - NOTE 2: creates a Sequence, not a Tweener).
+ /// Also stores the image as the tween's target so it can be used for filtered operations
+ /// The gradient to use
+ /// The name of the material property to tween (like _Tint or _SpecColor)
+ /// The duration of the tween
+ public static Sequence DOGradientColor(this Material target, Gradient gradient, string property, float duration)
+ {
+ Sequence s = DOTween.Sequence();
+ GradientColorKey[] colors = gradient.colorKeys;
+ int len = colors.Length;
+ for (int i = 0; i < len; ++i) {
+ GradientColorKey c = colors[i];
+ if (i == 0 && c.time <= 0) {
+ target.SetColor(property, c.color);
+ continue;
+ }
+ float colorDuration = i == len - 1
+ ? duration - s.Duration(false) // Verifies that total duration is correct
+ : duration * (i == 0 ? c.time : c.time - colors[i - 1].time);
+ s.Append(target.DOColor(c.color, property, colorDuration).SetEase(Ease.Linear));
+ }
+ s.SetTarget(target);
+ return s;
+ }
+
+ #endregion
+
+ #region CustomYieldInstructions
+
+ ///
+ /// Returns a that waits until the tween is killed or complete.
+ /// It can be used inside a coroutine as a yield.
+ /// Example usage:yield return myTween.WaitForCompletion(true);
+ ///
+ public static CustomYieldInstruction WaitForCompletion(this Tween t, bool returnCustomYieldInstruction)
+ {
+ if (!t.active) {
+ if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t);
+ return null;
+ }
+ return new DOTweenCYInstruction.WaitForCompletion(t);
+ }
+
+ ///
+ /// Returns a that waits until the tween is killed or rewinded.
+ /// It can be used inside a coroutine as a yield.
+ /// Example usage:yield return myTween.WaitForRewind();
+ ///
+ public static CustomYieldInstruction WaitForRewind(this Tween t, bool returnCustomYieldInstruction)
+ {
+ if (!t.active) {
+ if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t);
+ return null;
+ }
+ return new DOTweenCYInstruction.WaitForRewind(t);
+ }
+
+ ///
+ /// Returns a that waits until the tween is killed.
+ /// It can be used inside a coroutine as a yield.
+ /// Example usage:yield return myTween.WaitForKill();
+ ///
+ public static CustomYieldInstruction WaitForKill(this Tween t, bool returnCustomYieldInstruction)
+ {
+ if (!t.active) {
+ if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t);
+ return null;
+ }
+ return new DOTweenCYInstruction.WaitForKill(t);
+ }
+
+ ///
+ /// Returns a that waits until the tween is killed or has gone through the given amount of loops.
+ /// It can be used inside a coroutine as a yield.
+ /// Example usage:yield return myTween.WaitForElapsedLoops(2);
+ ///
+ /// Elapsed loops to wait for
+ public static CustomYieldInstruction WaitForElapsedLoops(this Tween t, int elapsedLoops, bool returnCustomYieldInstruction)
+ {
+ if (!t.active) {
+ if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t);
+ return null;
+ }
+ return new DOTweenCYInstruction.WaitForElapsedLoops(t, elapsedLoops);
+ }
+
+ ///
+ /// Returns a that waits until the tween is killed
+ /// or has reached the given time position (loops included, delays excluded).
+ /// It can be used inside a coroutine as a yield.
+ /// Example usage:yield return myTween.WaitForPosition(2.5f);
+ ///
+ /// Position (loops included, delays excluded) to wait for
+ public static CustomYieldInstruction WaitForPosition(this Tween t, float position, bool returnCustomYieldInstruction)
+ {
+ if (!t.active) {
+ if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t);
+ return null;
+ }
+ return new DOTweenCYInstruction.WaitForPosition(t, position);
+ }
+
+ ///
+ /// Returns a that waits until the tween is killed or started
+ /// (meaning when the tween is set in a playing state the first time, after any eventual delay).
+ /// It can be used inside a coroutine as a yield.
+ /// Example usage:yield return myTween.WaitForStart();
+ ///
+ public static CustomYieldInstruction WaitForStart(this Tween t, bool returnCustomYieldInstruction)
+ {
+ if (!t.active) {
+ if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t);
+ return null;
+ }
+ return new DOTweenCYInstruction.WaitForStart(t);
+ }
+
+ #endregion
+
+#if UNITY_2018_1_OR_NEWER
+ #region Unity 2018.1 or Newer
+
+ #region Material
+
+ /// Tweens a Material's named texture offset property with the given ID to the given value.
+ /// Also stores the material as the tween's target so it can be used for filtered operations
+ /// The end value to reach
+ /// The ID of the material property to tween (also called nameID in Unity's manual)
+ /// The duration of the tween
+ public static TweenerCore DOOffset(this Material target, Vector2 endValue, int propertyID, float duration)
+ {
+ if (!target.HasProperty(propertyID)) {
+ if (Debugger.logPriority > 0) Debugger.LogMissingMaterialProperty(propertyID);
+ return null;
+ }
+ TweenerCore t = DOTween.To(() => target.GetTextureOffset(propertyID), x => target.SetTextureOffset(propertyID, x), endValue, duration);
+ t.SetTarget(target);
+ return t;
+ }
+
+ /// Tweens a Material's named texture scale property with the given ID to the given value.
+ /// Also stores the material as the tween's target so it can be used for filtered operations
+ /// The end value to reach
+ /// The ID of the material property to tween (also called nameID in Unity's manual)
+ /// The duration of the tween
+ public static TweenerCore DOTiling(this Material target, Vector2 endValue, int propertyID, float duration)
+ {
+ if (!target.HasProperty(propertyID)) {
+ if (Debugger.logPriority > 0) Debugger.LogMissingMaterialProperty(propertyID);
+ return null;
+ }
+ TweenerCore t = DOTween.To(() => target.GetTextureScale(propertyID), x => target.SetTextureScale(propertyID, x), endValue, duration);
+ t.SetTarget(target);
+ return t;
+ }
+
+ #endregion
+
+ #region .NET 4.6 or Newer
+
+#if UNITY_2018_1_OR_NEWER && (NET_4_6 || NET_STANDARD_2_0)
+
+ #region Async Instructions
+
+ ///
+ /// Returns an async that waits until the tween is killed or complete.
+ /// It can be used inside an async operation.
+ /// Example usage:await myTween.WaitForCompletion();
+ ///
+ public static async System.Threading.Tasks.Task AsyncWaitForCompletion(this Tween t)
+ {
+ if (!t.active) {
+ if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t);
+ return;
+ }
+ while (t.active && !t.IsComplete()) await System.Threading.Tasks.Task.Yield();
+ }
+
+ ///
+ /// Returns an async that waits until the tween is killed or rewinded.
+ /// It can be used inside an async operation.
+ /// Example usage:await myTween.AsyncWaitForRewind();
+ ///
+ public static async System.Threading.Tasks.Task AsyncWaitForRewind(this Tween t)
+ {
+ if (!t.active) {
+ if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t);
+ return;
+ }
+ while (t.active && (!t.playedOnce || t.position * (t.CompletedLoops() + 1) > 0)) await System.Threading.Tasks.Task.Yield();
+ }
+
+ ///
+ /// Returns an async that waits until the tween is killed.
+ /// It can be used inside an async operation.
+ /// Example usage:await myTween.AsyncWaitForKill();
+ ///
+ public static async System.Threading.Tasks.Task AsyncWaitForKill(this Tween t)
+ {
+ if (!t.active) {
+ if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t);
+ return;
+ }
+ while (t.active) await System.Threading.Tasks.Task.Yield();
+ }
+
+ ///
+ /// Returns an async that waits until the tween is killed or has gone through the given amount of loops.
+ /// It can be used inside an async operation.
+ /// Example usage:await myTween.AsyncWaitForElapsedLoops();
+ ///
+ /// Elapsed loops to wait for
+ public static async System.Threading.Tasks.Task AsyncWaitForElapsedLoops(this Tween t, int elapsedLoops)
+ {
+ if (!t.active) {
+ if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t);
+ return;
+ }
+ while (t.active && t.CompletedLoops() < elapsedLoops) await System.Threading.Tasks.Task.Yield();
+ }
+
+ ///
+ /// Returns an async that waits until the tween is killed or started
+ /// (meaning when the tween is set in a playing state the first time, after any eventual delay).
+ /// It can be used inside an async operation.
+ /// Example usage:await myTween.AsyncWaitForPosition();
+ ///
+ /// Position (loops included, delays excluded) to wait for
+ public static async System.Threading.Tasks.Task AsyncWaitForPosition(this Tween t, float position)
+ {
+ if (!t.active) {
+ if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t);
+ return;
+ }
+ while (t.active && t.position * (t.CompletedLoops() + 1) < position) await System.Threading.Tasks.Task.Yield();
+ }
+
+ ///
+ /// Returns an async that waits until the tween is killed.
+ /// It can be used inside an async operation.
+ /// Example usage:await myTween.AsyncWaitForKill();
+ ///
+ public static async System.Threading.Tasks.Task AsyncWaitForStart(this Tween t)
+ {
+ if (!t.active) {
+ if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t);
+ return;
+ }
+ while (t.active && !t.playedOnce) await System.Threading.Tasks.Task.Yield();
+ }
+
+ #endregion
+#endif
+
+ #endregion
+
+ #endregion
+#endif
+ }
+
+ // █████████████████████████████████████████████████████████████████████████████████████████████████████████████████████
+ // ███ CLASSES █████████████████████████████████████████████████████████████████████████████████████████████████████████
+ // █████████████████████████████████████████████████████████████████████████████████████████████████████████████████████
+
+ public static class DOTweenCYInstruction
+ {
+ public class WaitForCompletion : CustomYieldInstruction
+ {
+ public override bool keepWaiting { get {
+ return t.active && !t.IsComplete();
+ }}
+ readonly Tween t;
+ public WaitForCompletion(Tween tween)
+ {
+ t = tween;
+ }
+ }
+
+ public class WaitForRewind : CustomYieldInstruction
+ {
+ public override bool keepWaiting { get {
+ return t.active && (!t.playedOnce || t.position * (t.CompletedLoops() + 1) > 0);
+ }}
+ readonly Tween t;
+ public WaitForRewind(Tween tween)
+ {
+ t = tween;
+ }
+ }
+
+ public class WaitForKill : CustomYieldInstruction
+ {
+ public override bool keepWaiting { get {
+ return t.active;
+ }}
+ readonly Tween t;
+ public WaitForKill(Tween tween)
+ {
+ t = tween;
+ }
+ }
+
+ public class WaitForElapsedLoops : CustomYieldInstruction
+ {
+ public override bool keepWaiting { get {
+ return t.active && t.CompletedLoops() < elapsedLoops;
+ }}
+ readonly Tween t;
+ readonly int elapsedLoops;
+ public WaitForElapsedLoops(Tween tween, int elapsedLoops)
+ {
+ t = tween;
+ this.elapsedLoops = elapsedLoops;
+ }
+ }
+
+ public class WaitForPosition : CustomYieldInstruction
+ {
+ public override bool keepWaiting { get {
+ return t.active && t.position * (t.CompletedLoops() + 1) < position;
+ }}
+ readonly Tween t;
+ readonly float position;
+ public WaitForPosition(Tween tween, float position)
+ {
+ t = tween;
+ this.position = position;
+ }
+ }
+
+ public class WaitForStart : CustomYieldInstruction
+ {
+ public override bool keepWaiting { get {
+ return t.active && !t.playedOnce;
+ }}
+ readonly Tween t;
+ public WaitForStart(Tween tween)
+ {
+ t = tween;
+ }
+ }
+ }
+}
diff --git a/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUnityVersion.cs.meta b/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUnityVersion.cs.meta
new file mode 100644
index 0000000..290189f
--- /dev/null
+++ b/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUnityVersion.cs.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 63c02322328255542995bd02b47b0457
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
diff --git a/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUtils.cs b/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUtils.cs
new file mode 100644
index 0000000..12a365d
--- /dev/null
+++ b/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUtils.cs
@@ -0,0 +1,167 @@
+// Author: Daniele Giardini - http://www.demigiant.com
+// Created: 2018/07/13
+
+using System;
+using System.Reflection;
+using UnityEngine;
+using DG.Tweening.Core;
+using DG.Tweening.Plugins.Core.PathCore;
+using DG.Tweening.Plugins.Options;
+
+#pragma warning disable 1591
+namespace DG.Tweening
+{
+ ///
+ /// Utility functions that deal with available Modules.
+ /// Modules defines:
+ /// - DOTAUDIO
+ /// - DOTPHYSICS
+ /// - DOTPHYSICS2D
+ /// - DOTSPRITE
+ /// - DOTUI
+ /// Extra defines set and used for implementation of external assets:
+ /// - DOTWEEN_TMP ► TextMesh Pro
+ /// - DOTWEEN_TK2D ► 2D Toolkit
+ ///
+ public static class DOTweenModuleUtils
+ {
+ static bool _initialized;
+
+ #region Reflection
+
+ ///
+ /// Called via Reflection by DOTweenComponent on Awake
+ ///
+#if UNITY_2018_1_OR_NEWER
+ [UnityEngine.Scripting.Preserve]
+#endif
+ public static void Init()
+ {
+ if (_initialized) return;
+
+ _initialized = true;
+ DOTweenExternalCommand.SetOrientationOnPath += Physics.SetOrientationOnPath;
+
+#if UNITY_EDITOR
+#if UNITY_4_3 || UNITY_4_4 || UNITY_4_5 || UNITY_4_6 || UNITY_5 || UNITY_2017_1
+ UnityEditor.EditorApplication.playmodeStateChanged += PlaymodeStateChanged;
+#else
+ UnityEditor.EditorApplication.playModeStateChanged += PlaymodeStateChanged;
+#endif
+#endif
+ }
+
+#if UNITY_2018_1_OR_NEWER
+#pragma warning disable
+ [UnityEngine.Scripting.Preserve]
+ // Just used to preserve methods when building, never called
+ static void Preserver()
+ {
+ Assembly[] loadedAssemblies = AppDomain.CurrentDomain.GetAssemblies();
+ MethodInfo mi = typeof(MonoBehaviour).GetMethod("Stub");
+ }
+#pragma warning restore
+#endif
+
+ #endregion
+
+#if UNITY_EDITOR
+ // Fires OnApplicationPause in DOTweenComponent even when Editor is paused (otherwise it's only fired at runtime)
+#if UNITY_4_3 || UNITY_4_4 || UNITY_4_5 || UNITY_4_6 || UNITY_5 || UNITY_2017_1
+ static void PlaymodeStateChanged()
+ #else
+ static void PlaymodeStateChanged(UnityEditor.PlayModeStateChange state)
+#endif
+ {
+ if (DOTween.instance == null) return;
+ DOTween.instance.OnApplicationPause(UnityEditor.EditorApplication.isPaused);
+ }
+#endif
+
+ // █████████████████████████████████████████████████████████████████████████████████████████████████████████████████████
+ // ███ INTERNAL CLASSES ████████████████████████████████████████████████████████████████████████████████████████████████
+ // █████████████████████████████████████████████████████████████████████████████████████████████████████████████████████
+
+ public static class Physics
+ {
+ // Called via DOTweenExternalCommand callback
+ public static void SetOrientationOnPath(PathOptions options, Tween t, Quaternion newRot, Transform trans)
+ {
+#if true // PHYSICS_MARKER
+ if (options.isRigidbody) ((Rigidbody)t.target).rotation = newRot;
+ else trans.rotation = newRot;
+#else
+ trans.rotation = newRot;
+#endif
+ }
+
+ // Returns FALSE if the DOTween's Physics2D Module is disabled, or if there's no Rigidbody2D attached
+ public static bool HasRigidbody2D(Component target)
+ {
+#if true // PHYSICS2D_MARKER
+ return target.GetComponent() != null;
+#else
+ return false;
+#endif
+ }
+
+ #region Called via Reflection
+
+
+ // Called via Reflection by DOTweenPathInspector
+ // Returns FALSE if the DOTween's Physics Module is disabled, or if there's no rigidbody attached
+#if UNITY_2018_1_OR_NEWER
+ [UnityEngine.Scripting.Preserve]
+#endif
+ public static bool HasRigidbody(Component target)
+ {
+#if true // PHYSICS_MARKER
+ return target.GetComponent() != null;
+#else
+ return false;
+#endif
+ }
+
+ // Called via Reflection by DOTweenPath
+#if UNITY_2018_1_OR_NEWER
+ [UnityEngine.Scripting.Preserve]
+#endif
+ public static TweenerCore CreateDOTweenPathTween(
+ MonoBehaviour target, bool tweenRigidbody, bool isLocal, Path path, float duration, PathMode pathMode
+ ){
+ TweenerCore t = null;
+ bool rBodyFoundAndTweened = false;
+#if true // PHYSICS_MARKER
+ if (tweenRigidbody) {
+ Rigidbody rBody = target.GetComponent();
+ if (rBody != null) {
+ rBodyFoundAndTweened = true;
+ t = isLocal
+ ? rBody.DOLocalPath(path, duration, pathMode)
+ : rBody.DOPath(path, duration, pathMode);
+ }
+ }
+#endif
+#if true // PHYSICS2D_MARKER
+ if (!rBodyFoundAndTweened && tweenRigidbody) {
+ Rigidbody2D rBody2D = target.GetComponent();
+ if (rBody2D != null) {
+ rBodyFoundAndTweened = true;
+ t = isLocal
+ ? rBody2D.DOLocalPath(path, duration, pathMode)
+ : rBody2D.DOPath(path, duration, pathMode);
+ }
+ }
+#endif
+ if (!rBodyFoundAndTweened) {
+ t = isLocal
+ ? target.transform.DOLocalPath(path, duration, pathMode)
+ : target.transform.DOPath(path, duration, pathMode);
+ }
+ return t;
+ }
+
+ #endregion
+ }
+ }
+}
diff --git a/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUtils.cs.meta b/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUtils.cs.meta
new file mode 100644
index 0000000..ab62186
--- /dev/null
+++ b/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUtils.cs.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 7bcaf917d9cf5b84090421a5a2abe42e
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
diff --git a/Assets/Plugins/Demigiant/DOTween/readme.txt b/Assets/Plugins/Demigiant/DOTween/readme.txt
new file mode 100644
index 0000000..37ff7ef
--- /dev/null
+++ b/Assets/Plugins/Demigiant/DOTween/readme.txt
@@ -0,0 +1,29 @@
+DOTween and DOTween Pro are copyright (c) 2014-2018 Daniele Giardini - Demigiant
+
+// IMPORTANT!!! /////////////////////////////////////////////
+// Upgrading DOTween from versions older than 1.2.000 ///////
+// (or DOTween Pro older than 1.0.000) //////////////////////
+-------------------------------------------------------------
+If you're upgrading your project from a version of DOTween older than 1.2.000 (or DOTween Pro older than 1.0.000) please follow these instructions carefully.
+1) Import the new version in the same folder as the previous one, overwriting old files. A lot of errors will appear but don't worry
+2) Close and reopen Unity (and your project). This is fundamental: skipping this step will cause a bloodbath
+3) Open DOTween's Utility Panel (Tools > Demigiant > DOTween Utility Panel) if it doesn't open automatically, then press "Setup DOTween...": this will run the upgrade setup
+4) From the Add/Remove Modules panel that opens, activate/deactivate Modules for Unity systems and for external assets (Pro version only)
+
+// GET STARTED //////////////////////////////////////////////
+
+- After importing a new DOTween update, select DOTween's Utility Panel from the "Tools/Demigiant" menu (if it doesn't open automatically) and press the "Setup DOTween..." button to activate/deactivate Modules. You can also access a Preferences Tab from there to choose default settings for DOTween.
+- In your code, add "using DG.Tweening" to each class where you want to use DOTween.
+- You're ready to tween. Check out the links below for full documentation and license info.
+
+
+// LINKS ///////////////////////////////////////////////////////
+
+DOTween website (documentation, examples, etc): http://dotween.demigiant.com
+DOTween license: http://dotween.demigiant.com/license.php
+DOTween repository (Google Code): https://code.google.com/p/dotween/
+Demigiant website (documentation, examples, etc): http://www.demigiant.com
+
+// NOTES //////////////////////////////////////////////////////
+
+- DOTween's Utility Panel can be found under "Tools > Demigiant > DOTween Utility Panel" and also contains other useful options, plus a tab to set DOTween's preferences
\ No newline at end of file
diff --git a/Assets/Plugins/Demigiant/DOTween/readme.txt.meta b/Assets/Plugins/Demigiant/DOTween/readme.txt.meta
new file mode 100644
index 0000000..3799165
--- /dev/null
+++ b/Assets/Plugins/Demigiant/DOTween/readme.txt.meta
@@ -0,0 +1,4 @@
+fileFormatVersion: 2
+guid: fccfc62abf2eb0a4db614853430894fd
+TextScriptImporter:
+ userData:
diff --git a/Assets/Prefab/Gameplay.meta b/Assets/Prefab/Gameplay.meta
new file mode 100644
index 0000000..8e246f4
--- /dev/null
+++ b/Assets/Prefab/Gameplay.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 23415b4eb6b761f48b7a883d086ea314
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Prefab/Gameplay/Card.prefab b/Assets/Prefab/Gameplay/Card.prefab
new file mode 100644
index 0000000..2e06d9b
--- /dev/null
+++ b/Assets/Prefab/Gameplay/Card.prefab
@@ -0,0 +1,479 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &2782175792003806444
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 2653266799713255234}
+ - component: {fileID: 528940306177264885}
+ - component: {fileID: 5156951718673587996}
+ m_Layer: 0
+ m_Name: Front
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &2653266799713255234
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ 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_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 8288806321783590124}
+ m_LocalEulerAnglesHint: {x: 89.704, y: 90, z: 0}
+--- !u!33 &528940306177264885
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2782175792003806444}
+ m_Mesh: {fileID: -8023080413318814639, guid: 385fcf3412d956c4ab650555ee5f584d, type: 3}
+--- !u!23 &5156951718673587996
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2782175792003806444}
+ 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: -4372536172839912495, guid: 385fcf3412d956c4ab650555ee5f584d, type: 3}
+ 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!1 &2850323074743059847
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 4429445361403306062}
+ - component: {fileID: 5955221871912472979}
+ - component: {fileID: 8076059722617504667}
+ - component: {fileID: 2071415116134746463}
+ m_Layer: 5
+ m_Name: Canvas
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &4429445361403306062
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ 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_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_LocalEulerAnglesHint: {x: 90, 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: 2.0103, y: 2.7914}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!223 &5955221871912472979
+Canvas:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2850323074743059847}
+ 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 &8076059722617504667
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2850323074743059847}
+ 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: 2000
+ m_PresetInfoIsWorld: 1
+--- !u!114 &2071415116134746463
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2850323074743059847}
+ 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 &3115270704739797056
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 461998205047545604}
+ - component: {fileID: 299007042903040478}
+ - component: {fileID: 968774230685629330}
+ m_Layer: 5
+ m_Name: Description
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &461998205047545604
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3115270704739797056}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: -0.05}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 4429445361403306062}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0.5, y: 0}
+ m_AnchorMax: {x: 0.5, y: 0}
+ m_AnchoredPosition: {x: -0.0151, y: 0.5809}
+ m_SizeDelta: {x: 1.8498, y: 1.1487}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &299007042903040478
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3115270704739797056}
+ m_CullTransparentMesh: 1
+--- !u!114 &968774230685629330
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3115270704739797056}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
+ m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_FontData:
+ m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
+ m_FontSize: 5
+ m_FontStyle: 0
+ m_BestFit: 0
+ m_MinSize: 0
+ m_MaxSize: 300
+ m_Alignment: 4
+ m_AlignByGeometry: 0
+ m_RichText: 1
+ m_HorizontalOverflow: 0
+ m_VerticalOverflow: 0
+ m_LineSpacing: 1
+ m_Text: Description
+--- !u!1 &3172429145652055423
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 602904479329865416}
+ - component: {fileID: 7076931320485618310}
+ - component: {fileID: 1641835144558014658}
+ m_Layer: 5
+ m_Name: Name
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &602904479329865416
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3172429145652055423}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: -0.05}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 4429445361403306062}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0.5, y: 1}
+ m_AnchorMax: {x: 0.5, y: 1}
+ m_AnchoredPosition: {x: -0.0151, y: -0.1959}
+ m_SizeDelta: {x: 1.8498, y: 0.3576}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &7076931320485618310
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3172429145652055423}
+ m_CullTransparentMesh: 1
+--- !u!114 &1641835144558014658
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3172429145652055423}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
+ m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_FontData:
+ m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
+ m_FontSize: 5
+ m_FontStyle: 0
+ m_BestFit: 0
+ m_MinSize: 0
+ m_MaxSize: 300
+ m_Alignment: 4
+ m_AlignByGeometry: 0
+ m_RichText: 1
+ m_HorizontalOverflow: 0
+ m_VerticalOverflow: 0
+ m_LineSpacing: 1
+ m_Text: Name
+--- !u!1 &5614617657564266223
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 6520432709391570604}
+ - component: {fileID: 3884522584561958753}
+ - component: {fileID: 1574770595276204962}
+ m_Layer: 0
+ m_Name: Back
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &6520432709391570604
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ 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_LocalScale: {x: 140, y: 100, z: 100}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 8288806321783590124}
+ m_LocalEulerAnglesHint: {x: -89.98, y: 90, z: 0}
+--- !u!33 &3884522584561958753
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 5614617657564266223}
+ m_Mesh: {fileID: -1119430988441025290, guid: 385fcf3412d956c4ab650555ee5f584d, type: 3}
+--- !u!23 &1574770595276204962
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 5614617657564266223}
+ 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: 830258910468995235, guid: 385fcf3412d956c4ab650555ee5f584d, type: 3}
+ 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!1 &8257975731489021549
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 8288806321783590124}
+ - component: {fileID: 1562880286992207475}
+ m_Layer: 0
+ m_Name: Card
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &8288806321783590124
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8257975731489021549}
+ serializedVersion: 2
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: -9.91, y: 4.53, z: -7.2904015}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children:
+ - {fileID: 2653266799713255234}
+ - {fileID: 6520432709391570604}
+ - {fileID: 4429445361403306062}
+ m_Father: {fileID: 0}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &1562880286992207475
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8257975731489021549}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 84de392c49524b6d8da09ea51c4326c0, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ meshRenderer: {fileID: 0}
+ cardNameText: {fileID: 1641835144558014658}
+ cardDescriptionText: {fileID: 968774230685629330}
diff --git a/Assets/Script/Card/Card.asmdef.meta b/Assets/Prefab/Gameplay/Card.prefab.meta
similarity index 59%
rename from Assets/Script/Card/Card.asmdef.meta
rename to Assets/Prefab/Gameplay/Card.prefab.meta
index b8ecc42..502febc 100644
--- a/Assets/Script/Card/Card.asmdef.meta
+++ b/Assets/Prefab/Gameplay/Card.prefab.meta
@@ -1,6 +1,6 @@
fileFormatVersion: 2
-guid: ec826b79cbc40da479bcc7969404880e
-AssemblyDefinitionImporter:
+guid: dc2a5cfb98ac8c241be10b65fea1e72d
+PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
diff --git a/Assets/Prefab/Gameplay/CombatTrigger.prefab b/Assets/Prefab/Gameplay/CombatTrigger.prefab
new file mode 100644
index 0000000..fc8bb75
--- /dev/null
+++ b/Assets/Prefab/Gameplay/CombatTrigger.prefab
@@ -0,0 +1,70 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &9062941793741291263
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 277803484986371650}
+ - component: {fileID: 2998987062612580781}
+ - component: {fileID: 1849928976878551814}
+ m_Layer: 0
+ m_Name: CombatTrigger
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &277803484986371650
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 9062941793741291263}
+ serializedVersion: 2
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 2.22201, y: 2.724243, z: -81.743225}
+ 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!65 &2998987062612580781
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 9062941793741291263}
+ m_Material: {fileID: 0}
+ m_IncludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_ExcludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_LayerOverridePriority: 0
+ m_IsTrigger: 1
+ m_ProvidesContacts: 0
+ m_Enabled: 1
+ serializedVersion: 3
+ m_Size: {x: 5, y: 5, z: 5}
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!114 &1849928976878551814
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 9062941793741291263}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 2d9265c2645847c2b5197ed2ba181c98, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ combatManager: {fileID: 0}
+ disableAfterTrigger: 1
diff --git a/Assets/Prefab/Gameplay/CombatTrigger.prefab.meta b/Assets/Prefab/Gameplay/CombatTrigger.prefab.meta
new file mode 100644
index 0000000..126811d
--- /dev/null
+++ b/Assets/Prefab/Gameplay/CombatTrigger.prefab.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 08dc103fc56f46345889fd4f2109149b
+PrefabImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Prefab/Gameplay/Enemy.prefab b/Assets/Prefab/Gameplay/Enemy.prefab
new file mode 100644
index 0000000..d0bedd4
--- /dev/null
+++ b/Assets/Prefab/Gameplay/Enemy.prefab
@@ -0,0 +1,156 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &440771197970748831
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 2899656235242765589}
+ - component: {fileID: 5289525519615997488}
+ - component: {fileID: 2216987987592960140}
+ - component: {fileID: 1689477996363267361}
+ m_Layer: 0
+ m_Name: Model
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &2899656235242765589
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 440771197970748831}
+ serializedVersion: 2
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: -0.23, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 798485138132604611}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!33 &5289525519615997488
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 440771197970748831}
+ m_Mesh: {fileID: 10206, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!23 &2216987987592960140
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 440771197970748831}
+ 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!136 &1689477996363267361
+CapsuleCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 440771197970748831}
+ 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: 2
+ m_Radius: 0.5000001
+ m_Height: 2
+ m_Direction: 1
+ m_Center: {x: 0.000000059604645, y: 0, z: -0.00000008940697}
+--- !u!1 &8667473653554082920
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 798485138132604611}
+ - component: {fileID: 1783783211067008165}
+ m_Layer: 0
+ m_Name: Enemy
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &798485138132604611
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8667473653554082920}
+ serializedVersion: 2
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0.97084504, y: 2.06, z: -80.739914}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children:
+ - {fileID: 2899656235242765589}
+ m_Father: {fileID: 0}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &1783783211067008165
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8667473653554082920}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: b5a587a681ae48d6b3a5dcd5a723fd5a, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ enemyName:
+ maxHealth: 100
diff --git a/Assets/Prefab/Gameplay/Enemy.prefab.meta b/Assets/Prefab/Gameplay/Enemy.prefab.meta
new file mode 100644
index 0000000..4886cbe
--- /dev/null
+++ b/Assets/Prefab/Gameplay/Enemy.prefab.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 5cc5fd4f5a07afc4db2fa18398cd214d
+PrefabImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Prefab/Gameplay/Map.meta b/Assets/Prefab/Gameplay/Map.meta
new file mode 100644
index 0000000..b776633
--- /dev/null
+++ b/Assets/Prefab/Gameplay/Map.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 027aff250483ab048b82789dacea5f56
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Prefab/Gameplay/Map/MapFlag.prefab b/Assets/Prefab/Gameplay/Map/MapFlag.prefab
new file mode 100644
index 0000000..187d9a5
--- /dev/null
+++ b/Assets/Prefab/Gameplay/Map/MapFlag.prefab
@@ -0,0 +1,72 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &4085323846378366699
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 3017012476905176277}
+ - component: {fileID: 6899285342125436308}
+ - component: {fileID: 2906861983294161497}
+ m_Layer: 0
+ m_Name: MapFlag
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &3017012476905176277
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 4085323846378366699}
+ serializedVersion: 2
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: -13.6, y: 12.27, z: -72.7}
+ 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 &6899285342125436308
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 4085323846378366699}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 2c3ea88c92cc4d0bb6098983903be7fb, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ FlagName: 1
+ Position: {x: 0, y: 0, z: 0}
+ LeftFlag: {fileID: 0}
+ RightFlag: {fileID: 0}
+--- !u!135 &2906861983294161497
+SphereCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 4085323846378366699}
+ 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_Radius: 1.5
+ m_Center: {x: 0, y: 0, z: 0}
diff --git a/Assets/Prefab/Gameplay/Map/MapFlag.prefab.meta b/Assets/Prefab/Gameplay/Map/MapFlag.prefab.meta
new file mode 100644
index 0000000..a053936
--- /dev/null
+++ b/Assets/Prefab/Gameplay/Map/MapFlag.prefab.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 1cb34f4568333424d8224ec49401b640
+PrefabImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Prefab/Gameplay/Map/MapFlagManager.prefab b/Assets/Prefab/Gameplay/Map/MapFlagManager.prefab
new file mode 100644
index 0000000..30baa5c
--- /dev/null
+++ b/Assets/Prefab/Gameplay/Map/MapFlagManager.prefab
@@ -0,0 +1,47 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &5076912142391002860
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 8279917458776975425}
+ - component: {fileID: 3703449653124942192}
+ m_Layer: 0
+ m_Name: MapFlagManager
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &8279917458776975425
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 5076912142391002860}
+ serializedVersion: 2
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: -15.516351, y: 5.3981843, z: -73.74406}
+ 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 &3703449653124942192
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 5076912142391002860}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: f13be1e244e84e3b93b0b3a4c054cb46, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ StartFlag: {fileID: 0}
diff --git a/Assets/Prefab/Gameplay/Map/MapFlagManager.prefab.meta b/Assets/Prefab/Gameplay/Map/MapFlagManager.prefab.meta
new file mode 100644
index 0000000..be362d9
--- /dev/null
+++ b/Assets/Prefab/Gameplay/Map/MapFlagManager.prefab.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 8b70ed0baea90974b9bec4837fc6b03b
+PrefabImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Prefab/Gameplay/NormalCardBook.prefab b/Assets/Prefab/Gameplay/NormalCardBook.prefab
new file mode 100644
index 0000000..6a17893
--- /dev/null
+++ b/Assets/Prefab/Gameplay/NormalCardBook.prefab
@@ -0,0 +1,121 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &8031699868756389050
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 151205406321954705}
+ - component: {fileID: 5690328992423205384}
+ - component: {fileID: 2534201213536568736}
+ - component: {fileID: 4332638092210716533}
+ - component: {fileID: 5079159534106663042}
+ m_Layer: 0
+ m_Name: NormalCardBook
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &151205406321954705
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8031699868756389050}
+ serializedVersion: 2
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: -1.5440545, y: 0.5792608, z: 1.0709323}
+ m_LocalScale: {x: 1, y: 0.35446, z: 1.004}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!33 &5690328992423205384
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8031699868756389050}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!23 &2534201213536568736
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8031699868756389050}
+ 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 &4332638092210716533
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8031699868756389050}
+ 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 &5079159534106663042
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8031699868756389050}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 68803a8f56734f22a3025f8028fc027f, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ LeftHandPoint: {fileID: 0}
diff --git a/Assets/Prefab/Gameplay/NormalCardBook.prefab.meta b/Assets/Prefab/Gameplay/NormalCardBook.prefab.meta
new file mode 100644
index 0000000..bf04af7
--- /dev/null
+++ b/Assets/Prefab/Gameplay/NormalCardBook.prefab.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 396fdaee2868c534e927e0c2d4da65da
+PrefabImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Prefab/Player.prefab b/Assets/Prefab/Gameplay/Player.prefab
similarity index 91%
rename from Assets/Prefab/Player.prefab
rename to Assets/Prefab/Gameplay/Player.prefab
index 22e053c..093db4d 100644
--- a/Assets/Prefab/Player.prefab
+++ b/Assets/Prefab/Gameplay/Player.prefab
@@ -58,13 +58,13 @@ Transform:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2662940045523497722}
serializedVersion: 2
- m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
- m_LocalPosition: {x: -0.429, y: 0.031, z: 0.503}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: -0.42899996, y: 0.031000018, z: 0.50299835}
m_LocalScale: {x: 0.18677, y: 0.11761, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 2527536271463650684}
- m_Father: {fileID: 7437893023972897012}
+ m_Father: {fileID: 4653338744613549289}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!33 &4279304889447075947
MeshFilter:
@@ -146,12 +146,14 @@ GameObject:
serializedVersion: 6
m_Component:
- component: {fileID: 7437893023972897012}
- - component: {fileID: 2443477651336594919}
+ - component: {fileID: 4244763631639030120}
- component: {fileID: 8268117914458884828}
- component: {fileID: 2963170313432786625}
+ - component: {fileID: 3697820982367928434}
+ - component: {fileID: 1774433545530707224}
m_Layer: 0
m_Name: Player
- m_TagString: Untagged
+ m_TagString: Player
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
@@ -171,24 +173,34 @@ Transform:
m_Children:
- {fileID: 5935896118424760811}
- {fileID: 4653338744613549289}
- - {fileID: 7363529627477262801}
- - {fileID: 9046351536667252851}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
---- !u!114 &2443477651336594919
-MonoBehaviour:
+--- !u!143 &4244763631639030120
+CharacterController:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3550102669167288263}
+ 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
- m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: 4b2523ea21ee4f67b15c7c519c39aead, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- CurrentHealth: 0
- MaxHealth: 0
+ serializedVersion: 3
+ m_Height: 2
+ m_Radius: 0.5
+ m_SlopeLimit: 45
+ m_StepOffset: 0.3
+ m_SkinWidth: 0.08
+ m_MinMoveDistance: 0.001
+ m_Center: {x: 0, y: 0, z: 0}
--- !u!114 &8268117914458884828
MonoBehaviour:
m_ObjectHideFlags: 0
@@ -201,7 +213,14 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 14c86d6b22344680a9eba4de056d3b53, type: 3}
m_Name:
m_EditorClassIdentifier:
- speed: 0
+ speed: 8
+ jumpHeight: 2
+ gravity: -9.81
+ groundCheck: {fileID: 0}
+ groundDistance: 0.4
+ groundMask:
+ serializedVersion: 2
+ m_Bits: 64
--- !u!114 &2963170313432786625
MonoBehaviour:
m_ObjectHideFlags: 0
@@ -222,6 +241,36 @@ MonoBehaviour:
maxDownAngle: 60
enableSmoothing: 0
smoothTime: 0.05
+--- !u!114 &3697820982367928434
+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: d7071907d14f433789ea37a8367b584a, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ cardBookData: {fileID: 11400000, guid: 6884501cc489c254aaf6836e84649588, type: 2}
+--- !u!114 &1774433545530707224
+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: dc03712b5c254b8380471356f3bac151, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ interactRange: 15
+ interactableLayer:
+ serializedVersion: 2
+ m_Bits: 4294967295
+ playerCamera: {fileID: 4390370389971332335}
--- !u!1 &3610935294554348573
GameObject:
m_ObjectHideFlags: 0
@@ -386,13 +435,13 @@ Transform:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4008511358780942599}
serializedVersion: 2
- m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
- m_LocalPosition: {x: 0.44, y: 0.031, z: 0.503}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0.44, y: 0.031000018, z: 0.50299835}
m_LocalScale: {x: 0.18677, y: 0.11761, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 8381260000076097252}
- m_Father: {fileID: 7437893023972897012}
+ m_Father: {fileID: 4653338744613549289}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!33 &4574786412237977465
MeshFilter:
@@ -507,7 +556,6 @@ GameObject:
- component: {fileID: 4653338744613549289}
- component: {fileID: 5270693045650434665}
- component: {fileID: 938550027564383474}
- - component: {fileID: 7436904761217286423}
m_Layer: 0
m_Name: Model
m_TagString: Untagged
@@ -527,7 +575,9 @@ Transform:
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
- m_Children: []
+ m_Children:
+ - {fileID: 7363529627477262801}
+ - {fileID: 9046351536667252851}
m_Father: {fileID: 7437893023972897012}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!33 &5270693045650434665
@@ -580,26 +630,3 @@ MeshRenderer:
m_SortingLayer: 0
m_SortingOrder: 0
m_AdditionalVertexStreams: {fileID: 0}
---- !u!136 &7436904761217286423
-CapsuleCollider:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 6004105694309553016}
- 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: 2
- m_Radius: 0.5
- m_Height: 2
- m_Direction: 1
- m_Center: {x: 0, y: 0, z: 0}
diff --git a/Assets/Prefab/Player.prefab.meta b/Assets/Prefab/Gameplay/Player.prefab.meta
similarity index 100%
rename from Assets/Prefab/Player.prefab.meta
rename to Assets/Prefab/Gameplay/Player.prefab.meta
diff --git a/Assets/Resources.meta b/Assets/Resources.meta
new file mode 100644
index 0000000..13621d6
--- /dev/null
+++ b/Assets/Resources.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: e44b690eb74fc164a92b20ef65881895
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Resources/Configs.meta b/Assets/Resources/Configs.meta
new file mode 100644
index 0000000..b9a00ab
--- /dev/null
+++ b/Assets/Resources/Configs.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 6c8774e7f66a50b479a8c4a3cc8f126c
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Resources/Configs/Card.meta b/Assets/Resources/Configs/Card.meta
new file mode 100644
index 0000000..95b697f
--- /dev/null
+++ b/Assets/Resources/Configs/Card.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: b65b132ec0573cd41af0bda96f0ca026
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Resources/Configs/Card/DamageCard.asset b/Assets/Resources/Configs/Card/DamageCard.asset
new file mode 100644
index 0000000..1c95d71
--- /dev/null
+++ b/Assets/Resources/Configs/Card/DamageCard.asset
@@ -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
+ m_EditorClassIdentifier:
+ CardID: 0
+ CardName: DamageCard
+ CardDescription:
+ CardTexture: {fileID: 0}
+ Effects:
+ - type: 0
+ value: 1
+ target: 1
diff --git a/Assets/Resources/Configs/Card/DamageCard.asset.meta b/Assets/Resources/Configs/Card/DamageCard.asset.meta
new file mode 100644
index 0000000..703fd15
--- /dev/null
+++ b/Assets/Resources/Configs/Card/DamageCard.asset.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 32b7a8321e7abc844b76ed3c5b8919c5
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 11400000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Resources/Configs/CardBook.meta b/Assets/Resources/Configs/CardBook.meta
new file mode 100644
index 0000000..b7452f3
--- /dev/null
+++ b/Assets/Resources/Configs/CardBook.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 6a24496b0a5ec3548a474be1fd42b6da
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Resources/Configs/CardBook/NormalCardBook.asset b/Assets/Resources/Configs/CardBook/NormalCardBook.asset
new file mode 100644
index 0000000..eb68ef4
--- /dev/null
+++ b/Assets/Resources/Configs/CardBook/NormalCardBook.asset
@@ -0,0 +1,17 @@
+%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: 54f1f8ff48b84542962110e7a9851917, type: 3}
+ m_Name: NormalCardBook
+ m_EditorClassIdentifier:
+ SlotCount: 24
+ SpareCount: 6
+ MaxLoopCount: 1
diff --git a/Assets/Resources/Configs/CardBook/NormalCardBook.asset.meta b/Assets/Resources/Configs/CardBook/NormalCardBook.asset.meta
new file mode 100644
index 0000000..292e7b7
--- /dev/null
+++ b/Assets/Resources/Configs/CardBook/NormalCardBook.asset.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 6884501cc489c254aaf6836e84649588
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 11400000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Resources/DOTweenSettings.asset b/Assets/Resources/DOTweenSettings.asset
new file mode 100644
index 0000000..62ebbaf
--- /dev/null
+++ b/Assets/Resources/DOTweenSettings.asset
@@ -0,0 +1,54 @@
+%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: 16995157, guid: a811bde74b26b53498b4f6d872b09b6d, type: 3}
+ m_Name: DOTweenSettings
+ m_EditorClassIdentifier:
+ useSafeMode: 1
+ safeModeOptions:
+ logBehaviour: 2
+ nestedTweenFailureBehaviour: 0
+ timeScale: 1
+ unscaledTimeScale: 1
+ useSmoothDeltaTime: 0
+ maxSmoothUnscaledTime: 0.15
+ rewindCallbackMode: 0
+ showUnityEditorReport: 0
+ logBehaviour: 0
+ drawGizmos: 1
+ defaultRecyclable: 0
+ defaultAutoPlay: 3
+ defaultUpdateType: 0
+ defaultTimeScaleIndependent: 0
+ defaultEaseType: 6
+ defaultEaseOvershootOrAmplitude: 1.70158
+ defaultEasePeriod: 0
+ defaultAutoKill: 1
+ defaultLoopType: 0
+ debugMode: 0
+ debugStoreTargetId: 1
+ showPreviewPanel: 1
+ storeSettingsLocation: 0
+ modules:
+ showPanel: 0
+ audioEnabled: 1
+ physicsEnabled: 1
+ physics2DEnabled: 1
+ spriteEnabled: 1
+ uiEnabled: 1
+ textMeshProEnabled: 0
+ tk2DEnabled: 0
+ deAudioEnabled: 0
+ deUnityExtendedEnabled: 0
+ epoOutlineEnabled: 0
+ createASMDEF: 0
+ showPlayingTweens: 0
+ showPausedTweens: 0
diff --git a/Assets/Resources/DOTweenSettings.asset.meta b/Assets/Resources/DOTweenSettings.asset.meta
new file mode 100644
index 0000000..67deaa9
--- /dev/null
+++ b/Assets/Resources/DOTweenSettings.asset.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 289cc4f517db2774d9416a8aef60df0f
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 11400000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scenes/Level1.unity b/Assets/Scenes/Level1.unity
index c2f4bf6..c113e9c 100644
--- a/Assets/Scenes/Level1.unity
+++ b/Assets/Scenes/Level1.unity
@@ -122,7 +122,7 @@ NavMeshSettings:
debug:
m_Flags: 0
m_NavMeshData: {fileID: 0}
---- !u!1 &330585543
+--- !u!1 &370096296
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
@@ -130,135 +130,171 @@ GameObject:
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- - component: {fileID: 330585546}
- - component: {fileID: 330585545}
- - component: {fileID: 330585544}
- - component: {fileID: 330585547}
+ - component: {fileID: 370096300}
+ - component: {fileID: 370096299}
+ - component: {fileID: 370096298}
+ - component: {fileID: 370096297}
m_Layer: 0
- m_Name: Main Camera
- m_TagString: MainCamera
+ m_Name: Cube
+ m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
---- !u!81 &330585544
-AudioListener:
+--- !u!65 &370096297
+BoxCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 330585543}
+ m_GameObject: {fileID: 370096296}
+ 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
---- !u!20 &330585545
-Camera:
+ serializedVersion: 3
+ m_Size: {x: 1, y: 1, z: 1}
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!23 &370096298
+MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 330585543}
+ m_GameObject: {fileID: 370096296}
m_Enabled: 1
- serializedVersion: 2
- m_ClearFlags: 1
- m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, 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: 0
- orthographic size: 5
- m_Depth: -1
- 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 &330585546
+ 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!33 &370096299
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 370096296}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!4 &370096300
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 330585543}
+ m_GameObject: {fileID: 370096296}
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_LocalRotation: {x: -0, y: -0.34011272, z: -0, w: 0.94038475}
+ m_LocalPosition: {x: -5.1, y: -0.49327302, z: -3.6}
+ m_LocalScale: {x: 1.9331503, y: 5, z: 15.9655}
m_ConstrainProportionsScale: 0
m_Children: []
- m_Father: {fileID: 0}
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
---- !u!114 &330585547
+ m_Father: {fileID: 2021089518}
+ m_LocalEulerAnglesHint: {x: 0, y: -39.767, z: 0}
+--- !u!1 &382458518
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 382458521}
+ - component: {fileID: 382458520}
+ - component: {fileID: 382458519}
+ m_Layer: 0
+ m_Name: EventSystem
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &382458519
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 330585543}
+ m_GameObject: {fileID: 382458518}
m_Enabled: 1
m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: a79441f348de89743a2939f4d699eac1, type: 3}
+ m_Script: {fileID: 11500000, guid: 4f231c4fb786f3946a6b90b886c48677, 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: 1
- 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
+ m_SendPointerHoverToParent: 1
+ m_HorizontalAxis: Horizontal
+ m_VerticalAxis: Vertical
+ m_SubmitButton: Submit
+ m_CancelButton: Cancel
+ m_InputActionsPerSecond: 10
+ m_RepeatDelay: 0.5
+ m_ForceModuleActive: 0
+--- !u!114 &382458520
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 382458518}
+ 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 &382458521
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 382458518}
+ 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 &410087039
GameObject:
m_ObjectHideFlags: 0
@@ -377,6 +413,216 @@ MonoBehaviour:
m_LightCookieSize: {x: 1, y: 1}
m_LightCookieOffset: {x: 0, y: 0}
m_SoftShadowQuality: 1
+--- !u!1 &856668955
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 856668956}
+ - component: {fileID: 856668959}
+ - component: {fileID: 856668958}
+ - component: {fileID: 856668957}
+ m_Layer: 0
+ m_Name: Cube (3)
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &856668956
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 856668955}
+ serializedVersion: 2
+ m_LocalRotation: {x: -0, y: -0.12691997, z: -0, w: 0.991913}
+ m_LocalPosition: {x: 7, y: 1.9, z: 5}
+ m_LocalScale: {x: 1.9331503, y: 5, z: 5}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 2021089518}
+ m_LocalEulerAnglesHint: {x: 0, y: -14.583, z: 0}
+--- !u!65 &856668957
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 856668955}
+ 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!23 &856668958
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 856668955}
+ 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!33 &856668959
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 856668955}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!1 &1234629634
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1234629635}
+ - component: {fileID: 1234629638}
+ - component: {fileID: 1234629637}
+ - component: {fileID: 1234629636}
+ m_Layer: 0
+ m_Name: Cube (1)
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1234629635
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1234629634}
+ serializedVersion: 2
+ m_LocalRotation: {x: -0, y: 0.32946298, z: -0, w: 0.9441685}
+ m_LocalPosition: {x: 4.7, y: -0.49327302, z: -4.5}
+ m_LocalScale: {x: 1.9331502, y: 5, z: 15.503813}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 2021089518}
+ m_LocalEulerAnglesHint: {x: 0, y: 38.472, z: 0}
+--- !u!65 &1234629636
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1234629634}
+ 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!23 &1234629637
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1234629634}
+ 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!33 &1234629638
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1234629634}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
--- !u!1 &1274249800
GameObject:
m_ObjectHideFlags: 0
@@ -389,8 +635,8 @@ GameObject:
- component: {fileID: 1274249803}
- component: {fileID: 1274249802}
- component: {fileID: 1274249801}
- m_Layer: 0
- m_Name: Plane
+ m_Layer: 6
+ m_Name: Ground
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
@@ -478,15 +724,689 @@ Transform:
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: -0.097626016, y: 0.17689009, z: -0.20200007}
- m_LocalScale: {x: 1, y: 1, z: 1}
+ m_LocalScale: {x: 10, y: 1, z: 20}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1304919964
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1304919965}
+ - component: {fileID: 1304919968}
+ - component: {fileID: 1304919967}
+ - component: {fileID: 1304919966}
+ m_Layer: 0
+ m_Name: Cube (2)
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1304919965
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1304919964}
+ serializedVersion: 2
+ m_LocalRotation: {x: -0, y: -0.61563027, z: -0, w: 0.7880352}
+ m_LocalPosition: {x: -11.4, y: -0.49327302, z: 2.2999992}
+ m_LocalScale: {x: 1.9331503, y: 5, z: 5}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 2021089518}
+ m_LocalEulerAnglesHint: {x: 0, y: -75.995, z: 0}
+--- !u!65 &1304919966
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1304919964}
+ 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!23 &1304919967
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1304919964}
+ 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!33 &1304919968
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1304919964}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!1 &1553269948
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1553269949}
+ - component: {fileID: 1553269952}
+ - component: {fileID: 1553269951}
+ - component: {fileID: 1553269950}
+ m_Layer: 0
+ m_Name: Cube (5)
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1553269949
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1553269948}
+ serializedVersion: 2
+ m_LocalRotation: {x: -0, y: -0.61563027, z: -0, w: 0.7880352}
+ m_LocalPosition: {x: 12.5, y: -0.49327302, z: 17}
+ m_LocalScale: {x: 1.9331503, y: 5, z: 5}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 2021089518}
+ m_LocalEulerAnglesHint: {x: 0, y: -75.995, z: 0}
+--- !u!65 &1553269950
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1553269948}
+ 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!23 &1553269951
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1553269948}
+ 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!33 &1553269952
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1553269948}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!1 &1883037177
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1883037178}
+ - component: {fileID: 1883037181}
+ - component: {fileID: 1883037180}
+ - component: {fileID: 1883037179}
+ m_Layer: 0
+ m_Name: Cube (4)
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1883037178
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1883037177}
+ serializedVersion: 2
+ m_LocalRotation: {x: -0, y: 0.010316122, z: -0, w: 0.99994683}
+ m_LocalPosition: {x: -11.4, y: -0.49327302, z: 13.7}
+ m_LocalScale: {x: 1.9331503, y: 5, z: 21.1215}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 2021089518}
+ m_LocalEulerAnglesHint: {x: 0, y: 1.182, z: 0}
+--- !u!65 &1883037179
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1883037177}
+ 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!23 &1883037180
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1883037177}
+ 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!33 &1883037181
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1883037177}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!114 &1919817224 stripped
+MonoBehaviour:
+ m_CorrespondingSourceObject: {fileID: 1783783211067008165, guid: 5cc5fd4f5a07afc4db2fa18398cd214d,
+ type: 3}
+ m_PrefabInstance: {fileID: 8808393704070049945}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 0}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: b5a587a681ae48d6b3a5dcd5a723fd5a, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+--- !u!114 &1928491248 stripped
+MonoBehaviour:
+ m_CorrespondingSourceObject: {fileID: 3697820982367928434, guid: 667aedb0d3f8c9d469819c9ff2b4472b,
+ type: 3}
+ m_PrefabInstance: {fileID: 7020889523296792185}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 0}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: d7071907d14f433789ea37a8367b584a, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+--- !u!1001 &1969328118
+PrefabInstance:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ serializedVersion: 3
+ m_TransformParent: {fileID: 0}
+ m_Modifications:
+ - target: {fileID: 8257975731489021549, guid: dc2a5cfb98ac8c241be10b65fea1e72d,
+ type: 3}
+ propertyPath: m_Name
+ value: Card
+ objectReference: {fileID: 0}
+ - target: {fileID: 8288806321783590124, guid: dc2a5cfb98ac8c241be10b65fea1e72d,
+ type: 3}
+ propertyPath: m_LocalPosition.x
+ value: -6.374407
+ objectReference: {fileID: 0}
+ - target: {fileID: 8288806321783590124, guid: dc2a5cfb98ac8c241be10b65fea1e72d,
+ type: 3}
+ propertyPath: m_LocalPosition.y
+ value: 0.18205953
+ objectReference: {fileID: 0}
+ - target: {fileID: 8288806321783590124, guid: dc2a5cfb98ac8c241be10b65fea1e72d,
+ type: 3}
+ propertyPath: m_LocalPosition.z
+ value: -86.32
+ objectReference: {fileID: 0}
+ - target: {fileID: 8288806321783590124, guid: dc2a5cfb98ac8c241be10b65fea1e72d,
+ type: 3}
+ propertyPath: m_LocalRotation.w
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 8288806321783590124, guid: dc2a5cfb98ac8c241be10b65fea1e72d,
+ type: 3}
+ propertyPath: m_LocalRotation.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 8288806321783590124, guid: dc2a5cfb98ac8c241be10b65fea1e72d,
+ type: 3}
+ propertyPath: m_LocalRotation.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 8288806321783590124, guid: dc2a5cfb98ac8c241be10b65fea1e72d,
+ type: 3}
+ propertyPath: m_LocalRotation.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 8288806321783590124, guid: dc2a5cfb98ac8c241be10b65fea1e72d,
+ type: 3}
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 8288806321783590124, guid: dc2a5cfb98ac8c241be10b65fea1e72d,
+ type: 3}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 8288806321783590124, guid: dc2a5cfb98ac8c241be10b65fea1e72d,
+ type: 3}
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_RemovedGameObjects: []
+ m_AddedGameObjects: []
+ m_AddedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: dc2a5cfb98ac8c241be10b65fea1e72d, type: 3}
+--- !u!1 &2021089517
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 2021089518}
+ m_Layer: 0
+ m_Name: Scene
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &2021089518
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2021089517}
+ serializedVersion: 2
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: -1.732664, y: 3.233273, z: -64.35174}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children:
+ - {fileID: 370096300}
+ - {fileID: 1304919965}
+ - {fileID: 856668956}
+ - {fileID: 1883037178}
+ - {fileID: 1553269949}
+ - {fileID: 1234629635}
+ m_Father: {fileID: 0}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1001 &4976374363246253691
+PrefabInstance:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ serializedVersion: 3
+ m_TransformParent: {fileID: 0}
+ m_Modifications:
+ - target: {fileID: 277803484986371650, guid: 08dc103fc56f46345889fd4f2109149b,
+ type: 3}
+ propertyPath: m_LocalPosition.x
+ value: 2.22201
+ objectReference: {fileID: 0}
+ - target: {fileID: 277803484986371650, guid: 08dc103fc56f46345889fd4f2109149b,
+ type: 3}
+ propertyPath: m_LocalPosition.y
+ value: 2.724243
+ objectReference: {fileID: 0}
+ - target: {fileID: 277803484986371650, guid: 08dc103fc56f46345889fd4f2109149b,
+ type: 3}
+ propertyPath: m_LocalPosition.z
+ value: -81.743225
+ objectReference: {fileID: 0}
+ - target: {fileID: 277803484986371650, guid: 08dc103fc56f46345889fd4f2109149b,
+ type: 3}
+ propertyPath: m_LocalRotation.w
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 277803484986371650, guid: 08dc103fc56f46345889fd4f2109149b,
+ type: 3}
+ propertyPath: m_LocalRotation.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 277803484986371650, guid: 08dc103fc56f46345889fd4f2109149b,
+ type: 3}
+ propertyPath: m_LocalRotation.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 277803484986371650, guid: 08dc103fc56f46345889fd4f2109149b,
+ type: 3}
+ propertyPath: m_LocalRotation.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 277803484986371650, guid: 08dc103fc56f46345889fd4f2109149b,
+ type: 3}
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 277803484986371650, guid: 08dc103fc56f46345889fd4f2109149b,
+ type: 3}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 277803484986371650, guid: 08dc103fc56f46345889fd4f2109149b,
+ type: 3}
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 1849928976878551814, guid: 08dc103fc56f46345889fd4f2109149b,
+ type: 3}
+ propertyPath: enemy
+ value:
+ objectReference: {fileID: 1919817224}
+ - target: {fileID: 1849928976878551814, guid: 08dc103fc56f46345889fd4f2109149b,
+ type: 3}
+ propertyPath: player
+ value:
+ objectReference: {fileID: 1928491248}
+ - target: {fileID: 9062941793741291263, guid: 08dc103fc56f46345889fd4f2109149b,
+ type: 3}
+ propertyPath: m_Name
+ value: CombatTrigger
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_RemovedGameObjects: []
+ m_AddedGameObjects: []
+ m_AddedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: 08dc103fc56f46345889fd4f2109149b, type: 3}
+--- !u!1001 &7020889523296792185
+PrefabInstance:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ serializedVersion: 3
+ m_TransformParent: {fileID: 0}
+ m_Modifications:
+ - target: {fileID: 3550102669167288263, guid: 667aedb0d3f8c9d469819c9ff2b4472b,
+ type: 3}
+ propertyPath: m_Name
+ value: Player
+ objectReference: {fileID: 0}
+ - target: {fileID: 7437893023972897012, guid: 667aedb0d3f8c9d469819c9ff2b4472b,
+ type: 3}
+ propertyPath: m_LocalPosition.x
+ value: -0.21430849
+ objectReference: {fileID: 0}
+ - target: {fileID: 7437893023972897012, guid: 667aedb0d3f8c9d469819c9ff2b4472b,
+ type: 3}
+ propertyPath: m_LocalPosition.y
+ value: 1.3
+ objectReference: {fileID: 0}
+ - target: {fileID: 7437893023972897012, guid: 667aedb0d3f8c9d469819c9ff2b4472b,
+ type: 3}
+ propertyPath: m_LocalPosition.z
+ value: -86.23
+ objectReference: {fileID: 0}
+ - target: {fileID: 7437893023972897012, guid: 667aedb0d3f8c9d469819c9ff2b4472b,
+ type: 3}
+ propertyPath: m_LocalRotation.w
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 7437893023972897012, guid: 667aedb0d3f8c9d469819c9ff2b4472b,
+ type: 3}
+ propertyPath: m_LocalRotation.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 7437893023972897012, guid: 667aedb0d3f8c9d469819c9ff2b4472b,
+ type: 3}
+ propertyPath: m_LocalRotation.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 7437893023972897012, guid: 667aedb0d3f8c9d469819c9ff2b4472b,
+ type: 3}
+ propertyPath: m_LocalRotation.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 7437893023972897012, guid: 667aedb0d3f8c9d469819c9ff2b4472b,
+ type: 3}
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 7437893023972897012, guid: 667aedb0d3f8c9d469819c9ff2b4472b,
+ type: 3}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 7437893023972897012, guid: 667aedb0d3f8c9d469819c9ff2b4472b,
+ type: 3}
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_RemovedGameObjects: []
+ m_AddedGameObjects: []
+ m_AddedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: 667aedb0d3f8c9d469819c9ff2b4472b, type: 3}
+--- !u!1001 &8808393704070049945
+PrefabInstance:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ serializedVersion: 3
+ m_TransformParent: {fileID: 0}
+ m_Modifications:
+ - target: {fileID: 798485138132604611, guid: 5cc5fd4f5a07afc4db2fa18398cd214d,
+ type: 3}
+ propertyPath: m_LocalPosition.x
+ value: 1.22
+ objectReference: {fileID: 0}
+ - target: {fileID: 798485138132604611, guid: 5cc5fd4f5a07afc4db2fa18398cd214d,
+ type: 3}
+ propertyPath: m_LocalPosition.y
+ value: 1.83
+ objectReference: {fileID: 0}
+ - target: {fileID: 798485138132604611, guid: 5cc5fd4f5a07afc4db2fa18398cd214d,
+ type: 3}
+ propertyPath: m_LocalPosition.z
+ value: -76.89
+ objectReference: {fileID: 0}
+ - target: {fileID: 798485138132604611, guid: 5cc5fd4f5a07afc4db2fa18398cd214d,
+ type: 3}
+ propertyPath: m_LocalRotation.w
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 798485138132604611, guid: 5cc5fd4f5a07afc4db2fa18398cd214d,
+ type: 3}
+ propertyPath: m_LocalRotation.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 798485138132604611, guid: 5cc5fd4f5a07afc4db2fa18398cd214d,
+ type: 3}
+ propertyPath: m_LocalRotation.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 798485138132604611, guid: 5cc5fd4f5a07afc4db2fa18398cd214d,
+ type: 3}
+ propertyPath: m_LocalRotation.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 798485138132604611, guid: 5cc5fd4f5a07afc4db2fa18398cd214d,
+ type: 3}
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 798485138132604611, guid: 5cc5fd4f5a07afc4db2fa18398cd214d,
+ type: 3}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 798485138132604611, guid: 5cc5fd4f5a07afc4db2fa18398cd214d,
+ type: 3}
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 1783783211067008165, guid: 5cc5fd4f5a07afc4db2fa18398cd214d,
+ type: 3}
+ propertyPath: enemyName
+ value: aaa
+ objectReference: {fileID: 0}
+ - target: {fileID: 1783783211067008165, guid: 5cc5fd4f5a07afc4db2fa18398cd214d,
+ type: 3}
+ propertyPath: cardBookData
+ value:
+ objectReference: {fileID: 11400000, guid: 6884501cc489c254aaf6836e84649588,
+ type: 2}
+ - target: {fileID: 8667473653554082920, guid: 5cc5fd4f5a07afc4db2fa18398cd214d,
+ type: 3}
+ propertyPath: m_Name
+ value: Enemy
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_RemovedGameObjects: []
+ m_AddedGameObjects: []
+ m_AddedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: 5cc5fd4f5a07afc4db2fa18398cd214d, type: 3}
--- !u!1660057539 &9223372036854775807
SceneRoots:
m_ObjectHideFlags: 0
m_Roots:
- - {fileID: 330585546}
- {fileID: 410087041}
- {fileID: 1274249804}
+ - {fileID: 7020889523296792185}
+ - {fileID: 2021089518}
+ - {fileID: 4976374363246253691}
+ - {fileID: 8808393704070049945}
+ - {fileID: 1969328118}
+ - {fileID: 382458521}
diff --git a/Assets/Scenes/UIScene.unity b/Assets/Scenes/UIScene.unity
index 6b8ab86..46d74f4 100644
--- a/Assets/Scenes/UIScene.unity
+++ b/Assets/Scenes/UIScene.unity
@@ -122,7 +122,7 @@ NavMeshSettings:
debug:
m_Flags: 0
m_NavMeshData: {fileID: 0}
---- !u!1 &123334584
+--- !u!1 &40417853
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
@@ -130,187 +130,471 @@ GameObject:
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- - component: {fileID: 123334587}
- - component: {fileID: 123334586}
- - component: {fileID: 123334585}
+ - component: {fileID: 40417856}
+ - component: {fileID: 40417855}
+ - component: {fileID: 40417854}
m_Layer: 0
- m_Name: Main Camera
- m_TagString: MainCamera
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!81 &123334585
-AudioListener:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 123334584}
- m_Enabled: 1
---- !u!20 &123334586
-Camera:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 123334584}
- m_Enabled: 1
- serializedVersion: 2
- m_ClearFlags: 1
- m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, 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: 0
- orthographic size: 5
- m_Depth: -1
- 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 &123334587
-Transform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 123334584}
- 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 &551973676
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 551973678}
- - component: {fileID: 551973677}
- m_Layer: 0
- m_Name: Directional Light
+ m_Name: EventSystem
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
---- !u!108 &551973677
-Light:
+--- !u!114 &40417854
+MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 551973676}
+ m_GameObject: {fileID: 40417853}
m_Enabled: 1
- serializedVersion: 10
- m_Type: 1
- m_Shape: 0
- m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1}
- m_Intensity: 1
- m_Range: 10
- m_SpotAngle: 30
- m_InnerSpotAngle: 21.80208
- m_CookieSize: 10
- m_Shadows:
- m_Type: 2
- m_Resolution: -1
- m_CustomResolution: -1
- m_Strength: 1
- m_Bias: 0.05
- m_NormalBias: 0.4
- m_NearPlane: 0.2
- m_CullingMatrixOverride:
- e00: 1
- e01: 0
- e02: 0
- e03: 0
- e10: 0
- e11: 1
- e12: 0
- e13: 0
- e20: 0
- e21: 0
- e22: 1
- e23: 0
- e30: 0
- e31: 0
- e32: 0
- e33: 1
- m_UseCullingMatrixOverride: 0
- m_Cookie: {fileID: 0}
- m_DrawHalo: 0
- m_Flare: {fileID: 0}
- m_RenderMode: 0
- m_CullingMask:
- serializedVersion: 2
- m_Bits: 4294967295
- m_RenderingLayerMask: 1
- m_Lightmapping: 4
- m_LightShadowCasterMode: 0
- m_AreaSize: {x: 1, y: 1}
- m_BounceIntensity: 1
- m_ColorTemperature: 6570
- m_UseColorTemperature: 0
- m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0}
- m_UseBoundingSphereOverride: 0
- m_UseViewFrustumForShadowCasterCull: 1
- m_ShadowRadius: 0
- m_ShadowAngle: 0
---- !u!4 &551973678
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 4f231c4fb786f3946a6b90b886c48677, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_SendPointerHoverToParent: 1
+ m_HorizontalAxis: Horizontal
+ m_VerticalAxis: Vertical
+ m_SubmitButton: Submit
+ m_CancelButton: Cancel
+ m_InputActionsPerSecond: 10
+ m_RepeatDelay: 0.5
+ m_ForceModuleActive: 0
+--- !u!114 &40417855
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 40417853}
+ 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 &40417856
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 551973676}
+ m_GameObject: {fileID: 40417853}
serializedVersion: 2
- m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261}
- m_LocalPosition: {x: 0, y: 3, z: 0}
+ 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: 50, y: -30, z: 0}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1067459524
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1067459529}
+ - component: {fileID: 1067459528}
+ - component: {fileID: 1067459527}
+ - component: {fileID: 1067459526}
+ - component: {fileID: 1067459525}
+ m_Layer: 5
+ m_Name: PopUp
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &1067459525
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1067459524}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 7a5cdded3cae71848bcb0e7ca91e4570, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ layer: 2
+--- !u!114 &1067459526
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1067459524}
+ 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 &1067459527
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1067459524}
+ 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 &1067459528
+Canvas:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1067459524}
+ 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: 0
+ m_UpdateRectTransformForStandalone: 0
+ m_SortingLayerID: 0
+ m_SortingOrder: 0
+ m_TargetDisplay: 0
+--- !u!224 &1067459529
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1067459524}
+ 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: 1082771939}
+ 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 &1082771938
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1082771939}
+ - component: {fileID: 1082771941}
+ - component: {fileID: 1082771940}
+ m_Layer: 5
+ m_Name: CirclePoint
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &1082771939
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1082771938}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 0.13, y: 0.13, z: 0.13}
+ m_ConstrainProportionsScale: 1
+ m_Children: []
+ m_Father: {fileID: 1067459529}
+ 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 &1082771940
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1082771938}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 0.8760108, g: 0.5987504, b: 0.15465952, 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: 10913, guid: 0000000000000000f000000000000000, type: 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 &1082771941
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1082771938}
+ m_CullTransparentMesh: 1
+--- !u!1 &1200522801
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1200522802}
+ - component: {fileID: 1200522805}
+ - component: {fileID: 1200522804}
+ - component: {fileID: 1200522803}
+ m_Layer: 5
+ m_Name: Text (Legacy)
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &1200522802
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1200522801}
+ 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: 1780593834}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0}
+ m_AnchorMax: {x: 0, y: 0}
+ m_AnchoredPosition: {x: 179, y: 58}
+ m_SizeDelta: {x: 299.6684, y: 81.36191}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &1200522803
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1200522801}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: a450025fc367419faaf7481787bfac88, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ IsOpenOnFirstLoad: 1
+ hpText: {fileID: 1200522804}
+--- !u!114 &1200522804
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1200522801}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
+ m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_FontData:
+ m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
+ m_FontSize: 50
+ m_FontStyle: 0
+ m_BestFit: 0
+ m_MinSize: 5
+ m_MaxSize: 50
+ m_Alignment: 3
+ m_AlignByGeometry: 0
+ m_RichText: 1
+ m_HorizontalOverflow: 0
+ m_VerticalOverflow: 0
+ m_LineSpacing: 1
+ m_Text: HP
+--- !u!222 &1200522805
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1200522801}
+ m_CullTransparentMesh: 1
+--- !u!1 &1780593830
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1780593834}
+ - component: {fileID: 1780593833}
+ - component: {fileID: 1780593832}
+ - component: {fileID: 1780593831}
+ - component: {fileID: 1780593835}
+ m_Layer: 5
+ m_Name: Normal
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &1780593831
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1780593830}
+ 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 &1780593832
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1780593830}
+ 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 &1780593833
+Canvas:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1780593830}
+ 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: 0
+ m_UpdateRectTransformForStandalone: 0
+ m_SortingLayerID: 0
+ m_SortingOrder: 0
+ m_TargetDisplay: 0
+--- !u!224 &1780593834
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1780593830}
+ 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: 1200522802}
+ 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!114 &1780593835
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1780593830}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 7a5cdded3cae71848bcb0e7ca91e4570, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ layer: 1
--- !u!1660057539 &9223372036854775807
SceneRoots:
m_ObjectHideFlags: 0
m_Roots:
- - {fileID: 123334587}
- - {fileID: 551973678}
+ - {fileID: 1780593834}
+ - {fileID: 1067459529}
+ - {fileID: 40417856}
diff --git a/Assets/Script/Card/CardEffect/CardContext.cs b/Assets/Script/Card/CardEffect/CardContext.cs
deleted file mode 100644
index 8f4e2d9..0000000
--- a/Assets/Script/Card/CardEffect/CardContext.cs
+++ /dev/null
@@ -1,10 +0,0 @@
-using UnityEngine;
-using Share;
-namespace Card
-{
- public class CardContext
- {
- public ICharacter Player;
- public ICharacter Target;
- }
-}
\ No newline at end of file
diff --git a/Assets/Script/Card/CardEffect/EffectHandler.cs b/Assets/Script/Card/CardEffect/EffectHandler.cs
deleted file mode 100644
index dcdd04c..0000000
--- a/Assets/Script/Card/CardEffect/EffectHandler.cs
+++ /dev/null
@@ -1,33 +0,0 @@
-using UnityEngine;
-
-namespace Card
-{
- public static class EffectHandler
- {
- public static void Execute(EffectData effect, CardContext context)
- {
- switch (effect.type)
- {
- case EffectType.Damage:
- context.Target.TakeDamage(effect.value);
- break;
-
- case EffectType.Heal:
- context.Target.Heal(effect.value);
- break;
-
- case EffectType.DrawCard:
- context.Player.Draw(effect.value);
- break;
-
- case EffectType.AddBuff:
- //TODO:context.Target.AddBuff(effect.value);
- break;
-
- default:
- Debug.LogWarning($"未知效果类型: {effect.type}");
- break;
- }
- }
- }
-}
\ No newline at end of file
diff --git a/Assets/Script/Core/Core.asmdef b/Assets/Script/Core/Core.asmdef
index 3d51b87..22fbf72 100644
--- a/Assets/Script/Core/Core.asmdef
+++ b/Assets/Script/Core/Core.asmdef
@@ -2,7 +2,6 @@
"name": "Core",
"rootNamespace": "",
"references": [
- "GUID:9e4105fe56ff4b1789a1683a3c08d507",
"GUID:75469ad4d38634e559750d17036d5f7c"
],
"includePlatforms": [],
diff --git a/Assets/Script/Core/Interface.meta b/Assets/Script/Core/Interface.meta
new file mode 100644
index 0000000..e09a182
--- /dev/null
+++ b/Assets/Script/Core/Interface.meta
@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: f02de2f72561440b862be76a712a53a6
+timeCreated: 1760448092
\ No newline at end of file
diff --git a/Assets/Script/Core/Interface/IInputManager.cs b/Assets/Script/Core/Interface/IInputManager.cs
new file mode 100644
index 0000000..fc0e920
--- /dev/null
+++ b/Assets/Script/Core/Interface/IInputManager.cs
@@ -0,0 +1,16 @@
+using UnityEngine;
+
+namespace Core
+{
+ public interface IInputManager
+ {
+ public Vector2 Move { get; }
+ public Vector2 Look { get; }
+ public bool JumpPressed { get; }
+ public bool PausePressed { get; }
+ public bool InteractPressed { get; }
+ public void SetCursorState(bool visible, CursorLockMode lockMode);
+ public void SetInputForLook(bool enabled);
+ public void SetInputForMove(bool enabled);
+ }
+}
\ No newline at end of file
diff --git a/Assets/Script/Core/Interface/IInputManager.cs.meta b/Assets/Script/Core/Interface/IInputManager.cs.meta
new file mode 100644
index 0000000..eb3ecef
--- /dev/null
+++ b/Assets/Script/Core/Interface/IInputManager.cs.meta
@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: b077e0f59a474f5a981770fae92ed42f
+timeCreated: 1760447509
\ No newline at end of file
diff --git a/Assets/Script/Core/UI/UIManager.cs b/Assets/Script/Core/UI/UIManager.cs
index cb90954..2670dab 100644
--- a/Assets/Script/Core/UI/UIManager.cs
+++ b/Assets/Script/Core/UI/UIManager.cs
@@ -25,6 +25,13 @@ namespace Core
private Dictionary layerRoots = new Dictionary();
private Dictionary openedUIs = new Dictionary();
+
+ private IInputManager inputManager;
+
+ public void RegisterInputManager(IInputManager inputMgr)
+ {
+ inputManager = inputMgr;
+ }
public void RegisterLayer(UILayer layer, Transform root)
{
@@ -122,18 +129,19 @@ namespace Core
private void UpdateCursorState()
{
+ if(inputManager == null) return;
bool shouldLockCursor = !IsHasNonBackgroundUIActive; //&& !isInMainMenu; // 仅在没有非Background UI且不在主菜单时锁定鼠标
if (shouldLockCursor)
{
- InputManager.Instance.SetCursorState(false, CursorLockMode.Locked);
+ inputManager.SetCursorState(false, CursorLockMode.Locked);
}
else
{
- InputManager.Instance.SetCursorState(true, CursorLockMode.None);
+ inputManager.SetCursorState(true, CursorLockMode.None);
}
- InputManager.Instance.SetInputForLook(shouldLockCursor);
- InputManager.Instance.SetInputForMove(shouldLockCursor);
+ inputManager.SetInputForLook(shouldLockCursor);
+ inputManager.SetInputForMove(shouldLockCursor);
}
}
}
\ No newline at end of file
diff --git a/Assets/Script/Gameplay.meta b/Assets/Script/Gameplay.meta
new file mode 100644
index 0000000..2c27a89
--- /dev/null
+++ b/Assets/Script/Gameplay.meta
@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 6da45fd756c6481b8c0cffce4915e971
+timeCreated: 1760444989
\ No newline at end of file
diff --git a/Assets/Script/Card.meta b/Assets/Script/Gameplay/Card.meta
similarity index 100%
rename from Assets/Script/Card.meta
rename to Assets/Script/Gameplay/Card.meta
diff --git a/Assets/Script/Card/Card.cs b/Assets/Script/Gameplay/Card/Card.cs
similarity index 97%
rename from Assets/Script/Card/Card.cs
rename to Assets/Script/Gameplay/Card/Card.cs
index cb8bed4..ce092ac 100644
--- a/Assets/Script/Card/Card.cs
+++ b/Assets/Script/Gameplay/Card/Card.cs
@@ -1,6 +1,6 @@
using UnityEngine;
-namespace Card
+namespace Gameplay
{
public class Card
{
diff --git a/Assets/Script/Card/Card.cs.meta b/Assets/Script/Gameplay/Card/Card.cs.meta
similarity index 100%
rename from Assets/Script/Card/Card.cs.meta
rename to Assets/Script/Gameplay/Card/Card.cs.meta
diff --git a/Assets/Script/Gameplay/Card/CardBook.meta b/Assets/Script/Gameplay/Card/CardBook.meta
new file mode 100644
index 0000000..337a202
--- /dev/null
+++ b/Assets/Script/Gameplay/Card/CardBook.meta
@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 37e71088bd934b78aa07c7a76b7e5d07
+timeCreated: 1760422523
\ No newline at end of file
diff --git a/Assets/Script/Gameplay/Card/CardBook/CardBook.cs b/Assets/Script/Gameplay/Card/CardBook/CardBook.cs
new file mode 100644
index 0000000..ef6cd73
--- /dev/null
+++ b/Assets/Script/Gameplay/Card/CardBook/CardBook.cs
@@ -0,0 +1,48 @@
+using System;
+using UnityEngine;
+
+namespace Gameplay
+{
+ public class CardBook
+ {
+ public CardBookData Data;
+ public CardSlot[] Slots;
+ public CardSlot[] Spares;
+
+ public CardBook(CardBookData data)
+ {
+ Data = data;
+ Slots = new CardSlot[Data.SlotCount];
+ Spares = new CardSlot[Data.SpareCount];
+ for (int i = 0; i < Slots.Length; i++)
+ {
+ Slots[i] = new CardSlot();
+ }
+ for (int i = 0; i < Spares.Length; i++)
+ {
+ Spares[i] = new CardSlot();
+ }
+ }
+
+ // Get all cards in the card book,and not Spares
+ public Card[] GetCards()
+ {
+ var cards = new Card[Slots.Length + Spares.Length];
+ for (int i = 0; i < Slots.Length; i++)
+ {
+ cards[i] = Slots[i].StoredCard;
+ }
+ return cards;
+ }
+
+ public Card[] GetSpareCards()
+ {
+ var cards = new Card[Spares.Length + Spares.Length];
+ for (int i = 0; i < Spares.Length; i++)
+ {
+ cards[i] = Spares[i].StoredCard;
+ }
+ return cards;
+ }
+ }
+}
\ No newline at end of file
diff --git a/Assets/Script/Gameplay/Card/CardBook/CardBook.cs.meta b/Assets/Script/Gameplay/Card/CardBook/CardBook.cs.meta
new file mode 100644
index 0000000..3e7d03e
--- /dev/null
+++ b/Assets/Script/Gameplay/Card/CardBook/CardBook.cs.meta
@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 4bb8bfb17c6a4eaa88954871942ee72d
+timeCreated: 1760422530
\ No newline at end of file
diff --git a/Assets/Script/Gameplay/Card/CardBook/CardBookData.cs b/Assets/Script/Gameplay/Card/CardBook/CardBookData.cs
new file mode 100644
index 0000000..ba3ba98
--- /dev/null
+++ b/Assets/Script/Gameplay/Card/CardBook/CardBookData.cs
@@ -0,0 +1,12 @@
+using UnityEngine;
+
+namespace Gameplay
+{
+ [CreateAssetMenu(fileName = "CardBookData", menuName = "ScriptableObject/CardBookData", order = 1)]
+ public class CardBookData : ScriptableObject
+ {
+ public int SlotCount;
+ public int SpareCount;
+ public int MaxLoopCount;
+ }
+}
\ No newline at end of file
diff --git a/Assets/Script/Gameplay/Card/CardBook/CardBookData.cs.meta b/Assets/Script/Gameplay/Card/CardBook/CardBookData.cs.meta
new file mode 100644
index 0000000..65a3e76
--- /dev/null
+++ b/Assets/Script/Gameplay/Card/CardBook/CardBookData.cs.meta
@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 54f1f8ff48b84542962110e7a9851917
+timeCreated: 1760422573
\ No newline at end of file
diff --git a/Assets/Script/Gameplay/Card/CardBook/CardBookViewer.cs b/Assets/Script/Gameplay/Card/CardBook/CardBookViewer.cs
new file mode 100644
index 0000000..e43ec8c
--- /dev/null
+++ b/Assets/Script/Gameplay/Card/CardBook/CardBookViewer.cs
@@ -0,0 +1,12 @@
+using UnityEngine;
+
+
+namespace Gameplay
+{
+ // 卡牌书的显示相关脚本
+ public class CardBookViewer : MonoBehaviour
+ {
+ [SerializeField] private Transform LeftHandPoint;
+ private CardBook CardBook;
+ }
+}
\ No newline at end of file
diff --git a/Assets/Script/Gameplay/Card/CardBook/CardBookViewer.cs.meta b/Assets/Script/Gameplay/Card/CardBook/CardBookViewer.cs.meta
new file mode 100644
index 0000000..dff895e
--- /dev/null
+++ b/Assets/Script/Gameplay/Card/CardBook/CardBookViewer.cs.meta
@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 68803a8f56734f22a3025f8028fc027f
+timeCreated: 1760431288
\ No newline at end of file
diff --git a/Assets/Script/Gameplay/Card/CardBook/CardSlot.cs b/Assets/Script/Gameplay/Card/CardBook/CardSlot.cs
new file mode 100644
index 0000000..a334010
--- /dev/null
+++ b/Assets/Script/Gameplay/Card/CardBook/CardSlot.cs
@@ -0,0 +1,23 @@
+namespace Gameplay
+{
+ public class CardSlot
+ {
+ public Card StoredCard;
+ public bool IsEmpty => StoredCard == null;
+ public int ActiveTimes = 0;
+
+ public void StoreCard(Card card)
+ {
+ StoredCard = card;
+ ActiveTimes = 0;
+ }
+
+ public Card RemoveCard()
+ {
+ var card = StoredCard;
+ StoredCard = null;
+ ActiveTimes = 0;
+ return card;
+ }
+ }
+}
\ No newline at end of file
diff --git a/Assets/Script/Gameplay/Card/CardBook/CardSlot.cs.meta b/Assets/Script/Gameplay/Card/CardBook/CardSlot.cs.meta
new file mode 100644
index 0000000..b580f5f
--- /dev/null
+++ b/Assets/Script/Gameplay/Card/CardBook/CardSlot.cs.meta
@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: e5f566603b3f4286965da48bb49c018a
+timeCreated: 1760422548
\ No newline at end of file
diff --git a/Assets/Script/Card/CardData.cs b/Assets/Script/Gameplay/Card/CardData.cs
similarity index 68%
rename from Assets/Script/Card/CardData.cs
rename to Assets/Script/Gameplay/Card/CardData.cs
index 5a5f6b7..b17d688 100644
--- a/Assets/Script/Card/CardData.cs
+++ b/Assets/Script/Gameplay/Card/CardData.cs
@@ -2,11 +2,12 @@ using System.Collections;
using System.Collections.Generic;
using UnityEngine;
-namespace Card
+namespace Gameplay
{
- [CreateAssetMenu(fileName = "NewCard", menuName = "Card/CardData")]
+ [CreateAssetMenu(fileName = "CardData", menuName = "ScriptableObject/CardData")]
public class CardData : ScriptableObject
{
+ public int CardID;
public string CardName;
public string CardDescription;
public Texture CardTexture;
diff --git a/Assets/Script/Card/CardData.cs.meta b/Assets/Script/Gameplay/Card/CardData.cs.meta
similarity index 100%
rename from Assets/Script/Card/CardData.cs.meta
rename to Assets/Script/Gameplay/Card/CardData.cs.meta
diff --git a/Assets/Script/Card/CardEffect.meta b/Assets/Script/Gameplay/Card/CardEffect.meta
similarity index 100%
rename from Assets/Script/Card/CardEffect.meta
rename to Assets/Script/Gameplay/Card/CardEffect.meta
diff --git a/Assets/Script/Gameplay/Card/CardEffect/CardContext.cs b/Assets/Script/Gameplay/Card/CardEffect/CardContext.cs
new file mode 100644
index 0000000..930f08f
--- /dev/null
+++ b/Assets/Script/Gameplay/Card/CardEffect/CardContext.cs
@@ -0,0 +1,16 @@
+using UnityEngine;
+using Share;
+namespace Gameplay
+{
+ public class CardContext
+ {
+ public ICharacter Owner;
+ public ICharacter Enemy;
+
+ public CardContext(ICharacter owner,ICharacter enemy)
+ {
+ Owner = owner;
+ Enemy = enemy;
+ }
+ }
+}
\ No newline at end of file
diff --git a/Assets/Script/Card/CardEffect/CardContext.cs.meta b/Assets/Script/Gameplay/Card/CardEffect/CardContext.cs.meta
similarity index 100%
rename from Assets/Script/Card/CardEffect/CardContext.cs.meta
rename to Assets/Script/Gameplay/Card/CardEffect/CardContext.cs.meta
diff --git a/Assets/Script/Card/CardEffect/EffectData.cs b/Assets/Script/Gameplay/Card/CardEffect/EffectData.cs
similarity index 90%
rename from Assets/Script/Card/CardEffect/EffectData.cs
rename to Assets/Script/Gameplay/Card/CardEffect/EffectData.cs
index c80a1a2..fa77409 100644
--- a/Assets/Script/Card/CardEffect/EffectData.cs
+++ b/Assets/Script/Gameplay/Card/CardEffect/EffectData.cs
@@ -1,6 +1,6 @@
using UnityEngine;
-namespace Card
+namespace Gameplay
{
[System.Serializable]
public class EffectData
@@ -22,7 +22,5 @@ namespace Card
{
Damage,
Heal,
- DrawCard,
- AddBuff,
}
}
\ No newline at end of file
diff --git a/Assets/Script/Card/CardEffect/EffectData.cs.meta b/Assets/Script/Gameplay/Card/CardEffect/EffectData.cs.meta
similarity index 100%
rename from Assets/Script/Card/CardEffect/EffectData.cs.meta
rename to Assets/Script/Gameplay/Card/CardEffect/EffectData.cs.meta
diff --git a/Assets/Script/Gameplay/Card/CardEffect/EffectHandler.cs b/Assets/Script/Gameplay/Card/CardEffect/EffectHandler.cs
new file mode 100644
index 0000000..dea6310
--- /dev/null
+++ b/Assets/Script/Gameplay/Card/CardEffect/EffectHandler.cs
@@ -0,0 +1,24 @@
+using UnityEngine;
+
+namespace Gameplay
+{
+ public static class EffectHandler
+ {
+ public static void Execute(EffectData effect, CardContext context)
+ {
+ switch (effect.type)
+ {
+ case EffectType.Damage:
+ context.Enemy.TakeDamage(effect.value);
+ break;
+
+ case EffectType.Heal:
+ context.Enemy.Heal(effect.value);
+ break;
+ default:
+ Debug.Log($"未知效果类型: {effect.type}");
+ break;
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/Assets/Script/Card/CardEffect/EffectHandler.cs.meta b/Assets/Script/Gameplay/Card/CardEffect/EffectHandler.cs.meta
similarity index 100%
rename from Assets/Script/Card/CardEffect/EffectHandler.cs.meta
rename to Assets/Script/Gameplay/Card/CardEffect/EffectHandler.cs.meta
diff --git a/Assets/Script/Gameplay/Card/CardLoader.cs b/Assets/Script/Gameplay/Card/CardLoader.cs
new file mode 100644
index 0000000..2ac769c
--- /dev/null
+++ b/Assets/Script/Gameplay/Card/CardLoader.cs
@@ -0,0 +1,21 @@
+using UnityEngine;
+namespace Gameplay
+{
+ // 从Resources文件夹加载卡牌数据的静态类
+ public static class CardLoader
+ {
+ public static CardData GetCardDataByID(int cardID)
+ {
+ CardData[] allCards = Resources.LoadAll("Configs/Card");
+ foreach (var card in allCards)
+ {
+ if (card.CardID == cardID)
+ {
+ return card;
+ }
+ }
+ Debug.LogError($"Card with ID {cardID} not found!");
+ return null;
+ }
+ }
+}
\ No newline at end of file
diff --git a/Assets/Script/Gameplay/Card/CardLoader.cs.meta b/Assets/Script/Gameplay/Card/CardLoader.cs.meta
new file mode 100644
index 0000000..877de36
--- /dev/null
+++ b/Assets/Script/Gameplay/Card/CardLoader.cs.meta
@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 447cd4a06d4a497cb301f68b51a4121a
+timeCreated: 1760518833
\ No newline at end of file
diff --git a/Assets/Script/Card/CardViewer.cs b/Assets/Script/Gameplay/Card/CardViewer.cs
similarity index 95%
rename from Assets/Script/Card/CardViewer.cs
rename to Assets/Script/Gameplay/Card/CardViewer.cs
index ab815ac..967cdb4 100644
--- a/Assets/Script/Card/CardViewer.cs
+++ b/Assets/Script/Gameplay/Card/CardViewer.cs
@@ -1,8 +1,7 @@
using UnityEngine;
-using Card;
using UnityEngine.UI;
-namespace Card
+namespace Gameplay
{
public class CardViewer : MonoBehaviour
{
diff --git a/Assets/Script/Card/CardViewer.cs.meta b/Assets/Script/Gameplay/Card/CardViewer.cs.meta
similarity index 100%
rename from Assets/Script/Card/CardViewer.cs.meta
rename to Assets/Script/Gameplay/Card/CardViewer.cs.meta
diff --git a/Assets/Script/Gameplay/Combat.meta b/Assets/Script/Gameplay/Combat.meta
new file mode 100644
index 0000000..6fff047
--- /dev/null
+++ b/Assets/Script/Gameplay/Combat.meta
@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 649c2c30ae8a4f64ae00e35a3bf67479
+timeCreated: 1760496426
\ No newline at end of file
diff --git a/Assets/Script/Gameplay/Combat/CombatFlowManager.cs b/Assets/Script/Gameplay/Combat/CombatFlowManager.cs
new file mode 100644
index 0000000..51c9ee6
--- /dev/null
+++ b/Assets/Script/Gameplay/Combat/CombatFlowManager.cs
@@ -0,0 +1,176 @@
+using System;
+using System.Collections;
+using Core;
+using Gameplay.Enemy;
+using Gameplay.Player;
+using Share;
+using UnityEngine;
+
+namespace Gameplay
+{
+ ///
+ /// 战斗流程管理器(回合制、循环抽牌)
+ /// 使用方法:在场景中挂载一个空物体并配置 player 与 enemy 的 Combatant 引用。
+ /// 该管理器通过事件回调让 UI 或其它系统接入“双方牌都打空时”的选择(继续/逃跑)。
+ ///
+ public class CombatFlowManager : MonoSingleton
+ {
+ [Header("Participants")]
+ public PlayerController player;
+ public EnemyController enemy;
+
+ [Header("Flow Settings")]
+ [Tooltip("玩家是否先手(true=玩家先出一张)")]
+ public bool playerStarts = true;
+ [Tooltip("每出一张牌后的间隔(秒)")]
+ public float turnDelay = 0.8f;
+
+ // Events
+ public event Action OnCombatStarted;
+ public event Action OnCardPlayed;
+ public event Action OnCombatEnded; // 参数为胜利方(null 表示平局或逃跑)
+ public event Action OnBothEmpty; // 当双方都没有卡可以出时触发,UI 需要通过 ContinueAfterBothEmpty 或 EscapeFromCombat 响应
+
+ // internal state
+ private Coroutine runningRoutine;
+ private bool waitingForDecision = false;
+ private bool decisionContinue = false;
+ private bool decisionEscape = false;
+
+ ///
+ /// 启动战斗流程(也可以在 Inspector 中提前绑定 player/enemy,然后只调用 StartCombat())
+ ///
+ public void StartCombat(PlayerController playerController = null, EnemyController enemyController = null)
+ {
+ if (playerController != null) player = playerController;
+ if (enemyController != null) enemy = enemyController;
+
+ if (player == null || enemy == null)
+ {
+ Debug.LogError("CombatFlowManager: player 或 enemy 未设置。");
+ return;
+ }
+
+ // 初始化双方状态
+ player.StartCombat();
+ enemy.StartCombat();
+ player.InitializeDeckCycle();
+ enemy.InitializeDeckCycle();
+
+
+ runningRoutine = StartCoroutine(CombatRoutine());
+ OnCombatStarted?.Invoke();
+ }
+
+ public void StopCombat()
+ {
+ if (runningRoutine != null) StopCoroutine(runningRoutine);
+ runningRoutine = null;
+ }
+
+ private IEnumerator CombatRoutine()
+ {
+ ICharacter current = playerStarts ? player : enemy;
+
+ while (true)
+ {
+ // 结束检查
+ if (player.IsDead || enemy.IsDead)
+ {
+ ICharacter winner = player.IsDead ? enemy : player;
+ OnCombatEnded?.Invoke(winner);
+ runningRoutine = null;
+ yield break;
+ }
+
+ bool playerHas = player.HasCardsLeft();
+ bool enemyHas = enemy.HasCardsLeft();
+
+ if (!playerHas && !enemyHas)
+ {
+ // 双方都打空,等待玩家选择(由 UI 调用 ContinueAfterBothEmpty 或 EscapeFromCombat)
+ waitingForDecision = true;
+ decisionContinue = false;
+ decisionEscape = false;
+ OnBothEmpty?.Invoke();
+
+ // 等待选择
+ while (waitingForDecision)
+ yield return null;
+
+ if (decisionEscape)
+ {
+ // 玩家选择逃跑 -> 结束战斗,胜者设为 null(或按需要设成敌人/玩家)
+ OnCombatEnded?.Invoke(null);
+ runningRoutine = null;
+ yield break;
+ }
+
+ if (decisionContinue)
+ {
+ // 重新从卡册读取(重置抽牌队列),保持生命与其它状态不变
+ player.InitializeDeckCycle();
+ enemy.InitializeDeckCycle();
+ // 继续循环(当前先手不变)
+ yield return null;
+ continue;
+ }
+ }
+
+ // 当前回合:如果当前方没有牌则跳过(空过)
+ if (current.HasCardsLeft())
+ {
+ var card = current.GetNextCard();
+ ICharacter target;
+ if (current is PlayerController)
+ {
+ target = enemy;
+ }
+ else
+ {
+ target = player;
+ }
+
+
+ // 触发卡牌效果(当前仅支持直接伤害)
+ if (card != null)
+ {
+ card.PlayCard(new CardContext(current, target));
+ OnCardPlayed?.Invoke(current, card);
+ }
+
+ // 检查死亡(将在下一循环顶部处理)
+ yield return new WaitForSeconds(turnDelay);
+ }
+ else
+ {
+ // 跳过一轮,不延迟太久
+ yield return new WaitForSeconds(0.1f);
+ }
+
+ // 切换行动方
+ current = (current == player) ? enemy : player;
+ }
+ }
+
+ ///
+ /// 当双方都打空时,UI 调用此方法选择继续下一轮(重新从卡册读取卡牌)
+ ///
+ public void ContinueAfterBothEmpty()
+ {
+ if (!waitingForDecision) return;
+ decisionContinue = true;
+ waitingForDecision = false;
+ }
+
+ ///
+ /// 当双方都打空时,UI 调用此方法选择逃跑
+ ///
+ public void EscapeFromCombat()
+ {
+ if (!waitingForDecision) return;
+ decisionEscape = true;
+ waitingForDecision = false;
+ }
+ }
+}
diff --git a/Assets/Script/Gameplay/Combat/CombatFlowManager.cs.meta b/Assets/Script/Gameplay/Combat/CombatFlowManager.cs.meta
new file mode 100644
index 0000000..dcc9652
--- /dev/null
+++ b/Assets/Script/Gameplay/Combat/CombatFlowManager.cs.meta
@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 3e8e663fe8d349bea29b9887d29db187
+timeCreated: 1760496426
\ No newline at end of file
diff --git a/Assets/Script/Gameplay/Combat/CombatTrigger.cs b/Assets/Script/Gameplay/Combat/CombatTrigger.cs
new file mode 100644
index 0000000..cbe759a
--- /dev/null
+++ b/Assets/Script/Gameplay/Combat/CombatTrigger.cs
@@ -0,0 +1,49 @@
+using System;
+using UnityEngine;
+using Gameplay;
+using Share;
+using Gameplay.Enemy;
+using Gameplay.Player;
+
+namespace Gameplay.Combat
+{
+ [RequireComponent(typeof(Collider))]
+ public class CombatTrigger : MonoBehaviour
+ {
+ //[Tooltip("战斗管理器引用(场景中单例/对象)")]
+ private CombatFlowManager combatManager;
+
+ [Tooltip("触发时指定的玩家 Combatant(可为空,manager 使用已配置的)")]
+ public PlayerController player;
+
+ [Tooltip("触发时指定的敌人 Combatant(可为空,manager 使用已配置的)")]
+ public EnemyController enemy;
+
+ [Tooltip("被触发后是否自动禁用触发器,避免重复触发")]
+ public bool disableAfterTrigger = true;
+
+ private void Start()
+ {
+ combatManager = CombatFlowManager.Instance;
+ }
+
+ private void Reset()
+ {
+ // Collider 需要 isTrigger
+ var col = GetComponent();
+ col.isTrigger = true;
+ }
+
+ private void OnTriggerEnter(Collider other)
+ {
+ // 简单检测:玩家层或带有 "Player" 标签的物体
+ if (combatManager == null) return;
+
+ if (other.CompareTag("Player") || other.gameObject.layer == LayerMask.NameToLayer("Player"))
+ {
+ combatManager.StartCombat(player, enemy);
+ if (disableAfterTrigger) gameObject.SetActive(false);
+ }
+ }
+ }
+}
diff --git a/Assets/Script/Gameplay/Combat/CombatTrigger.cs.meta b/Assets/Script/Gameplay/Combat/CombatTrigger.cs.meta
new file mode 100644
index 0000000..10a9055
--- /dev/null
+++ b/Assets/Script/Gameplay/Combat/CombatTrigger.cs.meta
@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 2d9265c2645847c2b5197ed2ba181c98
+timeCreated: 1760496463
\ No newline at end of file
diff --git a/Assets/Script/Gameplay/Enemy.meta b/Assets/Script/Gameplay/Enemy.meta
new file mode 100644
index 0000000..df91e05
--- /dev/null
+++ b/Assets/Script/Gameplay/Enemy.meta
@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 3b712b2fa4f743408e56868a21312535
+timeCreated: 1760495486
\ No newline at end of file
diff --git a/Assets/Script/Gameplay/Enemy/EnemyController.cs b/Assets/Script/Gameplay/Enemy/EnemyController.cs
new file mode 100644
index 0000000..f8e4925
--- /dev/null
+++ b/Assets/Script/Gameplay/Enemy/EnemyController.cs
@@ -0,0 +1,77 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using Share;
+using UnityEngine;
+
+namespace Gameplay.Enemy
+{
+ public class EnemyController : MonoBehaviour, ICharacter
+ {
+ [SerializeField] private string enemyName;
+ [SerializeField] private int maxHealth = 100;
+ public int MaxHealth => maxHealth;
+ public int CurrentHealth { get; set; }
+
+ [SerializeField] private CardBookData cardBookData;
+ private CardBook myCardBook;
+ private List cards;
+ private int currentCardIndex = 0;
+
+ public bool IsFlight { get; private set; }
+ public bool IsDead { get; private set; }
+
+ private void Awake()
+ {
+ CurrentHealth = MaxHealth;
+ myCardBook = new CardBook(cardBookData);
+ cards = new List();
+ }
+
+ public void TakeDamage(int damage)
+ {
+ CurrentHealth -= damage;
+ }
+
+ public void Heal(int heal)
+ {
+ CurrentHealth += heal;
+ if (CurrentHealth > MaxHealth)
+ {
+ CurrentHealth = MaxHealth;
+ }
+ }
+
+ public void StartCombat()
+ {
+ Debug.Log($"{name} Enemy Start Combat");
+ IsFlight = false;
+ }
+
+ public void EndFlight()
+ {
+ Debug.Log($"{name} Enemy End Flight");
+ IsFlight = true;
+ }
+
+ public bool HasCardsLeft()
+ {
+ return currentCardIndex < cards.Count;
+ }
+
+ public Card GetNextCard()
+ {
+ if (!HasCardsLeft())
+ {
+ return null;
+ }
+
+ return cards[currentCardIndex++];
+ }
+
+ public void InitializeDeckCycle()
+ {
+ cards = myCardBook.GetCards().ToList();
+ }
+ }
+}
\ No newline at end of file
diff --git a/Assets/Script/Gameplay/Enemy/EnemyController.cs.meta b/Assets/Script/Gameplay/Enemy/EnemyController.cs.meta
new file mode 100644
index 0000000..503b9ed
--- /dev/null
+++ b/Assets/Script/Gameplay/Enemy/EnemyController.cs.meta
@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: b5a587a681ae48d6b3a5dcd5a723fd5a
+timeCreated: 1760512105
\ No newline at end of file
diff --git a/Assets/Script/Card/Card.asmdef b/Assets/Script/Gameplay/Gameplay.asmdef
similarity index 75%
rename from Assets/Script/Card/Card.asmdef
rename to Assets/Script/Gameplay/Gameplay.asmdef
index 2e08a0e..4b4c44d 100644
--- a/Assets/Script/Card/Card.asmdef
+++ b/Assets/Script/Gameplay/Gameplay.asmdef
@@ -1,9 +1,10 @@
{
- "name": "Card",
+ "name": "Gameplay",
"rootNamespace": "",
"references": [
"GUID:fd0e97c21c15497f9406b8ee23c1f67e",
- "GUID:9e4105fe56ff4b1789a1683a3c08d507"
+ "GUID:75469ad4d38634e559750d17036d5f7c",
+ "GUID:f51ebe6a0ceec4240a699833d6309b23"
],
"includePlatforms": [],
"excludePlatforms": [],
diff --git a/Assets/Script/Gameplay/Gameplay.asmdef.meta b/Assets/Script/Gameplay/Gameplay.asmdef.meta
new file mode 100644
index 0000000..357c259
--- /dev/null
+++ b/Assets/Script/Gameplay/Gameplay.asmdef.meta
@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: ceb6a2c14699464ca35be17af198f904
+timeCreated: 1760445049
\ No newline at end of file
diff --git a/Assets/Script/Gameplay/Input.meta b/Assets/Script/Gameplay/Input.meta
new file mode 100644
index 0000000..b07a437
--- /dev/null
+++ b/Assets/Script/Gameplay/Input.meta
@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 1c652418c7ff4cb9be7aa23ec423c5f9
+timeCreated: 1760447326
\ No newline at end of file
diff --git a/Assets/Script/Core/Input/InputManager.cs b/Assets/Script/Gameplay/Input/InputManager.cs
similarity index 73%
rename from Assets/Script/Core/Input/InputManager.cs
rename to Assets/Script/Gameplay/Input/InputManager.cs
index fd92f94..81c508d 100644
--- a/Assets/Script/Core/Input/InputManager.cs
+++ b/Assets/Script/Gameplay/Input/InputManager.cs
@@ -1,16 +1,19 @@
+using System;
using UnityEngine;
-using UnityEngine.InputSystem;
+using Core;
-namespace Core
+namespace Input
{
- public class InputManager : MonoSingleton
+ public class InputManager : MonoSingleton, IInputManager
{
private PlayerInputActions _input; // 自动生成的输入类
// 当前输入值
public Vector2 Move { get; private set; }
public Vector2 Look { get; private set; }
+ public bool JumpPressed { get; private set; }
public bool PausePressed { get; private set; }
+ public bool InteractPressed { get; private set; }
private void Awake()
{
@@ -27,11 +30,15 @@ namespace Core
_input.Player.Look.performed += ctx => Look = ctx.ReadValue();
_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.Interact.performed += ctx => InteractPressed = true;
+ _input.Player.Interact.canceled += ctx => InteractPressed = false;
}
private void OnDisable()
@@ -39,6 +46,11 @@ namespace Core
_input.Disable();
}
+ private void Start()
+ {
+ UIManager.Instance.RegisterInputManager(this);
+ }
+
private void Update()
{
// 在此更新一次性触发的输入,例如“按下瞬间触发”
diff --git a/Assets/Script/Core/Input/InputManager.cs.meta b/Assets/Script/Gameplay/Input/InputManager.cs.meta
similarity index 100%
rename from Assets/Script/Core/Input/InputManager.cs.meta
rename to Assets/Script/Gameplay/Input/InputManager.cs.meta
diff --git a/Assets/Script/Core/Input/PlayerInputActions.cs b/Assets/Script/Gameplay/Input/PlayerInputActions.cs
similarity index 58%
rename from Assets/Script/Core/Input/PlayerInputActions.cs
rename to Assets/Script/Gameplay/Input/PlayerInputActions.cs
index b837e4b..df94597 100644
--- a/Assets/Script/Core/Input/PlayerInputActions.cs
+++ b/Assets/Script/Gameplay/Input/PlayerInputActions.cs
@@ -15,7 +15,7 @@ using System.Collections.Generic;
using UnityEngine.InputSystem;
using UnityEngine.InputSystem.Utilities;
-namespace Core
+namespace Input
{
public partial class @PlayerInputActions: IInputActionCollection2, IDisposable
{
@@ -31,12 +31,12 @@ namespace Core
""actions"": [
{
""name"": ""Move"",
- ""type"": ""Button"",
+ ""type"": ""Value"",
""id"": ""cba876cd-5594-42ac-a4b0-2f2ed0f0e120"",
- ""expectedControlType"": """",
+ ""expectedControlType"": ""Vector2"",
""processors"": """",
""interactions"": """",
- ""initialStateCheck"": false
+ ""initialStateCheck"": true
},
{
""name"": ""Look"",
@@ -46,28 +46,123 @@ namespace Core
""processors"": """",
""interactions"": """",
""initialStateCheck"": true
+ },
+ {
+ ""name"": ""Jump"",
+ ""type"": ""Button"",
+ ""id"": ""850284f0-b2d8-412c-9970-c1a7256e29de"",
+ ""expectedControlType"": """",
+ ""processors"": """",
+ ""interactions"": """",
+ ""initialStateCheck"": false
+ },
+ {
+ ""name"": ""Interact"",
+ ""type"": ""Button"",
+ ""id"": ""b405cb77-699f-4558-831a-c6c12a5c0300"",
+ ""expectedControlType"": """",
+ ""processors"": """",
+ ""interactions"": """",
+ ""initialStateCheck"": false
}
],
""bindings"": [
{
""name"": """",
- ""id"": ""dab4d8f6-9492-4327-8944-76f09907ba54"",
+ ""id"": ""d7c34f0b-b18e-4498-8d3e-1bdec4cb355d"",
+ ""path"": ""/delta"",
+ ""interactions"": """",
+ ""processors"": """",
+ ""groups"": """",
+ ""action"": ""Look"",
+ ""isComposite"": false,
+ ""isPartOfComposite"": false
+ },
+ {
+ ""name"": ""2D Vector"",
+ ""id"": ""132c4a80-d02d-43c4-bf7b-8e0ff43a44de"",
+ ""path"": ""2DVector"",
+ ""interactions"": """",
+ ""processors"": """",
+ ""groups"": """",
+ ""action"": ""Move"",
+ ""isComposite"": true,
+ ""isPartOfComposite"": false
+ },
+ {
+ ""name"": ""up"",
+ ""id"": ""a4d4ec38-2560-46b0-b57b-d9ea0f35d701"",
""path"": ""/w"",
""interactions"": """",
""processors"": """",
""groups"": """",
""action"": ""Move"",
""isComposite"": false,
+ ""isPartOfComposite"": true
+ },
+ {
+ ""name"": ""down"",
+ ""id"": ""f1c59ea2-0648-4f49-8cfb-d566be529303"",
+ ""path"": ""/s"",
+ ""interactions"": """",
+ ""processors"": """",
+ ""groups"": """",
+ ""action"": ""Move"",
+ ""isComposite"": false,
+ ""isPartOfComposite"": true
+ },
+ {
+ ""name"": ""left"",
+ ""id"": ""529b3ae4-cbf4-412c-a783-5bf62c57de72"",
+ ""path"": ""/a"",
+ ""interactions"": """",
+ ""processors"": """",
+ ""groups"": """",
+ ""action"": ""Move"",
+ ""isComposite"": false,
+ ""isPartOfComposite"": true
+ },
+ {
+ ""name"": ""right"",
+ ""id"": ""57ddd6bd-cbf7-4cfb-98d3-5b4458a21562"",
+ ""path"": ""/d"",
+ ""interactions"": """",
+ ""processors"": """",
+ ""groups"": """",
+ ""action"": ""Move"",
+ ""isComposite"": false,
+ ""isPartOfComposite"": true
+ },
+ {
+ ""name"": """",
+ ""id"": ""b6a61d59-edf3-4759-8791-8967ffa1e187"",
+ ""path"": ""/space"",
+ ""interactions"": """",
+ ""processors"": """",
+ ""groups"": """",
+ ""action"": ""Jump"",
+ ""isComposite"": false,
""isPartOfComposite"": false
},
{
""name"": """",
- ""id"": ""d7c34f0b-b18e-4498-8d3e-1bdec4cb355d"",
- ""path"": ""/position"",
+ ""id"": ""c7bb1d3e-20de-4ff9-96fc-bfc70ca54e20"",
+ ""path"": ""/f"",
""interactions"": """",
""processors"": """",
""groups"": """",
- ""action"": ""Look"",
+ ""action"": ""Interact"",
+ ""isComposite"": false,
+ ""isPartOfComposite"": false
+ },
+ {
+ ""name"": """",
+ ""id"": ""ab4a9194-7003-42f9-a13b-f6edf0427a6e"",
+ ""path"": ""/leftButton"",
+ ""interactions"": """",
+ ""processors"": """",
+ ""groups"": """",
+ ""action"": ""Interact"",
""isComposite"": false,
""isPartOfComposite"": false
}
@@ -80,6 +175,8 @@ namespace Core
m_Player = asset.FindActionMap("Player", throwIfNotFound: true);
m_Player_Move = m_Player.FindAction("Move", throwIfNotFound: true);
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);
}
~@PlayerInputActions()
@@ -148,12 +245,16 @@ namespace Core
private List m_PlayerActionsCallbackInterfaces = new List();
private readonly InputAction m_Player_Move;
private readonly InputAction m_Player_Look;
+ private readonly InputAction m_Player_Jump;
+ private readonly InputAction m_Player_Interact;
public struct PlayerActions
{
private @PlayerInputActions m_Wrapper;
public PlayerActions(@PlayerInputActions wrapper) { m_Wrapper = wrapper; }
public InputAction @Move => m_Wrapper.m_Player_Move;
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 InputActionMap Get() { return m_Wrapper.m_Player; }
public void Enable() { Get().Enable(); }
public void Disable() { Get().Disable(); }
@@ -169,6 +270,12 @@ namespace Core
@Look.started += instance.OnLook;
@Look.performed += instance.OnLook;
@Look.canceled += instance.OnLook;
+ @Jump.started += instance.OnJump;
+ @Jump.performed += instance.OnJump;
+ @Jump.canceled += instance.OnJump;
+ @Interact.started += instance.OnInteract;
+ @Interact.performed += instance.OnInteract;
+ @Interact.canceled += instance.OnInteract;
}
private void UnregisterCallbacks(IPlayerActions instance)
@@ -179,6 +286,12 @@ namespace Core
@Look.started -= instance.OnLook;
@Look.performed -= instance.OnLook;
@Look.canceled -= instance.OnLook;
+ @Jump.started -= instance.OnJump;
+ @Jump.performed -= instance.OnJump;
+ @Jump.canceled -= instance.OnJump;
+ @Interact.started -= instance.OnInteract;
+ @Interact.performed -= instance.OnInteract;
+ @Interact.canceled -= instance.OnInteract;
}
public void RemoveCallbacks(IPlayerActions instance)
@@ -200,6 +313,8 @@ namespace Core
{
void OnMove(InputAction.CallbackContext context);
void OnLook(InputAction.CallbackContext context);
+ void OnJump(InputAction.CallbackContext context);
+ void OnInteract(InputAction.CallbackContext context);
}
}
}
diff --git a/Assets/Script/Core/Input/PlayerInputActions.cs.meta b/Assets/Script/Gameplay/Input/PlayerInputActions.cs.meta
similarity index 83%
rename from Assets/Script/Core/Input/PlayerInputActions.cs.meta
rename to Assets/Script/Gameplay/Input/PlayerInputActions.cs.meta
index 812c617..991908f 100644
--- a/Assets/Script/Core/Input/PlayerInputActions.cs.meta
+++ b/Assets/Script/Gameplay/Input/PlayerInputActions.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: ff05c86378543b94488d735aea6436d1
+guid: 3112886b43bfe4d40bf728a52f00436c
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/Assets/Script/Gameplay/Interface.meta b/Assets/Script/Gameplay/Interface.meta
new file mode 100644
index 0000000..3d5eb86
--- /dev/null
+++ b/Assets/Script/Gameplay/Interface.meta
@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 6407e403d6f34e658b36489eb9954344
+timeCreated: 1760445405
\ No newline at end of file
diff --git a/Assets/Script/Gameplay/Interface/ICharacter.cs b/Assets/Script/Gameplay/Interface/ICharacter.cs
new file mode 100644
index 0000000..d3f0046
--- /dev/null
+++ b/Assets/Script/Gameplay/Interface/ICharacter.cs
@@ -0,0 +1,28 @@
+using System;
+using UnityEngine;
+using Gameplay;
+using System.Collections.Generic;
+
+namespace Share
+{
+ ///
+ /// 角色接口,可受伤害、治疗和添加Buff、发生战斗
+ /// 拥有卡牌书
+ ///
+ public interface ICharacter
+ {
+ // public int MaxHealth { get; }
+ // public int CurrentHealth { get; }
+ // public CardBook CardBook { get; }
+ // public List Cards { get; }
+ public bool IsFlight { get; }
+ public bool IsDead { get; }
+ public void TakeDamage(int damage);
+ public void Heal(int heal);
+ public void StartCombat();
+ public void EndFlight();
+ public bool HasCardsLeft();
+ public Card GetNextCard();
+ public void InitializeDeckCycle();
+ }
+}
\ No newline at end of file
diff --git a/Assets/Script/Share/ICharacter.cs.meta b/Assets/Script/Gameplay/Interface/ICharacter.cs.meta
similarity index 100%
rename from Assets/Script/Share/ICharacter.cs.meta
rename to Assets/Script/Gameplay/Interface/ICharacter.cs.meta
diff --git a/Assets/Script/Gameplay/Interface/IInteractable.cs b/Assets/Script/Gameplay/Interface/IInteractable.cs
new file mode 100644
index 0000000..e1a3d65
--- /dev/null
+++ b/Assets/Script/Gameplay/Interface/IInteractable.cs
@@ -0,0 +1,9 @@
+using UnityEngine;
+namespace Share
+{
+ public interface IInteractable
+ {
+ string GetInteractPrompt(); // 返回提示文字,例如“按E打开门”
+ void Interact(GameObject interactor); // 当玩家交互时触发
+ }
+}
\ No newline at end of file
diff --git a/Assets/Script/Gameplay/Interface/IInteractable.cs.meta b/Assets/Script/Gameplay/Interface/IInteractable.cs.meta
new file mode 100644
index 0000000..d5829f2
--- /dev/null
+++ b/Assets/Script/Gameplay/Interface/IInteractable.cs.meta
@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 3bb60830b6e14df78b72c49d9250fa75
+timeCreated: 1760444920
\ No newline at end of file
diff --git a/Assets/Script/Map.meta b/Assets/Script/Gameplay/Map.meta
similarity index 100%
rename from Assets/Script/Map.meta
rename to Assets/Script/Gameplay/Map.meta
diff --git a/Assets/Script/Gameplay/Map/FlightTrigger.cs b/Assets/Script/Gameplay/Map/FlightTrigger.cs
new file mode 100644
index 0000000..e729c98
--- /dev/null
+++ b/Assets/Script/Gameplay/Map/FlightTrigger.cs
@@ -0,0 +1,10 @@
+using UnityEngine;
+using Share;
+namespace Map
+{
+ public class FlightTrigger : MonoBehaviour
+ {
+ [SerializeField] public ICharacter Player;
+ [SerializeField] public ICharacter Enemy;
+ }
+}
\ No newline at end of file
diff --git a/Assets/Script/Gameplay/Map/FlightTrigger.cs.meta b/Assets/Script/Gameplay/Map/FlightTrigger.cs.meta
new file mode 100644
index 0000000..e956be8
--- /dev/null
+++ b/Assets/Script/Gameplay/Map/FlightTrigger.cs.meta
@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 5e697dc78ed84a3ab2e921a57c17be95
+timeCreated: 1760495479
\ No newline at end of file
diff --git a/Assets/Script/Gameplay/Map/MapFlag.cs b/Assets/Script/Gameplay/Map/MapFlag.cs
new file mode 100644
index 0000000..985d12c
--- /dev/null
+++ b/Assets/Script/Gameplay/Map/MapFlag.cs
@@ -0,0 +1,20 @@
+using UnityEngine;
+using System;
+namespace Map
+{
+ public class MapFlag : MonoBehaviour
+ {
+ public string FlagName;
+ public Vector3 Position;
+ public MapFlag ParentFlag;
+ public MapFlag LeftFlag;
+ public MapFlag RightFlag;
+
+ public event Action OnPlayerEnter;
+ private void OnTriggerEnter(Collider other)
+ {
+ OnPlayerEnter?.Invoke(this);
+ }
+
+ }
+}
\ No newline at end of file
diff --git a/Assets/Script/Gameplay/Map/MapFlag.cs.meta b/Assets/Script/Gameplay/Map/MapFlag.cs.meta
new file mode 100644
index 0000000..4a69371
--- /dev/null
+++ b/Assets/Script/Gameplay/Map/MapFlag.cs.meta
@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 2c3ea88c92cc4d0bb6098983903be7fb
+timeCreated: 1760444130
\ No newline at end of file
diff --git a/Assets/Script/Gameplay/Map/MapFlagManager.cs b/Assets/Script/Gameplay/Map/MapFlagManager.cs
new file mode 100644
index 0000000..c881b99
--- /dev/null
+++ b/Assets/Script/Gameplay/Map/MapFlagManager.cs
@@ -0,0 +1,13 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using Core;
+using UnityEngine;
+
+namespace Map
+{
+ public class MapFlagManager : MonoSingleton
+ {
+ public MapFlag StartFlag;
+ }
+}
\ No newline at end of file
diff --git a/Assets/Script/Gameplay/Map/MapFlagManager.cs.meta b/Assets/Script/Gameplay/Map/MapFlagManager.cs.meta
new file mode 100644
index 0000000..0d0e1d9
--- /dev/null
+++ b/Assets/Script/Gameplay/Map/MapFlagManager.cs.meta
@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: f13be1e244e84e3b93b0b3a4c054cb46
+timeCreated: 1760424376
\ No newline at end of file
diff --git a/Assets/Script/Player.meta b/Assets/Script/Gameplay/Player.meta
similarity index 100%
rename from Assets/Script/Player.meta
rename to Assets/Script/Gameplay/Player.meta
diff --git a/Assets/Script/Player/PlayerCameraController.cs b/Assets/Script/Gameplay/Player/PlayerCameraController.cs
similarity index 98%
rename from Assets/Script/Player/PlayerCameraController.cs
rename to Assets/Script/Gameplay/Player/PlayerCameraController.cs
index 4eeb4fe..3efa0df 100644
--- a/Assets/Script/Player/PlayerCameraController.cs
+++ b/Assets/Script/Gameplay/Player/PlayerCameraController.cs
@@ -1,13 +1,13 @@
using Core;
using UnityEngine;
+using Input;
-namespace Player
+namespace Gameplay.Player
{
///
/// 玩家第一人称相机控制器
/// 挂到相机或相机父物体,playerBody 指向角色的根 Transform(用于左右旋转)
///
- /// TODO:使用InputManager替换掉Input.GetAxis
public class PlayerCameraController : MonoBehaviour
{
[Header("References")]
diff --git a/Assets/Script/Player/PlayerCameraController.cs.meta b/Assets/Script/Gameplay/Player/PlayerCameraController.cs.meta
similarity index 100%
rename from Assets/Script/Player/PlayerCameraController.cs.meta
rename to Assets/Script/Gameplay/Player/PlayerCameraController.cs.meta
diff --git a/Assets/Script/Gameplay/Player/PlayerConfig.cs b/Assets/Script/Gameplay/Player/PlayerConfig.cs
new file mode 100644
index 0000000..c8ffa63
--- /dev/null
+++ b/Assets/Script/Gameplay/Player/PlayerConfig.cs
@@ -0,0 +1,9 @@
+using UnityEngine;
+
+namespace Gameplay.Player
+{
+ public class PlayerConfig : MonoBehaviour
+ {
+
+ }
+}
\ No newline at end of file
diff --git a/Assets/Script/Gameplay/Player/PlayerConfig.cs.meta b/Assets/Script/Gameplay/Player/PlayerConfig.cs.meta
new file mode 100644
index 0000000..3164f2e
--- /dev/null
+++ b/Assets/Script/Gameplay/Player/PlayerConfig.cs.meta
@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 6ff9e093e80541dc93d1186499dbfd79
+timeCreated: 1760498762
\ No newline at end of file
diff --git a/Assets/Script/Gameplay/Player/PlayerController.cs b/Assets/Script/Gameplay/Player/PlayerController.cs
new file mode 100644
index 0000000..ab15c60
--- /dev/null
+++ b/Assets/Script/Gameplay/Player/PlayerController.cs
@@ -0,0 +1,92 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using Gameplay;
+using Share;
+using UnityEngine;
+using Core;
+
+namespace Gameplay.Player
+{
+ public class PlayerController : MonoBehaviour, ICharacter
+ {
+ public int MaxHealth { get; set; } = 100;
+ public int CurrentHealth { get; private set; }
+
+ [SerializeField] private CardBookData cardBookData;
+ public CardBook MyCardBook { get; private set; }
+ public List Cards { get; private set; }
+ private int currentCardIndex = 0;
+
+ public bool IsFlight { get; private set; }
+ public bool IsDead { get; private set; }
+
+ private PlayerMoveController playerMoveController;
+ private PlayerCameraController playerCameraController;
+
+ private void Awake()
+ {
+ playerMoveController = GetComponent();
+ playerCameraController = GetComponent();
+
+ CurrentHealth = MaxHealth;
+ MyCardBook = new CardBook(cardBookData);
+ Cards = new List();
+
+ UIViewerControllerLocator.Instance.Register(this);
+ }
+
+ private void Start()
+ {
+
+ }
+
+ public void TakeDamage(int damage)
+ {
+ CurrentHealth -= damage;
+ }
+
+ public void Heal(int heal)
+ {
+ CurrentHealth += heal;
+ if (CurrentHealth > MaxHealth)
+ {
+ CurrentHealth = MaxHealth;
+ }
+ }
+
+ public void StartCombat()
+ {
+ Debug.Log("Player StartCombat");
+ IsFlight = true;
+ playerMoveController.SetSpeed(0.5f);
+ }
+
+ public void EndFlight()
+ {
+ Debug.Log("Player EndFlight");
+ IsFlight = false;
+ playerMoveController.ResetSpeed();
+ }
+
+ public bool HasCardsLeft()
+ {
+ return currentCardIndex < Cards.Count;
+ }
+
+ public Card GetNextCard()
+ {
+ if (!HasCardsLeft())
+ {
+ return null;
+ }
+
+ return Cards[currentCardIndex++];
+ }
+
+ public void InitializeDeckCycle()
+ {
+ Cards = MyCardBook.GetCards().ToList();
+ }
+ }
+}
\ No newline at end of file
diff --git a/Assets/Script/Gameplay/Player/PlayerController.cs.meta b/Assets/Script/Gameplay/Player/PlayerController.cs.meta
new file mode 100644
index 0000000..a1ee466
--- /dev/null
+++ b/Assets/Script/Gameplay/Player/PlayerController.cs.meta
@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: d7071907d14f433789ea37a8367b584a
+timeCreated: 1760495717
\ No newline at end of file
diff --git a/Assets/Script/Gameplay/Player/PlayerInteractorController.cs b/Assets/Script/Gameplay/Player/PlayerInteractorController.cs
new file mode 100644
index 0000000..fced6f7
--- /dev/null
+++ b/Assets/Script/Gameplay/Player/PlayerInteractorController.cs
@@ -0,0 +1,58 @@
+using UnityEngine;
+using Share;
+using System;
+using Input;
+
+namespace Gameplay.Player
+{
+ public class PlayerInteractorController : MonoBehaviour
+ {
+ [SerializeField] private float interactRange = 15f;
+ [SerializeField] private LayerMask interactableLayer;
+ [SerializeField] private Camera playerCamera;
+
+ private IInteractable currentTarget;
+
+ void Start()
+ {
+ playerCamera = GameObject.FindWithTag("MainCamera").GetComponent();
+ }
+
+ void Update()
+ {
+ DetectInteractable();
+
+ if (currentTarget != null && InputManager.Instance.InteractPressed)
+ {
+ currentTarget.Interact(this.gameObject);
+ }
+ }
+
+ void DetectInteractable()
+ {
+ Ray ray = new Ray(playerCamera.transform.position, playerCamera.transform.forward);
+ if (Physics.Raycast(ray, out RaycastHit hit, interactRange, interactableLayer))
+ {
+ currentTarget = hit.collider.GetComponent();
+ if (currentTarget != null)
+ {
+ // 这里可以显示交互提示UI,例如 “E - 开门”
+ Debug.Log(currentTarget.GetInteractPrompt());
+ }
+ }
+ else
+ {
+ currentTarget = null;
+ }
+ }
+
+ void OnDrawGizmos()
+ {
+ if (playerCamera == null) return;
+ Gizmos.color = Color.green;
+ Vector3 origin = playerCamera.transform.position;
+ Vector3 direction = playerCamera.transform.forward * interactRange;
+ Gizmos.DrawLine(origin, origin + direction);
+ }
+ }
+}
\ No newline at end of file
diff --git a/Assets/Script/Gameplay/Player/PlayerInteractorController.cs.meta b/Assets/Script/Gameplay/Player/PlayerInteractorController.cs.meta
new file mode 100644
index 0000000..ef9e234
--- /dev/null
+++ b/Assets/Script/Gameplay/Player/PlayerInteractorController.cs.meta
@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: dc03712b5c254b8380471356f3bac151
+timeCreated: 1760516273
\ No newline at end of file
diff --git a/Assets/Script/Gameplay/Player/PlayerMoveController.cs b/Assets/Script/Gameplay/Player/PlayerMoveController.cs
new file mode 100644
index 0000000..5dd8bb1
--- /dev/null
+++ b/Assets/Script/Gameplay/Player/PlayerMoveController.cs
@@ -0,0 +1,89 @@
+using System;
+using Core;
+using Input;
+using Map;
+using UnityEngine;
+
+namespace Gameplay.Player
+{
+ public class PlayerMoveController : MonoBehaviour
+ {
+ [Header("Movement Settings")]
+ [Tooltip("移动速度(米/秒)")]
+ public float speed = 5f;
+ [Tooltip("跳跃高度(米)")]
+ public float jumpHeight = 2f;
+ [Tooltip("重力加速度(米/秒²)")]
+ public float gravity = -9.81f;
+
+ [Header("Ground Check")]
+ [Tooltip("检测地面的位置(通常为角色脚下)")]
+ public Transform groundCheck;
+ [Tooltip("地面检测半径")]
+ public float groundDistance = 0.4f;
+ [Tooltip("地面层(LayerMask)")]
+ public LayerMask groundMask;
+
+ private float initSpeed;
+
+ private CharacterController characterController;
+ private Vector3 velocity;
+ private bool isGrounded;
+ private IInputManager inputManager;
+
+ private void Awake()
+ {
+ characterController = GetComponent();
+ if (characterController == null)
+ Debug.LogError("PlayerMoveController 需要 CharacterController 组件!");
+
+ initSpeed = speed;
+ }
+
+ private void Start()
+ {
+ inputManager = InputManager.Instance;
+ }
+
+ private void Update()
+ {
+ // 地面检测
+ if (groundCheck != null)
+ isGrounded = Physics.CheckSphere(groundCheck.position, groundDistance, groundMask);
+ else
+ isGrounded = characterController.isGrounded;
+
+ if (isGrounded && velocity.y < 0)
+ velocity.y = -2f; // 保持贴地
+
+ Vector2 inputMove = inputManager.Move;
+ // 获取输入
+ float x = inputMove.x;
+ float z = inputMove.y;
+
+ // 按玩家朝向移动
+ Vector3 move = transform.right * x + transform.forward * z;
+ characterController.Move(move * speed * Time.deltaTime);
+
+ // 跳跃
+ if (isGrounded && inputManager.JumpPressed)
+ {
+ velocity.y = Mathf.Sqrt(jumpHeight * -2f * gravity);
+ }
+
+ // 重力
+ velocity.y += gravity * Time.deltaTime;
+ characterController.Move(velocity * Time.deltaTime);
+ }
+
+ public void SetSpeed(float newSpeed)
+ {
+ speed = newSpeed;
+ }
+
+ public void ResetSpeed()
+ {
+ speed = initSpeed;
+ }
+ }
+}
\ No newline at end of file
diff --git a/Assets/Script/Gameplay/Player/PlayerMoveController.cs.meta b/Assets/Script/Gameplay/Player/PlayerMoveController.cs.meta
new file mode 100644
index 0000000..0172b5c
--- /dev/null
+++ b/Assets/Script/Gameplay/Player/PlayerMoveController.cs.meta
@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 14c86d6b22344680a9eba4de056d3b53
+timeCreated: 1760424128
\ No newline at end of file
diff --git a/Assets/Script/Map/Map.asmdef b/Assets/Script/Map/Map.asmdef
deleted file mode 100644
index 5791367..0000000
--- a/Assets/Script/Map/Map.asmdef
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "name": "Map"
-}
\ No newline at end of file
diff --git a/Assets/Script/Map/Map.asmdef.meta b/Assets/Script/Map/Map.asmdef.meta
deleted file mode 100644
index 6588f32..0000000
--- a/Assets/Script/Map/Map.asmdef.meta
+++ /dev/null
@@ -1,3 +0,0 @@
-fileFormatVersion: 2
-guid: ccba5c55d09a415a94ff4a5e6375019a
-timeCreated: 1760362986
\ No newline at end of file
diff --git a/Assets/Script/Player/Player.asmdef b/Assets/Script/Player/Player.asmdef
deleted file mode 100644
index de6268d..0000000
--- a/Assets/Script/Player/Player.asmdef
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "name": "Player"
-}
\ No newline at end of file
diff --git a/Assets/Script/Player/Player.asmdef.meta b/Assets/Script/Player/Player.asmdef.meta
deleted file mode 100644
index 271e9f0..0000000
--- a/Assets/Script/Player/Player.asmdef.meta
+++ /dev/null
@@ -1,3 +0,0 @@
-fileFormatVersion: 2
-guid: f9c4db94c16f41feaa2a3b1ea6785a04
-timeCreated: 1760362801
\ No newline at end of file
diff --git a/Assets/Script/Player/PlayerMoveController.cs b/Assets/Script/Player/PlayerMoveController.cs
deleted file mode 100644
index 36aefae..0000000
--- a/Assets/Script/Player/PlayerMoveController.cs
+++ /dev/null
@@ -1,9 +0,0 @@
-using UnityEngine;
-namespace Player
-{
- public class PlayerMoveController : MonoBehaviour
- {
-
- }
-}
-
diff --git a/Assets/Script/Player/PlayerMoveController.cs.meta b/Assets/Script/Player/PlayerMoveController.cs.meta
deleted file mode 100644
index 551651b..0000000
--- a/Assets/Script/Player/PlayerMoveController.cs.meta
+++ /dev/null
@@ -1,3 +0,0 @@
-fileFormatVersion: 2
-guid: 6025e0f3c5664b9c8c01a994fb1e0620
-timeCreated: 1760362812
\ No newline at end of file
diff --git a/Assets/Script/Share.meta b/Assets/Script/Share.meta
deleted file mode 100644
index 6dab1aa..0000000
--- a/Assets/Script/Share.meta
+++ /dev/null
@@ -1,3 +0,0 @@
-fileFormatVersion: 2
-guid: 05474807e682482694deb13b21e1bdfb
-timeCreated: 1760361359
\ No newline at end of file
diff --git a/Assets/Script/Share/ICharacter.cs b/Assets/Script/Share/ICharacter.cs
deleted file mode 100644
index 5f37c13..0000000
--- a/Assets/Script/Share/ICharacter.cs
+++ /dev/null
@@ -1,15 +0,0 @@
-using UnityEngine;
-
-namespace Share
-{
- ///
- /// 角色接口,可受伤害、治疗和添加Buff
- ///
- public interface ICharacter
- {
- public void TakeDamage(int damage);
- public void Heal(int heal);
- public void AddBuff(string buffName, int duration);
- public void Draw(int count);
- }
-}
\ No newline at end of file
diff --git a/Assets/Script/Share/Share.asmdef b/Assets/Script/Share/Share.asmdef
deleted file mode 100644
index 7f732bd..0000000
--- a/Assets/Script/Share/Share.asmdef
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "name": "Share"
-}
\ No newline at end of file
diff --git a/Assets/Script/Share/Share.asmdef.meta b/Assets/Script/Share/Share.asmdef.meta
deleted file mode 100644
index 7944204..0000000
--- a/Assets/Script/Share/Share.asmdef.meta
+++ /dev/null
@@ -1,3 +0,0 @@
-fileFormatVersion: 2
-guid: 9e4105fe56ff4b1789a1683a3c08d507
-timeCreated: 1760361379
\ No newline at end of file
diff --git a/Assets/Script/UI/PlayerHpViewer.cs b/Assets/Script/UI/PlayerHpViewer.cs
new file mode 100644
index 0000000..b65244c
--- /dev/null
+++ b/Assets/Script/UI/PlayerHpViewer.cs
@@ -0,0 +1,32 @@
+using System;
+using Core;
+using Gameplay.Player;
+using UnityEngine;
+using UnityEngine.UI;
+
+namespace UI
+{
+ public class PlayerHpViewer : UIBase
+ {
+ private PlayerController _playerController;
+ public Text hpText;
+
+ private void Start()
+ {
+ UIViewerControllerLocator.Instance.TryGetWait(OnGet);
+ }
+
+ private void Update()
+ {
+ if (_playerController != null)
+ {
+ hpText.text = "HP: " + _playerController.CurrentHealth;
+ }
+ }
+
+ private void OnGet(PlayerController playerController)
+ {
+ _playerController = playerController;
+ }
+ }
+}
\ No newline at end of file
diff --git a/Assets/Script/UI/PlayerHpViewer.cs.meta b/Assets/Script/UI/PlayerHpViewer.cs.meta
new file mode 100644
index 0000000..dbbb4f4
--- /dev/null
+++ b/Assets/Script/UI/PlayerHpViewer.cs.meta
@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: a450025fc367419faaf7481787bfac88
+timeCreated: 1760514338
\ No newline at end of file
diff --git a/Assets/Script/UI/UI.asmdef b/Assets/Script/UI/UI.asmdef
index 4e47f84..6bb63f7 100644
--- a/Assets/Script/UI/UI.asmdef
+++ b/Assets/Script/UI/UI.asmdef
@@ -2,9 +2,8 @@
"name": "UI",
"rootNamespace": "",
"references": [
- "GUID:ec826b79cbc40da479bcc7969404880e",
"GUID:fd0e97c21c15497f9406b8ee23c1f67e",
- "GUID:9e4105fe56ff4b1789a1683a3c08d507"
+ "GUID:ceb6a2c14699464ca35be17af198f904"
],
"includePlatforms": [],
"excludePlatforms": [],
diff --git a/Assets/Settings/Input/InputSystem_Actions.inputactions b/Assets/Settings/Input/InputSystem_Actions.inputactions
new file mode 100644
index 0000000..1a12cb9
--- /dev/null
+++ b/Assets/Settings/Input/InputSystem_Actions.inputactions
@@ -0,0 +1,1057 @@
+{
+ "name": "InputSystem_Actions",
+ "maps": [
+ {
+ "name": "Player",
+ "id": "df70fa95-8a34-4494-b137-73ab6b9c7d37",
+ "actions": [
+ {
+ "name": "Move",
+ "type": "Value",
+ "id": "351f2ccd-1f9f-44bf-9bec-d62ac5c5f408",
+ "expectedControlType": "Vector2",
+ "processors": "",
+ "interactions": "",
+ "initialStateCheck": true
+ },
+ {
+ "name": "Look",
+ "type": "Value",
+ "id": "6b444451-8a00-4d00-a97e-f47457f736a8",
+ "expectedControlType": "Vector2",
+ "processors": "",
+ "interactions": "",
+ "initialStateCheck": true
+ },
+ {
+ "name": "Attack",
+ "type": "Button",
+ "id": "6c2ab1b8-8984-453a-af3d-a3c78ae1679a",
+ "expectedControlType": "Button",
+ "processors": "",
+ "interactions": "",
+ "initialStateCheck": false
+ },
+ {
+ "name": "Interact",
+ "type": "Button",
+ "id": "852140f2-7766-474d-8707-702459ba45f3",
+ "expectedControlType": "Button",
+ "processors": "",
+ "interactions": "Hold",
+ "initialStateCheck": false
+ },
+ {
+ "name": "Crouch",
+ "type": "Button",
+ "id": "27c5f898-bc57-4ee1-8800-db469aca5fe3",
+ "expectedControlType": "Button",
+ "processors": "",
+ "interactions": "",
+ "initialStateCheck": false
+ },
+ {
+ "name": "Jump",
+ "type": "Button",
+ "id": "f1ba0d36-48eb-4cd5-b651-1c94a6531f70",
+ "expectedControlType": "Button",
+ "processors": "",
+ "interactions": "",
+ "initialStateCheck": false
+ },
+ {
+ "name": "Previous",
+ "type": "Button",
+ "id": "2776c80d-3c14-4091-8c56-d04ced07a2b0",
+ "expectedControlType": "Button",
+ "processors": "",
+ "interactions": "",
+ "initialStateCheck": false
+ },
+ {
+ "name": "Next",
+ "type": "Button",
+ "id": "b7230bb6-fc9b-4f52-8b25-f5e19cb2c2ba",
+ "expectedControlType": "Button",
+ "processors": "",
+ "interactions": "",
+ "initialStateCheck": false
+ },
+ {
+ "name": "Sprint",
+ "type": "Button",
+ "id": "641cd816-40e6-41b4-8c3d-04687c349290",
+ "expectedControlType": "Button",
+ "processors": "",
+ "interactions": "",
+ "initialStateCheck": false
+ }
+ ],
+ "bindings": [
+ {
+ "name": "",
+ "id": "978bfe49-cc26-4a3d-ab7b-7d7a29327403",
+ "path": "/leftStick",
+ "interactions": "",
+ "processors": "",
+ "groups": ";Gamepad",
+ "action": "Move",
+ "isComposite": false,
+ "isPartOfComposite": false
+ },
+ {
+ "name": "WASD",
+ "id": "00ca640b-d935-4593-8157-c05846ea39b3",
+ "path": "Dpad",
+ "interactions": "",
+ "processors": "",
+ "groups": "",
+ "action": "Move",
+ "isComposite": true,
+ "isPartOfComposite": false
+ },
+ {
+ "name": "up",
+ "id": "e2062cb9-1b15-46a2-838c-2f8d72a0bdd9",
+ "path": "/w",
+ "interactions": "",
+ "processors": "",
+ "groups": ";Keyboard&Mouse",
+ "action": "Move",
+ "isComposite": false,
+ "isPartOfComposite": true
+ },
+ {
+ "name": "up",
+ "id": "8180e8bd-4097-4f4e-ab88-4523101a6ce9",
+ "path": "/upArrow",
+ "interactions": "",
+ "processors": "",
+ "groups": ";Keyboard&Mouse",
+ "action": "Move",
+ "isComposite": false,
+ "isPartOfComposite": true
+ },
+ {
+ "name": "down",
+ "id": "320bffee-a40b-4347-ac70-c210eb8bc73a",
+ "path": "/s",
+ "interactions": "",
+ "processors": "",
+ "groups": ";Keyboard&Mouse",
+ "action": "Move",
+ "isComposite": false,
+ "isPartOfComposite": true
+ },
+ {
+ "name": "down",
+ "id": "1c5327b5-f71c-4f60-99c7-4e737386f1d1",
+ "path": "/downArrow",
+ "interactions": "",
+ "processors": "",
+ "groups": ";Keyboard&Mouse",
+ "action": "Move",
+ "isComposite": false,
+ "isPartOfComposite": true
+ },
+ {
+ "name": "left",
+ "id": "d2581a9b-1d11-4566-b27d-b92aff5fabbc",
+ "path": "/a",
+ "interactions": "",
+ "processors": "",
+ "groups": ";Keyboard&Mouse",
+ "action": "Move",
+ "isComposite": false,
+ "isPartOfComposite": true
+ },
+ {
+ "name": "left",
+ "id": "2e46982e-44cc-431b-9f0b-c11910bf467a",
+ "path": "/leftArrow",
+ "interactions": "",
+ "processors": "",
+ "groups": ";Keyboard&Mouse",
+ "action": "Move",
+ "isComposite": false,
+ "isPartOfComposite": true
+ },
+ {
+ "name": "right",
+ "id": "fcfe95b8-67b9-4526-84b5-5d0bc98d6400",
+ "path": "/d",
+ "interactions": "",
+ "processors": "",
+ "groups": ";Keyboard&Mouse",
+ "action": "Move",
+ "isComposite": false,
+ "isPartOfComposite": true
+ },
+ {
+ "name": "right",
+ "id": "77bff152-3580-4b21-b6de-dcd0c7e41164",
+ "path": "/rightArrow",
+ "interactions": "",
+ "processors": "",
+ "groups": ";Keyboard&Mouse",
+ "action": "Move",
+ "isComposite": false,
+ "isPartOfComposite": true
+ },
+ {
+ "name": "",
+ "id": "1635d3fe-58b6-4ba9-a4e2-f4b964f6b5c8",
+ "path": "/{Primary2DAxis}",
+ "interactions": "",
+ "processors": "",
+ "groups": "XR",
+ "action": "Move",
+ "isComposite": false,
+ "isPartOfComposite": false
+ },
+ {
+ "name": "",
+ "id": "3ea4d645-4504-4529-b061-ab81934c3752",
+ "path": "/stick",
+ "interactions": "",
+ "processors": "",
+ "groups": "Joystick",
+ "action": "Move",
+ "isComposite": false,
+ "isPartOfComposite": false
+ },
+ {
+ "name": "",
+ "id": "c1f7a91b-d0fd-4a62-997e-7fb9b69bf235",
+ "path": "/rightStick",
+ "interactions": "",
+ "processors": "",
+ "groups": ";Gamepad",
+ "action": "Look",
+ "isComposite": false,
+ "isPartOfComposite": false
+ },
+ {
+ "name": "",
+ "id": "8c8e490b-c610-4785-884f-f04217b23ca4",
+ "path": "/delta",
+ "interactions": "",
+ "processors": "",
+ "groups": ";Keyboard&Mouse;Touch",
+ "action": "Look",
+ "isComposite": false,
+ "isPartOfComposite": false
+ },
+ {
+ "name": "",
+ "id": "3e5f5442-8668-4b27-a940-df99bad7e831",
+ "path": "/{Hatswitch}",
+ "interactions": "",
+ "processors": "",
+ "groups": "Joystick",
+ "action": "Look",
+ "isComposite": false,
+ "isPartOfComposite": false
+ },
+ {
+ "name": "",
+ "id": "143bb1cd-cc10-4eca-a2f0-a3664166fe91",
+ "path": "/buttonWest",
+ "interactions": "",
+ "processors": "",
+ "groups": ";Gamepad",
+ "action": "Attack",
+ "isComposite": false,
+ "isPartOfComposite": false
+ },
+ {
+ "name": "",
+ "id": "05f6913d-c316-48b2-a6bb-e225f14c7960",
+ "path": "/leftButton",
+ "interactions": "",
+ "processors": "",
+ "groups": ";Keyboard&Mouse",
+ "action": "Attack",
+ "isComposite": false,
+ "isPartOfComposite": false
+ },
+ {
+ "name": "",
+ "id": "886e731e-7071-4ae4-95c0-e61739dad6fd",
+ "path": "/primaryTouch/tap",
+ "interactions": "",
+ "processors": "",
+ "groups": ";Touch",
+ "action": "Attack",
+ "isComposite": false,
+ "isPartOfComposite": false
+ },
+ {
+ "name": "",
+ "id": "ee3d0cd2-254e-47a7-a8cb-bc94d9658c54",
+ "path": "/trigger",
+ "interactions": "",
+ "processors": "",
+ "groups": "Joystick",
+ "action": "Attack",
+ "isComposite": false,
+ "isPartOfComposite": false
+ },
+ {
+ "name": "",
+ "id": "8255d333-5683-4943-a58a-ccb207ff1dce",
+ "path": "/{PrimaryAction}",
+ "interactions": "",
+ "processors": "",
+ "groups": "XR",
+ "action": "Attack",
+ "isComposite": false,
+ "isPartOfComposite": false
+ },
+ {
+ "name": "",
+ "id": "b3c1c7f0-bd20-4ee7-a0f1-899b24bca6d7",
+ "path": "/enter",
+ "interactions": "",
+ "processors": "",
+ "groups": "Keyboard&Mouse",
+ "action": "Attack",
+ "isComposite": false,
+ "isPartOfComposite": false
+ },
+ {
+ "name": "",
+ "id": "cbac6039-9c09-46a1-b5f2-4e5124ccb5ed",
+ "path": "/2",
+ "interactions": "",
+ "processors": "",
+ "groups": "Keyboard&Mouse",
+ "action": "Next",
+ "isComposite": false,
+ "isPartOfComposite": false
+ },
+ {
+ "name": "",
+ "id": "e15ca19d-e649-4852-97d5-7fe8ccc44e94",
+ "path": "/dpad/right",
+ "interactions": "",
+ "processors": "",
+ "groups": "Gamepad",
+ "action": "Next",
+ "isComposite": false,
+ "isPartOfComposite": false
+ },
+ {
+ "name": "",
+ "id": "f2e9ba44-c423-42a7-ad56-f20975884794",
+ "path": "/leftShift",
+ "interactions": "",
+ "processors": "",
+ "groups": "Keyboard&Mouse",
+ "action": "Sprint",
+ "isComposite": false,
+ "isPartOfComposite": false
+ },
+ {
+ "name": "",
+ "id": "8cbb2f4b-a784-49cc-8d5e-c010b8c7f4e6",
+ "path": "/leftStickPress",
+ "interactions": "",
+ "processors": "",
+ "groups": "Gamepad",
+ "action": "Sprint",
+ "isComposite": false,
+ "isPartOfComposite": false
+ },
+ {
+ "name": "",
+ "id": "d8bf24bf-3f2f-4160-a97c-38ec1eb520ba",
+ "path": "/trigger",
+ "interactions": "",
+ "processors": "",
+ "groups": "XR",
+ "action": "Sprint",
+ "isComposite": false,
+ "isPartOfComposite": false
+ },
+ {
+ "name": "",
+ "id": "eb40bb66-4559-4dfa-9a2f-820438abb426",
+ "path": "/space",
+ "interactions": "",
+ "processors": "",
+ "groups": "Keyboard&Mouse",
+ "action": "Jump",
+ "isComposite": false,
+ "isPartOfComposite": false
+ },
+ {
+ "name": "",
+ "id": "daba33a1-ad0c-4742-a909-43ad1cdfbeb6",
+ "path": "/buttonSouth",
+ "interactions": "",
+ "processors": "",
+ "groups": "Gamepad",
+ "action": "Jump",
+ "isComposite": false,
+ "isPartOfComposite": false
+ },
+ {
+ "name": "",
+ "id": "603f3daf-40bd-4854-8724-93e8017f59e3",
+ "path": "/secondaryButton",
+ "interactions": "",
+ "processors": "",
+ "groups": "XR",
+ "action": "Jump",
+ "isComposite": false,
+ "isPartOfComposite": false
+ },
+ {
+ "name": "",
+ "id": "1534dc16-a6aa-499d-9c3a-22b47347b52a",
+ "path": "/1",
+ "interactions": "",
+ "processors": "",
+ "groups": "Keyboard&Mouse",
+ "action": "Previous",
+ "isComposite": false,
+ "isPartOfComposite": false
+ },
+ {
+ "name": "",
+ "id": "25060bbd-a3a6-476e-8fba-45ae484aad05",
+ "path": "/dpad/left",
+ "interactions": "",
+ "processors": "",
+ "groups": "Gamepad",
+ "action": "Previous",
+ "isComposite": false,
+ "isPartOfComposite": false
+ },
+ {
+ "name": "",
+ "id": "1c04ea5f-b012-41d1-a6f7-02e963b52893",
+ "path": "/e",
+ "interactions": "",
+ "processors": "",
+ "groups": "Keyboard&Mouse",
+ "action": "Interact",
+ "isComposite": false,
+ "isPartOfComposite": false
+ },
+ {
+ "name": "",
+ "id": "b3f66d0b-7751-423f-908b-a11c5bd95930",
+ "path": "/buttonNorth",
+ "interactions": "",
+ "processors": "",
+ "groups": "Gamepad",
+ "action": "Interact",
+ "isComposite": false,
+ "isPartOfComposite": false
+ },
+ {
+ "name": "",
+ "id": "4f4649ac-64a8-4a73-af11-b3faef356a4d",
+ "path": "/buttonEast",
+ "interactions": "",
+ "processors": "",
+ "groups": "Gamepad",
+ "action": "Crouch",
+ "isComposite": false,
+ "isPartOfComposite": false
+ },
+ {
+ "name": "",
+ "id": "36e52cba-0905-478e-a818-f4bfcb9f3b9a",
+ "path": "/c",
+ "interactions": "",
+ "processors": "",
+ "groups": "Keyboard&Mouse",
+ "action": "Crouch",
+ "isComposite": false,
+ "isPartOfComposite": false
+ }
+ ]
+ },
+ {
+ "name": "UI",
+ "id": "272f6d14-89ba-496f-b7ff-215263d3219f",
+ "actions": [
+ {
+ "name": "Navigate",
+ "type": "PassThrough",
+ "id": "c95b2375-e6d9-4b88-9c4c-c5e76515df4b",
+ "expectedControlType": "Vector2",
+ "processors": "",
+ "interactions": "",
+ "initialStateCheck": false
+ },
+ {
+ "name": "Submit",
+ "type": "Button",
+ "id": "7607c7b6-cd76-4816-beef-bd0341cfe950",
+ "expectedControlType": "Button",
+ "processors": "",
+ "interactions": "",
+ "initialStateCheck": false
+ },
+ {
+ "name": "Cancel",
+ "type": "Button",
+ "id": "15cef263-9014-4fd5-94d9-4e4a6234a6ef",
+ "expectedControlType": "Button",
+ "processors": "",
+ "interactions": "",
+ "initialStateCheck": false
+ },
+ {
+ "name": "Point",
+ "type": "PassThrough",
+ "id": "32b35790-4ed0-4e9a-aa41-69ac6d629449",
+ "expectedControlType": "Vector2",
+ "processors": "",
+ "interactions": "",
+ "initialStateCheck": true
+ },
+ {
+ "name": "Click",
+ "type": "PassThrough",
+ "id": "3c7022bf-7922-4f7c-a998-c437916075ad",
+ "expectedControlType": "Button",
+ "processors": "",
+ "interactions": "",
+ "initialStateCheck": true
+ },
+ {
+ "name": "RightClick",
+ "type": "PassThrough",
+ "id": "44b200b1-1557-4083-816c-b22cbdf77ddf",
+ "expectedControlType": "Button",
+ "processors": "",
+ "interactions": "",
+ "initialStateCheck": false
+ },
+ {
+ "name": "MiddleClick",
+ "type": "PassThrough",
+ "id": "dad70c86-b58c-4b17-88ad-f5e53adf419e",
+ "expectedControlType": "Button",
+ "processors": "",
+ "interactions": "",
+ "initialStateCheck": false
+ },
+ {
+ "name": "ScrollWheel",
+ "type": "PassThrough",
+ "id": "0489e84a-4833-4c40-bfae-cea84b696689",
+ "expectedControlType": "Vector2",
+ "processors": "",
+ "interactions": "",
+ "initialStateCheck": false
+ },
+ {
+ "name": "TrackedDevicePosition",
+ "type": "PassThrough",
+ "id": "24908448-c609-4bc3-a128-ea258674378a",
+ "expectedControlType": "Vector3",
+ "processors": "",
+ "interactions": "",
+ "initialStateCheck": false
+ },
+ {
+ "name": "TrackedDeviceOrientation",
+ "type": "PassThrough",
+ "id": "9caa3d8a-6b2f-4e8e-8bad-6ede561bd9be",
+ "expectedControlType": "Quaternion",
+ "processors": "",
+ "interactions": "",
+ "initialStateCheck": false
+ }
+ ],
+ "bindings": [
+ {
+ "name": "Gamepad",
+ "id": "809f371f-c5e2-4e7a-83a1-d867598f40dd",
+ "path": "2DVector",
+ "interactions": "",
+ "processors": "",
+ "groups": "",
+ "action": "Navigate",
+ "isComposite": true,
+ "isPartOfComposite": false
+ },
+ {
+ "name": "up",
+ "id": "14a5d6e8-4aaf-4119-a9ef-34b8c2c548bf",
+ "path": "/leftStick/up",
+ "interactions": "",
+ "processors": "",
+ "groups": ";Gamepad",
+ "action": "Navigate",
+ "isComposite": false,
+ "isPartOfComposite": true
+ },
+ {
+ "name": "up",
+ "id": "9144cbe6-05e1-4687-a6d7-24f99d23dd81",
+ "path": "/rightStick/up",
+ "interactions": "",
+ "processors": "",
+ "groups": ";Gamepad",
+ "action": "Navigate",
+ "isComposite": false,
+ "isPartOfComposite": true
+ },
+ {
+ "name": "down",
+ "id": "2db08d65-c5fb-421b-983f-c71163608d67",
+ "path": "/leftStick/down",
+ "interactions": "",
+ "processors": "",
+ "groups": ";Gamepad",
+ "action": "Navigate",
+ "isComposite": false,
+ "isPartOfComposite": true
+ },
+ {
+ "name": "down",
+ "id": "58748904-2ea9-4a80-8579-b500e6a76df8",
+ "path": "/rightStick/down",
+ "interactions": "",
+ "processors": "",
+ "groups": ";Gamepad",
+ "action": "Navigate",
+ "isComposite": false,
+ "isPartOfComposite": true
+ },
+ {
+ "name": "left",
+ "id": "8ba04515-75aa-45de-966d-393d9bbd1c14",
+ "path": "/leftStick/left",
+ "interactions": "",
+ "processors": "",
+ "groups": ";Gamepad",
+ "action": "Navigate",
+ "isComposite": false,
+ "isPartOfComposite": true
+ },
+ {
+ "name": "left",
+ "id": "712e721c-bdfb-4b23-a86c-a0d9fcfea921",
+ "path": "/rightStick/left",
+ "interactions": "",
+ "processors": "",
+ "groups": ";Gamepad",
+ "action": "Navigate",
+ "isComposite": false,
+ "isPartOfComposite": true
+ },
+ {
+ "name": "right",
+ "id": "fcd248ae-a788-4676-a12e-f4d81205600b",
+ "path": "/leftStick/right",
+ "interactions": "",
+ "processors": "",
+ "groups": ";Gamepad",
+ "action": "Navigate",
+ "isComposite": false,
+ "isPartOfComposite": true
+ },
+ {
+ "name": "right",
+ "id": "1f04d9bc-c50b-41a1-bfcc-afb75475ec20",
+ "path": "/rightStick/right",
+ "interactions": "",
+ "processors": "",
+ "groups": ";Gamepad",
+ "action": "Navigate",
+ "isComposite": false,
+ "isPartOfComposite": true
+ },
+ {
+ "name": "",
+ "id": "fb8277d4-c5cd-4663-9dc7-ee3f0b506d90",
+ "path": "/dpad",
+ "interactions": "",
+ "processors": "",
+ "groups": ";Gamepad",
+ "action": "Navigate",
+ "isComposite": false,
+ "isPartOfComposite": false
+ },
+ {
+ "name": "Joystick",
+ "id": "e25d9774-381c-4a61-b47c-7b6b299ad9f9",
+ "path": "2DVector",
+ "interactions": "",
+ "processors": "",
+ "groups": "",
+ "action": "Navigate",
+ "isComposite": true,
+ "isPartOfComposite": false
+ },
+ {
+ "name": "up",
+ "id": "3db53b26-6601-41be-9887-63ac74e79d19",
+ "path": "/stick/up",
+ "interactions": "",
+ "processors": "",
+ "groups": "Joystick",
+ "action": "Navigate",
+ "isComposite": false,
+ "isPartOfComposite": true
+ },
+ {
+ "name": "down",
+ "id": "0cb3e13e-3d90-4178-8ae6-d9c5501d653f",
+ "path": "/stick/down",
+ "interactions": "",
+ "processors": "",
+ "groups": "Joystick",
+ "action": "Navigate",
+ "isComposite": false,
+ "isPartOfComposite": true
+ },
+ {
+ "name": "left",
+ "id": "0392d399-f6dd-4c82-8062-c1e9c0d34835",
+ "path": "/stick/left",
+ "interactions": "",
+ "processors": "",
+ "groups": "Joystick",
+ "action": "Navigate",
+ "isComposite": false,
+ "isPartOfComposite": true
+ },
+ {
+ "name": "right",
+ "id": "942a66d9-d42f-43d6-8d70-ecb4ba5363bc",
+ "path": "/stick/right",
+ "interactions": "",
+ "processors": "",
+ "groups": "Joystick",
+ "action": "Navigate",
+ "isComposite": false,
+ "isPartOfComposite": true
+ },
+ {
+ "name": "Keyboard",
+ "id": "ff527021-f211-4c02-933e-5976594c46ed",
+ "path": "2DVector",
+ "interactions": "",
+ "processors": "",
+ "groups": "",
+ "action": "Navigate",
+ "isComposite": true,
+ "isPartOfComposite": false
+ },
+ {
+ "name": "up",
+ "id": "563fbfdd-0f09-408d-aa75-8642c4f08ef0",
+ "path": "/w",
+ "interactions": "",
+ "processors": "",
+ "groups": "Keyboard&Mouse",
+ "action": "Navigate",
+ "isComposite": false,
+ "isPartOfComposite": true
+ },
+ {
+ "name": "up",
+ "id": "eb480147-c587-4a33-85ed-eb0ab9942c43",
+ "path": "/upArrow",
+ "interactions": "",
+ "processors": "",
+ "groups": "Keyboard&Mouse",
+ "action": "Navigate",
+ "isComposite": false,
+ "isPartOfComposite": true
+ },
+ {
+ "name": "down",
+ "id": "2bf42165-60bc-42ca-8072-8c13ab40239b",
+ "path": "/s",
+ "interactions": "",
+ "processors": "",
+ "groups": "Keyboard&Mouse",
+ "action": "Navigate",
+ "isComposite": false,
+ "isPartOfComposite": true
+ },
+ {
+ "name": "down",
+ "id": "85d264ad-e0a0-4565-b7ff-1a37edde51ac",
+ "path": "/downArrow",
+ "interactions": "",
+ "processors": "",
+ "groups": "Keyboard&Mouse",
+ "action": "Navigate",
+ "isComposite": false,
+ "isPartOfComposite": true
+ },
+ {
+ "name": "left",
+ "id": "74214943-c580-44e4-98eb-ad7eebe17902",
+ "path": "/a",
+ "interactions": "",
+ "processors": "",
+ "groups": "Keyboard&Mouse",
+ "action": "Navigate",
+ "isComposite": false,
+ "isPartOfComposite": true
+ },
+ {
+ "name": "left",
+ "id": "cea9b045-a000-445b-95b8-0c171af70a3b",
+ "path": "/leftArrow",
+ "interactions": "",
+ "processors": "",
+ "groups": "Keyboard&Mouse",
+ "action": "Navigate",
+ "isComposite": false,
+ "isPartOfComposite": true
+ },
+ {
+ "name": "right",
+ "id": "8607c725-d935-4808-84b1-8354e29bab63",
+ "path": "/d",
+ "interactions": "",
+ "processors": "",
+ "groups": "Keyboard&Mouse",
+ "action": "Navigate",
+ "isComposite": false,
+ "isPartOfComposite": true
+ },
+ {
+ "name": "right",
+ "id": "4cda81dc-9edd-4e03-9d7c-a71a14345d0b",
+ "path": "/rightArrow",
+ "interactions": "",
+ "processors": "",
+ "groups": "Keyboard&Mouse",
+ "action": "Navigate",
+ "isComposite": false,
+ "isPartOfComposite": true
+ },
+ {
+ "name": "",
+ "id": "9e92bb26-7e3b-4ec4-b06b-3c8f8e498ddc",
+ "path": "*/{Submit}",
+ "interactions": "",
+ "processors": "",
+ "groups": "Keyboard&Mouse;Gamepad;Touch;Joystick;XR",
+ "action": "Submit",
+ "isComposite": false,
+ "isPartOfComposite": false
+ },
+ {
+ "name": "",
+ "id": "82627dcc-3b13-4ba9-841d-e4b746d6553e",
+ "path": "*/{Cancel}",
+ "interactions": "",
+ "processors": "",
+ "groups": "Keyboard&Mouse;Gamepad;Touch;Joystick;XR",
+ "action": "Cancel",
+ "isComposite": false,
+ "isPartOfComposite": false
+ },
+ {
+ "name": "",
+ "id": "c52c8e0b-8179-41d3-b8a1-d149033bbe86",
+ "path": "/position",
+ "interactions": "",
+ "processors": "",
+ "groups": "Keyboard&Mouse",
+ "action": "Point",
+ "isComposite": false,
+ "isPartOfComposite": false
+ },
+ {
+ "name": "",
+ "id": "e1394cbc-336e-44ce-9ea8-6007ed6193f7",
+ "path": "/position",
+ "interactions": "",
+ "processors": "",
+ "groups": "Keyboard&Mouse",
+ "action": "Point",
+ "isComposite": false,
+ "isPartOfComposite": false
+ },
+ {
+ "name": "",
+ "id": "5693e57a-238a-46ed-b5ae-e64e6e574302",
+ "path": "/touch*/position",
+ "interactions": "",
+ "processors": "",
+ "groups": "Touch",
+ "action": "Point",
+ "isComposite": false,
+ "isPartOfComposite": false
+ },
+ {
+ "name": "",
+ "id": "4faf7dc9-b979-4210-aa8c-e808e1ef89f5",
+ "path": "/leftButton",
+ "interactions": "",
+ "processors": "",
+ "groups": ";Keyboard&Mouse",
+ "action": "Click",
+ "isComposite": false,
+ "isPartOfComposite": false
+ },
+ {
+ "name": "",
+ "id": "8d66d5ba-88d7-48e6-b1cd-198bbfef7ace",
+ "path": "/tip",
+ "interactions": "",
+ "processors": "",
+ "groups": ";Keyboard&Mouse",
+ "action": "Click",
+ "isComposite": false,
+ "isPartOfComposite": false
+ },
+ {
+ "name": "",
+ "id": "47c2a644-3ebc-4dae-a106-589b7ca75b59",
+ "path": "/touch*/press",
+ "interactions": "",
+ "processors": "",
+ "groups": "Touch",
+ "action": "Click",
+ "isComposite": false,
+ "isPartOfComposite": false
+ },
+ {
+ "name": "",
+ "id": "bb9e6b34-44bf-4381-ac63-5aa15d19f677",
+ "path": "/trigger",
+ "interactions": "",
+ "processors": "",
+ "groups": "XR",
+ "action": "Click",
+ "isComposite": false,
+ "isPartOfComposite": false
+ },
+ {
+ "name": "",
+ "id": "38c99815-14ea-4617-8627-164d27641299",
+ "path": "/scroll",
+ "interactions": "",
+ "processors": "",
+ "groups": ";Keyboard&Mouse",
+ "action": "ScrollWheel",
+ "isComposite": false,
+ "isPartOfComposite": false
+ },
+ {
+ "name": "",
+ "id": "4c191405-5738-4d4b-a523-c6a301dbf754",
+ "path": "/rightButton",
+ "interactions": "",
+ "processors": "",
+ "groups": "Keyboard&Mouse",
+ "action": "RightClick",
+ "isComposite": false,
+ "isPartOfComposite": false
+ },
+ {
+ "name": "",
+ "id": "24066f69-da47-44f3-a07e-0015fb02eb2e",
+ "path": "/middleButton",
+ "interactions": "",
+ "processors": "",
+ "groups": "Keyboard&Mouse",
+ "action": "MiddleClick",
+ "isComposite": false,
+ "isPartOfComposite": false
+ },
+ {
+ "name": "",
+ "id": "7236c0d9-6ca3-47cf-a6ee-a97f5b59ea77",
+ "path": "/devicePosition",
+ "interactions": "",
+ "processors": "",
+ "groups": "XR",
+ "action": "TrackedDevicePosition",
+ "isComposite": false,
+ "isPartOfComposite": false
+ },
+ {
+ "name": "",
+ "id": "23e01e3a-f935-4948-8d8b-9bcac77714fb",
+ "path": "/deviceRotation",
+ "interactions": "",
+ "processors": "",
+ "groups": "XR",
+ "action": "TrackedDeviceOrientation",
+ "isComposite": false,
+ "isPartOfComposite": false
+ }
+ ]
+ }
+ ],
+ "controlSchemes": [
+ {
+ "name": "Keyboard&Mouse",
+ "bindingGroup": "Keyboard&Mouse",
+ "devices": [
+ {
+ "devicePath": "",
+ "isOptional": false,
+ "isOR": false
+ },
+ {
+ "devicePath": "",
+ "isOptional": false,
+ "isOR": false
+ }
+ ]
+ },
+ {
+ "name": "Gamepad",
+ "bindingGroup": "Gamepad",
+ "devices": [
+ {
+ "devicePath": "",
+ "isOptional": false,
+ "isOR": false
+ }
+ ]
+ },
+ {
+ "name": "Touch",
+ "bindingGroup": "Touch",
+ "devices": [
+ {
+ "devicePath": "",
+ "isOptional": false,
+ "isOR": false
+ }
+ ]
+ },
+ {
+ "name": "Joystick",
+ "bindingGroup": "Joystick",
+ "devices": [
+ {
+ "devicePath": "",
+ "isOptional": false,
+ "isOR": false
+ }
+ ]
+ },
+ {
+ "name": "XR",
+ "bindingGroup": "XR",
+ "devices": [
+ {
+ "devicePath": "",
+ "isOptional": false,
+ "isOR": false
+ }
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/Assets/Settings/Input/InputSystem_Actions.inputactions.meta b/Assets/Settings/Input/InputSystem_Actions.inputactions.meta
new file mode 100644
index 0000000..8db76b0
--- /dev/null
+++ b/Assets/Settings/Input/InputSystem_Actions.inputactions.meta
@@ -0,0 +1,14 @@
+fileFormatVersion: 2
+guid: 1398fae1742c4a5478b232df8ffe9c04
+ScriptedImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 2
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+ script: {fileID: 11500000, guid: 8404be70184654265930450def6a9037, type: 3}
+ generateWrapperCode: 0
+ wrapperCodePath:
+ wrapperClassName:
+ wrapperCodeNamespace:
diff --git a/Assets/Settings/Input/PlayerInputActions.inputactions b/Assets/Settings/Input/PlayerInputActions.inputactions
index 444afa7..9a76a78 100644
--- a/Assets/Settings/Input/PlayerInputActions.inputactions
+++ b/Assets/Settings/Input/PlayerInputActions.inputactions
@@ -7,12 +7,12 @@
"actions": [
{
"name": "Move",
- "type": "Button",
+ "type": "Value",
"id": "cba876cd-5594-42ac-a4b0-2f2ed0f0e120",
- "expectedControlType": "",
+ "expectedControlType": "Vector2",
"processors": "",
"interactions": "",
- "initialStateCheck": false
+ "initialStateCheck": true
},
{
"name": "Look",
@@ -22,28 +22,123 @@
"processors": "",
"interactions": "",
"initialStateCheck": true
+ },
+ {
+ "name": "Jump",
+ "type": "Button",
+ "id": "850284f0-b2d8-412c-9970-c1a7256e29de",
+ "expectedControlType": "",
+ "processors": "",
+ "interactions": "",
+ "initialStateCheck": false
+ },
+ {
+ "name": "Interact",
+ "type": "Button",
+ "id": "b405cb77-699f-4558-831a-c6c12a5c0300",
+ "expectedControlType": "",
+ "processors": "",
+ "interactions": "",
+ "initialStateCheck": false
}
],
"bindings": [
{
"name": "",
- "id": "dab4d8f6-9492-4327-8944-76f09907ba54",
+ "id": "d7c34f0b-b18e-4498-8d3e-1bdec4cb355d",
+ "path": "/delta",
+ "interactions": "",
+ "processors": "",
+ "groups": "",
+ "action": "Look",
+ "isComposite": false,
+ "isPartOfComposite": false
+ },
+ {
+ "name": "2D Vector",
+ "id": "132c4a80-d02d-43c4-bf7b-8e0ff43a44de",
+ "path": "2DVector",
+ "interactions": "",
+ "processors": "",
+ "groups": "",
+ "action": "Move",
+ "isComposite": true,
+ "isPartOfComposite": false
+ },
+ {
+ "name": "up",
+ "id": "a4d4ec38-2560-46b0-b57b-d9ea0f35d701",
"path": "/w",
"interactions": "",
"processors": "",
"groups": "",
"action": "Move",
"isComposite": false,
+ "isPartOfComposite": true
+ },
+ {
+ "name": "down",
+ "id": "f1c59ea2-0648-4f49-8cfb-d566be529303",
+ "path": "/s",
+ "interactions": "",
+ "processors": "",
+ "groups": "",
+ "action": "Move",
+ "isComposite": false,
+ "isPartOfComposite": true
+ },
+ {
+ "name": "left",
+ "id": "529b3ae4-cbf4-412c-a783-5bf62c57de72",
+ "path": "/a",
+ "interactions": "",
+ "processors": "",
+ "groups": "",
+ "action": "Move",
+ "isComposite": false,
+ "isPartOfComposite": true
+ },
+ {
+ "name": "right",
+ "id": "57ddd6bd-cbf7-4cfb-98d3-5b4458a21562",
+ "path": "/d",
+ "interactions": "",
+ "processors": "",
+ "groups": "",
+ "action": "Move",
+ "isComposite": false,
+ "isPartOfComposite": true
+ },
+ {
+ "name": "",
+ "id": "b6a61d59-edf3-4759-8791-8967ffa1e187",
+ "path": "/space",
+ "interactions": "",
+ "processors": "",
+ "groups": "",
+ "action": "Jump",
+ "isComposite": false,
"isPartOfComposite": false
},
{
"name": "",
- "id": "d7c34f0b-b18e-4498-8d3e-1bdec4cb355d",
- "path": "/position",
+ "id": "c7bb1d3e-20de-4ff9-96fc-bfc70ca54e20",
+ "path": "/f",
"interactions": "",
"processors": "",
"groups": "",
- "action": "Look",
+ "action": "Interact",
+ "isComposite": false,
+ "isPartOfComposite": false
+ },
+ {
+ "name": "",
+ "id": "ab4a9194-7003-42f9-a13b-f6edf0427a6e",
+ "path": "/leftButton",
+ "interactions": "",
+ "processors": "",
+ "groups": "",
+ "action": "Interact",
"isComposite": false,
"isPartOfComposite": false
}
diff --git a/Assets/Settings/Input/PlayerInputActions.inputactions.meta b/Assets/Settings/Input/PlayerInputActions.inputactions.meta
index 81753fd..66c6881 100644
--- a/Assets/Settings/Input/PlayerInputActions.inputactions.meta
+++ b/Assets/Settings/Input/PlayerInputActions.inputactions.meta
@@ -9,6 +9,6 @@ ScriptedImporter:
assetBundleVariant:
script: {fileID: 11500000, guid: 8404be70184654265930450def6a9037, type: 3}
generateWrapperCode: 1
- wrapperCodePath: Assets/Script/Core/Input/PlayerInputActions.cs
+ wrapperCodePath: Assets/Script/Gameplay/Input/PlayerInputActions.cs
wrapperClassName:
- wrapperCodeNamespace: Core
+ wrapperCodeNamespace: Input
diff --git a/Packages/manifest.json b/Packages/manifest.json
index 94bd939..bf576f1 100644
--- a/Packages/manifest.json
+++ b/Packages/manifest.json
@@ -1,5 +1,6 @@
{
"dependencies": {
+ "com.cysharp.unitask": "https://github.com/Cysharp/UniTask.git?path=src/UniTask/Assets/Plugins/UniTask",
"com.unity.collab-proxy": "2.10.0",
"com.unity.ide.rider": "3.0.34",
"com.unity.ide.visualstudio": "2.0.22",
diff --git a/Packages/packages-lock.json b/Packages/packages-lock.json
index 6294255..cee96ec 100644
--- a/Packages/packages-lock.json
+++ b/Packages/packages-lock.json
@@ -1,5 +1,12 @@
{
"dependencies": {
+ "com.cysharp.unitask": {
+ "version": "https://github.com/Cysharp/UniTask.git?path=src/UniTask/Assets/Plugins/UniTask",
+ "depth": 0,
+ "source": "git",
+ "dependencies": {},
+ "hash": "73a63b7f672b88f7e9992f6917eb458a8cbb6fa9"
+ },
"com.unity.burst": {
"version": "1.8.18",
"depth": 1,
diff --git a/ProjectSettings/ProjectSettings.asset b/ProjectSettings/ProjectSettings.asset
index c7ca432..2c526e4 100644
--- a/ProjectSettings/ProjectSettings.asset
+++ b/ProjectSettings/ProjectSettings.asset
@@ -810,7 +810,24 @@ PlayerSettings:
webGLMemoryGeometricGrowthStep: 0.2
webGLMemoryGeometricGrowthCap: 96
webGLPowerPreference: 2
- scriptingDefineSymbols: {}
+ scriptingDefineSymbols:
+ Android: DOTWEEN
+ EmbeddedLinux: DOTWEEN
+ GameCoreScarlett: DOTWEEN
+ GameCoreXboxOne: DOTWEEN
+ LinuxHeadlessSimulation: DOTWEEN
+ Nintendo Switch: DOTWEEN
+ PS4: DOTWEEN
+ PS5: DOTWEEN
+ QNX: DOTWEEN
+ Stadia: DOTWEEN
+ Standalone: DOTWEEN
+ VisionOS: DOTWEEN
+ WebGL: DOTWEEN
+ Windows Store Apps: DOTWEEN
+ XboxOne: DOTWEEN
+ iPhone: DOTWEEN
+ tvOS: DOTWEEN
additionalCompilerArguments: {}
platformArchitecture: {}
scriptingBackend: {}
diff --git a/ProjectSettings/TagManager.asset b/ProjectSettings/TagManager.asset
index 1c92a78..588a62e 100644
--- a/ProjectSettings/TagManager.asset
+++ b/ProjectSettings/TagManager.asset
@@ -11,7 +11,7 @@ TagManager:
-
- Water
- UI
- -
+ - Ground
-
-
-