diff --git a/.vsconfig b/.vsconfig
new file mode 100644
index 0000000..d70cd98
--- /dev/null
+++ b/.vsconfig
@@ -0,0 +1,6 @@
+{
+ "version": "1.0",
+ "components": [
+ "Microsoft.VisualStudio.Workload.ManagedGame"
+ ]
+}
diff --git a/Assets/Physic2DMaterial.meta b/Assets/Physic2DMaterial.meta
new file mode 100644
index 0000000..2bcff0d
--- /dev/null
+++ b/Assets/Physic2DMaterial.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: b1bc1f31bec99cf459c30fe48876c6e1
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Physic2DMaterial/No Friction.physicsMaterial2D b/Assets/Physic2DMaterial/No Friction.physicsMaterial2D
new file mode 100644
index 0000000..50b9dde
--- /dev/null
+++ b/Assets/Physic2DMaterial/No Friction.physicsMaterial2D
@@ -0,0 +1,11 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!62 &6200000
+PhysicsMaterial2D:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: No Friction
+ friction: 0
+ bounciness: 0
diff --git a/Assets/Physic2DMaterial/No Friction.physicsMaterial2D.meta b/Assets/Physic2DMaterial/No Friction.physicsMaterial2D.meta
new file mode 100644
index 0000000..8d0feb7
--- /dev/null
+++ b/Assets/Physic2DMaterial/No Friction.physicsMaterial2D.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 2a806147463d9e148aef5c04f75c281d
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 6200000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scenes/乐/Sample1.unity b/Assets/Scenes/乐/Sample1.unity
new file mode 100644
index 0000000..5474262
--- /dev/null
+++ b/Assets/Scenes/乐/Sample1.unity
@@ -0,0 +1,605 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!29 &1
+OcclusionCullingSettings:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_OcclusionBakeSettings:
+ smallestOccluder: 5
+ smallestHole: 0.25
+ backfaceThreshold: 100
+ m_SceneGUID: 00000000000000000000000000000000
+ m_OcclusionCullingData: {fileID: 0}
+--- !u!104 &2
+RenderSettings:
+ m_ObjectHideFlags: 0
+ serializedVersion: 9
+ m_Fog: 0
+ m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
+ m_FogMode: 3
+ m_FogDensity: 0.01
+ m_LinearFogStart: 0
+ m_LinearFogEnd: 300
+ m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1}
+ m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}
+ m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}
+ m_AmbientIntensity: 1
+ m_AmbientMode: 3
+ m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
+ m_SkyboxMaterial: {fileID: 0}
+ m_HaloStrength: 0.5
+ m_FlareStrength: 1
+ m_FlareFadeSpeed: 3
+ m_HaloTexture: {fileID: 0}
+ m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
+ m_DefaultReflectionMode: 0
+ m_DefaultReflectionResolution: 128
+ m_ReflectionBounces: 1
+ m_ReflectionIntensity: 1
+ m_CustomReflection: {fileID: 0}
+ m_Sun: {fileID: 0}
+ m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1}
+ m_UseRadianceAmbientProbe: 0
+--- !u!157 &3
+LightmapSettings:
+ m_ObjectHideFlags: 0
+ serializedVersion: 12
+ m_GIWorkflowMode: 1
+ m_GISettings:
+ serializedVersion: 2
+ m_BounceScale: 1
+ m_IndirectOutputScale: 1
+ m_AlbedoBoost: 1
+ m_EnvironmentLightingMode: 0
+ m_EnableBakedLightmaps: 0
+ m_EnableRealtimeLightmaps: 0
+ m_LightmapEditorSettings:
+ serializedVersion: 12
+ m_Resolution: 2
+ m_BakeResolution: 40
+ m_AtlasSize: 1024
+ m_AO: 0
+ m_AOMaxDistance: 1
+ m_CompAOExponent: 1
+ m_CompAOExponentDirect: 0
+ m_ExtractAmbientOcclusion: 0
+ m_Padding: 2
+ m_LightmapParameters: {fileID: 0}
+ m_LightmapsBakeMode: 1
+ m_TextureCompression: 1
+ m_FinalGather: 0
+ m_FinalGatherFiltering: 1
+ m_FinalGatherRayCount: 256
+ m_ReflectionCompression: 2
+ m_MixedBakeMode: 2
+ m_BakeBackend: 1
+ m_PVRSampling: 1
+ m_PVRDirectSampleCount: 32
+ m_PVRSampleCount: 512
+ m_PVRBounces: 2
+ m_PVREnvironmentSampleCount: 256
+ m_PVREnvironmentReferencePointCount: 2048
+ m_PVRFilteringMode: 1
+ m_PVRDenoiserTypeDirect: 1
+ m_PVRDenoiserTypeIndirect: 1
+ m_PVRDenoiserTypeAO: 1
+ m_PVRFilterTypeDirect: 0
+ m_PVRFilterTypeIndirect: 0
+ m_PVRFilterTypeAO: 0
+ m_PVREnvironmentMIS: 1
+ m_PVRCulling: 1
+ m_PVRFilteringGaussRadiusDirect: 1
+ m_PVRFilteringGaussRadiusIndirect: 5
+ m_PVRFilteringGaussRadiusAO: 2
+ m_PVRFilteringAtrousPositionSigmaDirect: 0.5
+ m_PVRFilteringAtrousPositionSigmaIndirect: 2
+ m_PVRFilteringAtrousPositionSigmaAO: 1
+ m_ExportTrainingData: 0
+ m_TrainingDataDestination: TrainingData
+ m_LightProbeSampleCountMultiplier: 4
+ m_LightingDataAsset: {fileID: 0}
+ m_LightingSettings: {fileID: 0}
+--- !u!196 &4
+NavMeshSettings:
+ serializedVersion: 2
+ m_ObjectHideFlags: 0
+ m_BuildSettings:
+ serializedVersion: 2
+ agentTypeID: 0
+ agentRadius: 0.5
+ agentHeight: 2
+ agentSlope: 45
+ agentClimb: 0.4
+ ledgeDropHeight: 0
+ maxJumpAcrossDistance: 0
+ minRegionArea: 2
+ manualCellSize: 0
+ cellSize: 0.16666667
+ manualTileSize: 0
+ tileSize: 256
+ accuratePlacement: 0
+ maxJobWorkers: 0
+ preserveTilesOutsideBounds: 0
+ debug:
+ m_Flags: 0
+ m_NavMeshData: {fileID: 0}
+--- !u!1 &223863017
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 223863020}
+ - component: {fileID: 223863019}
+ - component: {fileID: 223863018}
+ m_Layer: 0
+ m_Name: Ground
+ m_TagString: Ground
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!61 &223863018
+BoxCollider2D:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 223863017}
+ m_Enabled: 1
+ m_Density: 1
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_UsedByEffector: 0
+ m_UsedByComposite: 0
+ m_Offset: {x: 0, y: 0}
+ m_SpriteTilingProperty:
+ border: {x: 0, y: 0, z: 0, w: 0}
+ pivot: {x: 0.5, y: 0.5}
+ oldSize: {x: 1, y: 1}
+ newSize: {x: 1, y: 1}
+ adaptiveTilingThreshold: 0.5
+ drawMode: 0
+ adaptiveTiling: 0
+ m_AutoTiling: 0
+ serializedVersion: 2
+ m_Size: {x: 1, y: 1}
+ m_EdgeRadius: 0
+--- !u!212 &223863019
+SpriteRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 223863017}
+ m_Enabled: 1
+ m_CastShadows: 0
+ m_ReceiveShadows: 0
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 0
+ m_RayTraceProcedural: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: a97c105638bdf8b4a8650670310a4cd3, 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: 0
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_Sprite: {fileID: 7482667652216324306, guid: 48e93eef0688c4a259cb0eddcd8661f7, type: 3}
+ m_Color: {r: 0, g: 0, b: 0, a: 1}
+ m_FlipX: 0
+ m_FlipY: 0
+ m_DrawMode: 0
+ m_Size: {x: 1, y: 1}
+ m_AdaptiveModeThreshold: 0.5
+ m_SpriteTileMode: 0
+ m_WasSpriteAssigned: 1
+ m_MaskInteraction: 0
+ m_SpriteSortPoint: 0
+--- !u!4 &223863020
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 223863017}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: -4.06, z: 0}
+ m_LocalScale: {x: 17.697626, y: 2.321, z: 2.321}
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_RootOrder: 3
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &537498726
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 537498729}
+ - component: {fileID: 537498728}
+ - component: {fileID: 537498727}
+ - component: {fileID: 537498730}
+ 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 &537498727
+AudioListener:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 537498726}
+ m_Enabled: 1
+--- !u!20 &537498728
+Camera:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 537498726}
+ 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_SensorSize: {x: 36, y: 24}
+ m_LensShift: {x: 0, y: 0}
+ m_FocalLength: 50
+ m_NormalizedViewPortRect:
+ serializedVersion: 2
+ x: 0
+ y: 0
+ width: 1
+ height: 1
+ near clip plane: 0.3
+ far clip plane: 1000
+ field of view: 60
+ orthographic: 1
+ orthographic size: 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 &537498729
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 537498726}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: -10}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &537498730
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 537498726}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: a79441f348de89743a2939f4d699eac1, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_RenderShadows: 1
+ m_RequiresDepthTextureOption: 2
+ m_RequiresOpaqueTextureOption: 2
+ m_CameraType: 0
+ m_Cameras: []
+ m_RendererIndex: -1
+ m_VolumeLayerMask:
+ serializedVersion: 2
+ m_Bits: 1
+ m_VolumeTrigger: {fileID: 0}
+ m_VolumeFrameworkUpdateModeOption: 2
+ m_RenderPostProcessing: 0
+ m_Antialiasing: 0
+ m_AntialiasingQuality: 2
+ m_StopNaN: 0
+ m_Dithering: 0
+ m_ClearDepth: 1
+ m_AllowXRRendering: 1
+ m_RequiresDepthTexture: 0
+ m_RequiresColorTexture: 0
+ m_Version: 2
+--- !u!1 &751536331
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 751536333}
+ - component: {fileID: 751536332}
+ m_Layer: 0
+ m_Name: Global Light 2D
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &751536332
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 751536331}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 073797afb82c5a1438f328866b10b3f0, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_LightType: 4
+ m_BlendStyleIndex: 0
+ m_FalloffIntensity: 0.5
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_Intensity: 1
+ m_LightVolumeOpacity: 0
+ m_ApplyToSortingLayers: 00000000
+ m_LightCookieSprite: {fileID: 0}
+ m_UseNormalMap: 0
+ m_LightOrder: 0
+ m_AlphaBlendOnOverlap: 0
+ m_ShadowIntensity: 0
+ m_ShadowVolumeIntensity: 0
+ m_PointLightInnerAngle: 360
+ m_PointLightOuterAngle: 360
+ m_PointLightInnerRadius: 0
+ m_PointLightOuterRadius: 1
+ m_PointLightDistance: 3
+ m_PointLightQuality: 1
+ m_ShapeLightParametricSides: 5
+ m_ShapeLightParametricAngleOffset: 0
+ m_ShapeLightParametricRadius: 1
+ m_ShapeLightFalloffSize: 0.5
+ m_ShapeLightFalloffOffset: {x: 0, y: 0}
+ m_ShapePath:
+ - {x: -0.5, y: -0.5, z: 0}
+ - {x: 0.5, y: -0.5, z: 0}
+ - {x: 0.5, y: 0.5, z: 0}
+ - {x: -0.5, y: 0.5, z: 0}
+--- !u!4 &751536333
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 751536331}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1374474098
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1374474099}
+ m_Layer: 0
+ m_Name: GroundCheck
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1374474099
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1374474098}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: -0.56, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 1658378288}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1658378286
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1658378288}
+ - component: {fileID: 1658378287}
+ - component: {fileID: 1658378289}
+ - component: {fileID: 1658378290}
+ - component: {fileID: 1658378291}
+ m_Layer: 0
+ m_Name: Player
+ m_TagString: Player
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!212 &1658378287
+SpriteRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1658378286}
+ m_Enabled: 1
+ m_CastShadows: 0
+ m_ReceiveShadows: 0
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 0
+ m_RayTraceProcedural: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: a97c105638bdf8b4a8650670310a4cd3, 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: 0
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_Sprite: {fileID: 21300000, guid: 280dd2a14df942246955c1936e6114bd, type: 3}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_FlipX: 0
+ m_FlipY: 0
+ m_DrawMode: 0
+ m_Size: {x: 1, y: 1}
+ m_AdaptiveModeThreshold: 0.5
+ m_SpriteTileMode: 0
+ m_WasSpriteAssigned: 1
+ m_MaskInteraction: 0
+ m_SpriteSortPoint: 0
+--- !u!4 &1658378288
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1658378286}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 1374474099}
+ m_Father: {fileID: 0}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &1658378289
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1658378286}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 94a70686225bbcc40a44a76ac05951e0, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ inputDir: 0
+ GroundCheck: {fileID: 1374474099}
+ isRight: 1
+ isGround: 0
+ speed: 5
+ jumpForce: 10
+ flipDuration: 0.3
+--- !u!50 &1658378290
+Rigidbody2D:
+ serializedVersion: 4
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1658378286}
+ m_BodyType: 0
+ m_Simulated: 1
+ m_UseFullKinematicContacts: 0
+ m_UseAutoMass: 0
+ m_Mass: 1
+ m_LinearDrag: 0
+ m_AngularDrag: 0.05
+ m_GravityScale: 2
+ m_Material: {fileID: 6200000, guid: 2a806147463d9e148aef5c04f75c281d, type: 2}
+ m_Interpolate: 0
+ m_SleepingMode: 1
+ m_CollisionDetection: 0
+ m_Constraints: 0
+--- !u!61 &1658378291
+BoxCollider2D:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1658378286}
+ m_Enabled: 1
+ m_Density: 1
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_UsedByEffector: 0
+ m_UsedByComposite: 0
+ m_Offset: {x: 0, y: 0}
+ m_SpriteTilingProperty:
+ border: {x: 0, y: 0, z: 0, w: 0}
+ pivot: {x: 0.5, y: 0.5}
+ oldSize: {x: 1, y: 1}
+ newSize: {x: 1, y: 1}
+ adaptiveTilingThreshold: 0.5
+ drawMode: 0
+ adaptiveTiling: 0
+ m_AutoTiling: 0
+ serializedVersion: 2
+ m_Size: {x: 1, y: 1}
+ m_EdgeRadius: 0
diff --git a/Assets/Scenes/乐/Sample1.unity.meta b/Assets/Scenes/乐/Sample1.unity.meta
new file mode 100644
index 0000000..17ce455
--- /dev/null
+++ b/Assets/Scenes/乐/Sample1.unity.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: ee694e09c439ff94d836d965bd1d96de
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scripts/乐/Player.cs b/Assets/Scripts/乐/Player.cs
index 9d14ce6..e42fdee 100644
--- a/Assets/Scripts/乐/Player.cs
+++ b/Assets/Scripts/乐/Player.cs
@@ -2,14 +2,51 @@ using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.InputSystem;
+using Sirenix.OdinInspector;
+using DG.Tweening;
public class Player : PlayerControl
{
///
- /// Ҹ
- ///
+ /// Ҹ
+ ///
Rigidbody2D m_rigidbody;
+ ///
+ /// ŵλ
+ ///
+ [Header("ŵλ")] [FoldoutGroup("")]
+ public Transform GroundCheck;
+
+ ///
+ /// ɫΪ1
+ ///
+ [ReadOnly] [Header("")]
+ public int isRight = 1;
+
+ ///
+ /// ɫǷ
+ ///
+ [ReadOnly]
+ [Header("ؼ")]
+ public bool isGround = false;
+
+
+
+ [Header("ٶ")][FoldoutGroup("ɫ")]
+ public float speed;
+
+ [Header("Ծ")][FoldoutGroup("ɫ")]
+ public float jumpForce;
+
+
+ ///
+ /// ɫʱ
+ ///
+ [Header("ɫʱ")]
+ public float flipDuration = 0.1f;
+
+
///
/// ҳʼ
///
@@ -17,30 +54,97 @@ public class Player : PlayerControl
{
base.Start();
m_rigidbody = gameObject.GetComponent();
+
}
-
+ //UPDATE
void Update()
{
-
+ OnInputDetect();
+ Flip();
}
///
- /// дƺ
+ /// 溯
///
+ void Flip()
+ {
+ int lastFrameDir = isRight;
+ if (inputDir * lastFrameDir < 0)
+ { isRight *= -1;
+ //transform.localScale = new Vector3(-transform.localScale.x, transform.localScale.y, transform.localScale.z);
+ //transform.DOScale(new Vector3(-transform.localScale.x, transform.localScale.y, transform.localScale.z),0.1f);
+
+ //ֵת ԹתδʱٴηתɵʼǶȲͬӶӰĿǶ
+ switch (isRight) {
+ case 1:
+ transform.DORotate(new Vector3(0, 0, 0), flipDuration);
+ break;
+ case -1:
+ transform.DORotate(new Vector3(0,180,0), flipDuration);
+ break;
+ }
+
+
+ }
+
+ }
+
+ ///
+ /// Ƿֹͣҡ
+ ///
+ void OnInputDetect() {
+ if (inputDir == 0)
+ Freeze();
+ }
+ ///
+ /// ǿƾֹ
+ ///
+ void Freeze() {
+ m_rigidbody.velocity = new Vector2(0,m_rigidbody.velocity.y);
+ }
+
///
override protected void OnMove(InputAction.CallbackContext ctx)
{
- base.OnMove(ctx);
+ base.OnMove(ctx);
+ m_rigidbody.velocity = new Vector2(inputDir*speed,m_rigidbody.velocity.y);
}
override protected void OnAtk() {
}
override protected void OnJump() {
-
+ if (isGround == true) {
+ isGround = false;
+ m_rigidbody.velocity = new Vector2(m_rigidbody.velocity.x, jumpForce);
+ }
+
}
override protected void OnInteract() {
}
-}
+
+ private void OnCollisionEnter2D(Collision2D collision)//
+ {
+ //ʱһ
+ if (collision.transform.CompareTag("Ground"))
+ {
+ //ŵһ
+ Ray2D ray = new Ray2D(
+ GroundCheck.position,
+ Vector2.down
+ );
+ Debug.DrawRay(ray.origin, ray.direction, Color.red, 10f);
+ //ȡߵײ
+ RaycastHit2D hit2D;
+ hit2D = Physics2D.Raycast(ray.origin, ray.direction, 0.001f);
+ //нߴǵ,űʾŵ
+ if (hit2D && hit2D.collider.transform.CompareTag("Ground"))
+ {
+ isGround = true;
+ }
+ else Debug.Log("Not Ground");
+ }
+ }
+ }
diff --git a/Assets/Scripts/乐/Player.cs.meta b/Assets/Scripts/乐/Player.cs.meta
new file mode 100644
index 0000000..dfc6241
--- /dev/null
+++ b/Assets/Scripts/乐/Player.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 94a70686225bbcc40a44a76ac05951e0
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Sprites.meta b/Assets/Sprites.meta
new file mode 100644
index 0000000..4cdbcba
--- /dev/null
+++ b/Assets/Sprites.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 35fa3e29009ff0145bd30a8aa30c5c08
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Sprites/sampleBlock.png b/Assets/Sprites/sampleBlock.png
new file mode 100644
index 0000000..abbbeb1
Binary files /dev/null and b/Assets/Sprites/sampleBlock.png differ
diff --git a/Assets/Sprites/sampleBlock.png.meta b/Assets/Sprites/sampleBlock.png.meta
new file mode 100644
index 0000000..99f3762
--- /dev/null
+++ b/Assets/Sprites/sampleBlock.png.meta
@@ -0,0 +1,108 @@
+fileFormatVersion: 2
+guid: 280dd2a14df942246955c1936e6114bd
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 11
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 0
+ 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
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 1
+ mipBias: 0
+ wrapU: 1
+ wrapV: 1
+ wrapW: 1
+ nPOTScale: 0
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 1
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 256
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 1
+ spriteTessellationDetail: -1
+ textureType: 8
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ platformSettings:
+ - serializedVersion: 3
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 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
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ physicsShape: []
+ bones: []
+ spriteID: 5e97eb03825dee720800000000000000
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ spritePackingTag:
+ pSDRemoveMatte: 0
+ pSDShowRemoveMatteOption: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Logs/ApiUpdaterCheck.txt b/Logs/ApiUpdaterCheck.txt
index e4a7d4b..ae7ca0c 100644
--- a/Logs/ApiUpdaterCheck.txt
+++ b/Logs/ApiUpdaterCheck.txt
@@ -28,3 +28,13 @@ C# parse time : -1ms
candidates check time : -1ms
console write time : -1ms
+[api-updater (non-obsolete-error-filter)] 2022/3/12 20:22:13 : Starting D:/unity/2019.3.2f1/2020.3.30f1c1/Editor/Data/Tools/ScriptUpdater/APIUpdater.NonObsoleteApiUpdaterDetector.exe
+[api-updater (non-obsolete-error-filter)]
+----------------------------------
+jit/startup time : 314.7663ms
+moved types parse time: 62ms
+candidates parse time : 1ms
+C# parse time : -1ms
+candidates check time : -1ms
+console write time : -1ms
+
diff --git a/ProjectSettings/TagManager.asset b/ProjectSettings/TagManager.asset
index 1c92a78..df773a1 100644
--- a/ProjectSettings/TagManager.asset
+++ b/ProjectSettings/TagManager.asset
@@ -3,7 +3,8 @@
--- !u!78 &1
TagManager:
serializedVersion: 2
- tags: []
+ tags:
+ - Ground
layers:
- Default
- TransparentFX
diff --git a/UserSettings/EditorUserSettings.asset b/UserSettings/EditorUserSettings.asset
index 4367ca6..d91275c 100644
--- a/UserSettings/EditorUserSettings.asset
+++ b/UserSettings/EditorUserSettings.asset
@@ -20,8 +20,8 @@ EditorUserSettings:
RecentlyUsedScenePath-4:
value: 22424703114646680e0b0227036c6c111b07142f1f2b233e2867083debf42d
flags: 0
- RecentlyUsedScenePath-4:
- value: 22424703114646680e0b0227036cdafbfb5831243c3d3204283a097df7ee3d2cfb
+ RecentlyUsedScenePath-5:
+ value: 22424703114646680e0b0227036cdbc9e6582b2b21382a357c67083debf42d
flags: 0
vcSharedLogLevel:
value: 0d5e400f0650