中间版本存档

This commit is contained in:
2025-05-08 16:17:49 +08:00
parent d3d400d75b
commit 552955f3d4
19 changed files with 1401 additions and 635 deletions
-415
View File
@@ -1,415 +0,0 @@
<linker>
<assembly fullname="AllIn1SpriteShaderAssembly, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null">
<type fullname="AllIn1SpriteShader.AllIn1Shader" preserve="all" />
</assembly>
<assembly fullname="Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null">
<type fullname="ActorManager" preserve="all" />
<type fullname="AibisDream.CenterOption" preserve="all" />
<type fullname="AibisDream.CenterText" preserve="all" />
<type fullname="AibisDream.ClinicSystem" preserve="all" />
<type fullname="AibisDream.CordPull" preserve="all" />
<type fullname="AibisDream.CursorManager" preserve="all" />
<type fullname="AibisDream.DialogBox" preserve="all" />
<type fullname="AibisDream.DialogCanvasManager" preserve="all" />
<type fullname="AibisDream.DialogController" preserve="all" />
<type fullname="AibisDream.EndPanel" preserve="all" />
<type fullname="AibisDream.EngineSystem" preserve="all" />
<type fullname="AibisDream.ExpressionManager" preserve="all" />
<type fullname="AibisDream.EyeSystem" preserve="all" />
<type fullname="AibisDream.FixSystem.BodyModule" preserve="all" />
<type fullname="AibisDream.FixSystem.BodyModuleSystem" preserve="all" />
<type fullname="AibisDream.FixSystem.Cable" preserve="all" />
<type fullname="AibisDream.FixSystem.CableSystem" preserve="all" />
<type fullname="AibisDream.FixSystem.CharacterViewer" preserve="all" />
<type fullname="AibisDream.FixSystem.FixSystemCenter" preserve="all" />
<type fullname="AibisDream.FixSystem.Plug" preserve="all" />
<type fullname="AibisDream.FixSystem.ScreenSystem" preserve="all" />
<type fullname="AibisDream.Framework.EventTriggerEx" preserve="all" />
<type fullname="AibisDream.Framework.MonoCenter" preserve="all" />
<type fullname="AibisDream.Framework.SpriteGroupKit" preserve="all" />
<type fullname="AibisDream.Framework.TextBubble" preserve="all" />
<type fullname="AibisDream.GameManager" preserve="all" />
<type fullname="AibisDream.Gear" preserve="all" />
<type fullname="AibisDream.GearSystem" preserve="all" />
<type fullname="AibisDream.Kit.ActionKitMonoBehaviourEvents" preserve="all" />
<type fullname="AibisDream.Kit.AudioManager" preserve="all" />
<type fullname="AibisDream.Kit.LogKit" preserve="all" />
<type fullname="AibisDream.Kit.MonoUpdateActionExecutor" preserve="all" />
<type fullname="AibisDream.Kit.VerText" preserve="all" />
<type fullname="AibisDream.LanguageItem" preserve="all" />
<type fullname="AibisDream.LineView" preserve="all" />
<type fullname="AibisDream.LocalisedLineProvider" preserve="all" />
<type fullname="AibisDream.MainPanel" preserve="all" />
<type fullname="AibisDream.MouseFollowAndZoom" preserve="all" />
<type fullname="AibisDream.MoveablePartGroup" preserve="all" />
<type fullname="AibisDream.PlayToolPanel" preserve="all" />
<type fullname="AibisDream.RecordPanel" preserve="all" />
<type fullname="AibisDream.SavesPanel" preserve="all" />
<type fullname="AibisDream.SceneLoader" preserve="all" />
<type fullname="AibisDream.SelectItem" preserve="all" />
<type fullname="AibisDream.SettingForm" preserve="all" />
<type fullname="AibisDream.SettingPanel" preserve="all" />
<type fullname="AibisDream.Shaft" preserve="all" />
<type fullname="AibisDream.SliderItem" preserve="all" />
<type fullname="AibisDream.SpeedDashboard" preserve="all" />
<type fullname="AibisDream.StartPanel" preserve="all" />
<type fullname="AibisDream.StorageSystem" preserve="all" />
<type fullname="AibisDream.TalkSceneSO" preserve="all" />
<type fullname="AibisDream.TextBubbleGroup" preserve="all" />
<type fullname="AibisDream.UIManager" preserve="all" />
<type fullname="BackgroundMoveableCharacter" preserve="all" />
<type fullname="CharacterSpawner" preserve="all" />
<type fullname="ChipModule" preserve="all" />
<type fullname="ClueBaordNew" preserve="all" />
<type fullname="ClueInteraction" preserve="all" />
<type fullname="ClueItem" preserve="all" />
<type fullname="ClueManager" preserve="all" />
<type fullname="DraggableUI" preserve="all" />
<type fullname="EnvironmentManager" preserve="all" />
<type fullname="EyeTarget" preserve="all" />
<type fullname="EyeTransitionManager" preserve="all" />
<type fullname="FavoritesManager" preserve="all" />
<type fullname="HeatMapController" preserve="all" />
<type fullname="LineInteraction" preserve="all" />
<type fullname="MemoryClueSlot" preserve="all" />
<type fullname="MemoryProcess" preserve="all" />
<type fullname="MoveableVehicle" preserve="all" />
<type fullname="ParallaxManager" preserve="all" />
<type fullname="PhysicCable" preserve="all" />
<type fullname="PhysicLineSegment" preserve="all" />
<type fullname="PunchTapeSystem" preserve="all" />
<type fullname="ScreenEffectManager" preserve="all" />
<type fullname="Spawner" preserve="all" />
<type fullname="TaskManager" preserve="all" />
<type fullname="TimelineManager" preserve="all" />
<type fullname="UFModule" preserve="all" />
<type fullname="UFSystem" preserve="all" />
<type fullname="VehicleSpawner" preserve="all" />
<type fullname="ViewCameraManager" preserve="all" />
<type fullname="AibisDream.Framework.SpriteGroupConfig" preserve="nothing" serialized="true" />
<type fullname="AibisDream.Framework.SpriteGroupData" preserve="nothing" serialized="true" />
<type fullname="AibisDream.UIFormOption" preserve="nothing" serialized="true" />
<type fullname="AibisDream.EngineConfig" preserve="nothing" serialized="true" />
<type fullname="AibisDream.EngineGear" preserve="nothing" serialized="true" />
<type fullname="AibisDream.FixSystem.BodyModuleData" preserve="nothing" serialized="true" />
<type fullname="AibisDream.FixSystem.CableConfig" preserve="nothing" serialized="true" />
<type fullname="PunchTape" preserve="nothing" serialized="true" />
<type fullname="EyeTransitionManager/ViewConfig" preserve="nothing" serialized="true" />
<type fullname="ParallaxLayerConfig" preserve="nothing" serialized="true" />
<type fullname="ParallaxObjectCategoryConfig" preserve="nothing" serialized="true" />
</assembly>
<assembly fullname="Assembly-CSharp-firstpass, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null">
<type fullname="MeadowGames.UINodeConnect4.Extension.StartPlusEndNodeIDsRule" preserve="all" />
<type fullname="MeadowGames.UINodeConnect4.Extra.ConstantUpdateLines" preserve="all" />
<type fullname="MeadowGames.UINodeConnect4.Extra.HandlerRenderer" preserve="all" />
<type fullname="MeadowGames.UINodeConnect4.GraphicRenderer.UICLineRenderer" preserve="all" />
<type fullname="MeadowGames.UINodeConnect4.GraphManager" preserve="all" />
<type fullname="MeadowGames.UINodeConnect4.InputManager_LegacyInputSystem" preserve="all" />
<type fullname="MeadowGames.UINodeConnect4.Node" preserve="all" />
<type fullname="MeadowGames.UINodeConnect4.Port" preserve="all" />
<type fullname="MeadowGames.UINodeConnect4.PortControlPoint" preserve="all" />
<type fullname="MeadowGames.UINodeConnect4.SampleScene.ScrollViewGraph.CustomScrollRect" preserve="all" />
<type fullname="MeadowGames.UINodeConnect4.SampleScene.ScrollViewGraph.Zoom" preserve="all" />
<type fullname="MeadowGames.UINodeConnect4.UICContextMenu.AddNodeButtonItem" preserve="all" />
<type fullname="MeadowGames.UINodeConnect4.UICContextMenu.ContextMenuManager" preserve="all" />
<type fullname="MeadowGames.UINodeConnect4.UICContextMenu.DefaultConnectionWidthInputItem" preserve="all" />
<type fullname="MeadowGames.UINodeConnect4.UICContextMenu.DefaultCurveStyleDropdownItem" preserve="all" />
<type fullname="MeadowGames.UINodeConnect4.UICContextMenu.DuplicateNodeButtonItem" preserve="all" />
<type fullname="MeadowGames.UINodeConnect4.UICContextMenu.EmptyContextItem" preserve="all" />
<type fullname="MeadowGames.UINodeConnect4.UICContextMenu.RemoveElementsButtonItem" preserve="all" />
<type fullname="MeadowGames.UINodeConnect4.UICContextMenu.SelectedElementLabelItem" preserve="all" />
<type fullname="MeadowGames.UINodeConnect4.UICContextMenu.SetConnectionAnimationActiveToggleItem" preserve="all" />
<type fullname="MeadowGames.UINodeConnect4.UICContextMenu.SetConnectionAnimationPointsSliderItem" preserve="all" />
<type fullname="MeadowGames.UINodeConnect4.UICContextMenu.SetConnectionWidthInputItem" preserve="all" />
<type fullname="MeadowGames.UINodeConnect4.UICContextMenu.SetCurveStyleDropdownItem" preserve="all" />
<type fullname="MeadowGames.UINodeConnect4.UICContextMenu.SetElementsColorItem" preserve="all" />
<type fullname="MeadowGames.UINodeConnect4.UICContextMenu.SetNodesAlignmentItem" preserve="all" />
<type fullname="MeadowGames.UINodeConnect4.UICSystemManager" preserve="all" />
<type fullname="RainbowArt.CleanFlatUI.ButtonTransition" preserve="all" />
<type fullname="RainbowArt.CleanFlatUI.ModalWindowProgressBar" preserve="all" />
<type fullname="RainbowArt.CleanFlatUI.Notification" preserve="all" />
<type fullname="RainbowArt.CleanFlatUI.ProgressBar" preserve="all" />
<type fullname="RainbowArt.CleanFlatUI.ProgressBarGridCircular" preserve="all" />
<type fullname="RainbowArt.CleanFlatUI.SliderTransition" preserve="all" />
<type fullname="MeadowGames.UINodeConnect4.Connection" preserve="nothing" serialized="true" />
<type fullname="MeadowGames.UINodeConnect4.DragSelection" preserve="nothing" serialized="true" />
<type fullname="MeadowGames.UINodeConnect4.GraphicRenderer.Line" preserve="nothing" serialized="true" />
<type fullname="MeadowGames.UINodeConnect4.GraphicRenderer.Line/LineCap" preserve="nothing" serialized="true" />
<type fullname="MeadowGames.UINodeConnect4.GraphicRenderer.LineAnimation" preserve="nothing" serialized="true" />
<type fullname="MeadowGames.UINodeConnect4.Pointer" preserve="nothing" serialized="true" />
<type fullname="RainbowArt.CleanFlatUI.ModalWindowProgressBar/ModalWindowEvent" preserve="nothing" serialized="true" />
<type fullname="RainbowArt.CleanFlatUI.Notification/NotificationEvent" preserve="nothing" serialized="true" />
</assembly>
<assembly fullname="Cinemachine, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null">
<type fullname="Cinemachine.CinemachineBlenderSettings" preserve="all" />
<type fullname="Cinemachine.CinemachineBrain" preserve="all" />
<type fullname="Cinemachine.CinemachinePipeline" preserve="all" />
<type fullname="Cinemachine.CinemachineVirtualCamera" preserve="all" />
<type fullname="Cinemachine.CinemachineBrain/VcamActivatedEvent" preserve="nothing" serialized="true" />
<type fullname="Cinemachine.CinemachineVirtualCameraBase/TransitionParams" preserve="nothing" serialized="true" />
<type fullname="Cinemachine.LensSettings" preserve="nothing" serialized="true" />
<type fullname="Cinemachine.CinemachineBlendDefinition" preserve="nothing" serialized="true" />
<type fullname="Cinemachine.CinemachineBlenderSettings/CustomBlend" preserve="nothing" serialized="true" />
<type fullname="Cinemachine.CinemachineBrain/BrainEvent" preserve="nothing" serialized="true" />
</assembly>
<assembly fullname="Febucci.TextAnimator.Runtime, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null">
<type fullname="Febucci.UI.Actions.ActionDatabase" preserve="all" />
<type fullname="Febucci.UI.Actions.SpeedAction" preserve="all" />
<type fullname="Febucci.UI.Actions.WaitAnyInputAction" preserve="all" />
<type fullname="Febucci.UI.Actions.WaitForAction" preserve="all" />
<type fullname="Febucci.UI.Effects.AnimationsDatabase" preserve="all" />
<type fullname="Febucci.UI.Effects.BounceBehavior" preserve="all" />
<type fullname="Febucci.UI.Effects.DangleBehavior" preserve="all" />
<type fullname="Febucci.UI.Effects.DiagonalExpandAppearance" preserve="all" />
<type fullname="Febucci.UI.Effects.FadeAppearance" preserve="all" />
<type fullname="Febucci.UI.Effects.FadeBehavior" preserve="all" />
<type fullname="Febucci.UI.Effects.HorizontalExpandAppearance" preserve="all" />
<type fullname="Febucci.UI.Effects.OffsetAppearance" preserve="all" />
<type fullname="Febucci.UI.Effects.PendulumBehavior" preserve="all" />
<type fullname="Febucci.UI.Effects.RainbowBehavior" preserve="all" />
<type fullname="Febucci.UI.Effects.RandomDirectionAppearance" preserve="all" />
<type fullname="Febucci.UI.Effects.RotatingAppearance" preserve="all" />
<type fullname="Febucci.UI.Effects.RotationBehavior" preserve="all" />
<type fullname="Febucci.UI.Effects.ShakeBehavior" preserve="all" />
<type fullname="Febucci.UI.Effects.SizeAppearance" preserve="all" />
<type fullname="Febucci.UI.Effects.SizeBehavior" preserve="all" />
<type fullname="Febucci.UI.Effects.SlideBehavior" preserve="all" />
<type fullname="Febucci.UI.Effects.SwingBehavior" preserve="all" />
<type fullname="Febucci.UI.Effects.VerticalExpandAppearance" preserve="all" />
<type fullname="Febucci.UI.Effects.WaveBehavior" preserve="all" />
<type fullname="Febucci.UI.Effects.WiggleBehavior" preserve="all" />
<type fullname="Febucci.UI.TypewriterByCharacter" preserve="all" />
<type fullname="Febucci.UI.Core.CharacterEvent" preserve="nothing" serialized="true" />
<type fullname="Febucci.UI.Core.MessageEvent" preserve="nothing" serialized="true" />
<type fullname="Febucci.UI.TimeData" preserve="nothing" serialized="true" />
</assembly>
<assembly fullname="Febucci.TextAnimator.TMP.Runtime, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null">
<type fullname="Febucci.UI.TextAnimator_TMP" preserve="all" />
</assembly>
<assembly fullname="FMODUnity, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null">
<type fullname="FMODUnity.StudioListener" preserve="all" />
<type fullname="FMOD.GUID" preserve="nothing" serialized="true" />
<type fullname="FMODUnity.EventReference" preserve="nothing" serialized="true" />
</assembly>
<assembly fullname="Unity.Addressables, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" preserve="all">
<type fullname="UnityEngine.AddressableAssets.Addressables" preserve="all" />
</assembly>
<assembly fullname="Unity.Localization, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null">
<type fullname="UnityEngine.Localization.Components.LocalizeStringEvent" preserve="all" />
<type fullname="UnityEngine.Localization.Locale" preserve="all" />
<type fullname="UnityEngine.Localization.Tables.SharedTableData" preserve="all" />
<type fullname="UnityEngine.Localization.Tables.StringTable" preserve="all" />
<type fullname="UnityEngine.Localization.Events.UnityEventString" preserve="nothing" serialized="true" />
<type fullname="UnityEngine.Localization.LocalizedString" preserve="nothing" serialized="true" />
<type fullname="UnityEngine.Localization.Tables.TableEntryReference" preserve="nothing" serialized="true" />
<type fullname="UnityEngine.Localization.Tables.TableReference" preserve="nothing" serialized="true" />
<type fullname="UnityEngine.Localization.LocaleIdentifier" preserve="nothing" serialized="true" />
<type fullname="UnityEngine.Localization.Metadata.MetadataCollection" preserve="nothing" serialized="true" />
<type fullname="UnityEngine.Localization.Metadata.Comment" preserve="nothing" serialized="true" />
<type fullname="UnityEngine.Localization.Tables.DistributedUIDGenerator" preserve="nothing" serialized="true" />
<type fullname="UnityEngine.Localization.Tables.SharedTableData/SharedTableEntry" preserve="nothing" serialized="true" />
<type fullname="UnityEngine.Localization.Metadata.SmartFormatTag" preserve="nothing" serialized="true" />
<type fullname="UnityEngine.Localization.Tables.TableEntryData" preserve="nothing" serialized="true" />
</assembly>
<assembly fullname="Unity.RenderPipelines.Core.Runtime, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null">
<type fullname="UnityEngine.Rendering.Volume" preserve="all" />
<type fullname="UnityEngine.Rendering.VolumeProfile" preserve="all" />
<type fullname="UnityEngine.Rendering.BoolParameter" preserve="nothing" serialized="true" />
<type fullname="UnityEngine.Rendering.ClampedFloatParameter" preserve="nothing" serialized="true" />
<type fullname="UnityEngine.Rendering.ClampedIntParameter" preserve="nothing" serialized="true" />
<type fullname="UnityEngine.Rendering.ColorParameter" preserve="nothing" serialized="true" />
<type fullname="UnityEngine.Rendering.FloatParameter" preserve="nothing" serialized="true" />
<type fullname="UnityEngine.Rendering.MinFloatParameter" preserve="nothing" serialized="true" />
<type fullname="UnityEngine.Rendering.Vector2Parameter" preserve="nothing" serialized="true" />
<type fullname="UnityEngine.Rendering.Vector4Parameter" preserve="nothing" serialized="true" />
<type fullname="UnityEngine.Rendering.NoInterpClampedFloatParameter" preserve="nothing" serialized="true" />
<type fullname="UnityEngine.Rendering.NoInterpColorParameter" preserve="nothing" serialized="true" />
<type fullname="UnityEngine.Rendering.Texture2DParameter" preserve="nothing" serialized="true" />
<type fullname="UnityEngine.Rendering.NoInterpClampedIntParameter" preserve="nothing" serialized="true" />
</assembly>
<assembly fullname="Unity.RenderPipelines.Universal.Runtime, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null">
<type fullname="UnityEngine.Rendering.Universal.ColorAdjustments" preserve="all" />
<type fullname="UnityEngine.Rendering.Universal.DepthOfField" preserve="all" />
<type fullname="UnityEngine.Rendering.Universal.LensDistortion" preserve="all" />
<type fullname="UnityEngine.Rendering.Universal.LiftGammaGain" preserve="all" />
<type fullname="UnityEngine.Rendering.Universal.Light2D" preserve="all" />
<type fullname="UnityEngine.Rendering.Universal.PaniniProjection" preserve="all" />
<type fullname="UnityEngine.Rendering.Universal.Tonemapping" preserve="all" />
<type fullname="UnityEngine.Rendering.Universal.UniversalAdditionalCameraData" preserve="all" />
<type fullname="UnityEngine.Rendering.Universal.Vignette" preserve="all" />
<type fullname="UnityEngine.Rendering.Universal.DepthOfFieldModeParameter" preserve="nothing" serialized="true" />
<type fullname="UnityEngine.Rendering.Universal.HDRACESPresetParameter" preserve="nothing" serialized="true" />
<type fullname="UnityEngine.Rendering.Universal.NeutralRangeReductionModeParameter" preserve="nothing" serialized="true" />
<type fullname="UnityEngine.Rendering.Universal.TemporalAA/Settings" preserve="nothing" serialized="true" />
<type fullname="UnityEngine.Rendering.Universal.TonemappingModeParameter" preserve="nothing" serialized="true" />
</assembly>
<assembly fullname="Unity.ResourceManager, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" preserve="all">
<type fullname="UnityEngine.ResourceManagement.ResourceProviders.AssetBundleProvider" preserve="all" />
<type fullname="UnityEngine.ResourceManagement.ResourceProviders.AtlasSpriteProvider" preserve="all" />
<type fullname="UnityEngine.ResourceManagement.ResourceProviders.BundledAssetProvider" preserve="all" />
<type fullname="UnityEngine.ResourceManagement.ResourceProviders.InstanceProvider" preserve="all" />
<type fullname="UnityEngine.ResourceManagement.ResourceProviders.LegacyResourcesProvider" preserve="all" />
<type fullname="UnityEngine.ResourceManagement.ResourceProviders.SceneProvider" preserve="all" />
</assembly>
<assembly fullname="Unity.TextMeshPro, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null">
<type fullname="TMPro.TextMeshPro" preserve="all" />
<type fullname="TMPro.TextMeshProUGUI" preserve="all" />
<type fullname="TMPro.TMP_Dropdown" preserve="all" />
<type fullname="TMPro.TMP_FontAsset" preserve="all" />
<type fullname="TMPro.TMP_InputField" preserve="all" />
<type fullname="TMPro.FaceInfo_Legacy" preserve="nothing" serialized="true" />
<type fullname="TMPro.FontAssetCreationSettings" preserve="nothing" serialized="true" />
<type fullname="TMPro.KerningTable" preserve="nothing" serialized="true" />
<type fullname="TMPro.TMP_Character" preserve="nothing" serialized="true" />
<type fullname="TMPro.TMP_Dropdown/DropdownEvent" preserve="nothing" serialized="true" />
<type fullname="TMPro.TMP_Dropdown/OptionData" preserve="nothing" serialized="true" />
<type fullname="TMPro.TMP_Dropdown/OptionDataList" preserve="nothing" serialized="true" />
<type fullname="TMPro.TMP_FontFeatureTable" preserve="nothing" serialized="true" />
<type fullname="TMPro.TMP_FontWeightPair" preserve="nothing" serialized="true" />
<type fullname="TMPro.TMP_GlyphAdjustmentRecord" preserve="nothing" serialized="true" />
<type fullname="TMPro.TMP_GlyphPairAdjustmentRecord" preserve="nothing" serialized="true" />
<type fullname="TMPro.TMP_GlyphValueRecord" preserve="nothing" serialized="true" />
<type fullname="TMPro.TMP_InputField/OnChangeEvent" preserve="nothing" serialized="true" />
<type fullname="TMPro.TMP_InputField/SelectionEvent" preserve="nothing" serialized="true" />
<type fullname="TMPro.TMP_InputField/SubmitEvent" preserve="nothing" serialized="true" />
<type fullname="TMPro.TMP_InputField/TextSelectionEvent" preserve="nothing" serialized="true" />
<type fullname="TMPro.TMP_InputField/TouchScreenKeyboardEvent" preserve="nothing" serialized="true" />
<type fullname="TMPro.VertexGradient" preserve="nothing" serialized="true" />
</assembly>
<assembly fullname="Unity.Timeline, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null">
<type fullname="UnityEngine.Timeline.AnimationTrack" preserve="all" />
<type fullname="UnityEngine.Timeline.SignalAsset" preserve="all" />
<type fullname="UnityEngine.Timeline.SignalEmitter" preserve="all" />
<type fullname="UnityEngine.Timeline.SignalReceiver" preserve="all" />
<type fullname="UnityEngine.Timeline.SignalTrack" preserve="all" />
<type fullname="UnityEngine.Timeline.TimelineAsset" preserve="all" />
<type fullname="UnityEngine.Timeline.MarkerList" preserve="nothing" serialized="true" />
<type fullname="UnityEngine.Timeline.TimelineAsset/EditorSettings" preserve="nothing" serialized="true" />
<type fullname="UnityEngine.Timeline.SignalReceiver/EventKeyValue" preserve="nothing" serialized="true" />
</assembly>
<assembly fullname="UnityEngine.AnimationModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null">
<type fullname="UnityEngine.AnimationClip" preserve="all" />
<type fullname="UnityEngine.Animator" preserve="all" />
<type fullname="UnityEngine.RuntimeAnimatorController" preserve="all" />
</assembly>
<assembly fullname="UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null">
<type fullname="UnityEngine.Camera" preserve="all" />
<type fullname="UnityEngine.GameObject" preserve="all" />
<type fullname="UnityEngine.LightmapSettings" preserve="all" />
<type fullname="UnityEngine.LineRenderer" preserve="all" />
<type fullname="UnityEngine.Material" preserve="all" />
<type fullname="UnityEngine.MeshRenderer" preserve="all" />
<type fullname="UnityEngine.Object" preserve="all" />
<type fullname="UnityEngine.RectTransform" preserve="all" />
<type fullname="UnityEngine.RenderSettings" preserve="all" />
<type fullname="UnityEngine.RenderTexture" preserve="all" />
<type fullname="UnityEngine.Shader" preserve="all" />
<type fullname="UnityEngine.Sprite" preserve="all" />
<type fullname="UnityEngine.SpriteRenderer" preserve="all" />
<type fullname="UnityEngine.Texture2D" preserve="all" />
<type fullname="UnityEngine.Transform" preserve="all" />
<type fullname="UnityEngine.U2D.SpriteAtlas" preserve="all" />
<type fullname="UnityEngine.Events.PersistentCallGroup" preserve="nothing" serialized="true" />
<type fullname="UnityEngine.Events.ArgumentCache" preserve="nothing" serialized="true" />
<type fullname="UnityEngine.Events.PersistentListenerMode" preserve="nothing" serialized="true" />
<type fullname="UnityEngine.Events.UnityEvent" preserve="nothing" serialized="true" />
<type fullname="UnityEngine.Events.UnityEvent`2[System.String,System.String]" preserve="nothing" serialized="true" />
<type fullname="UnityEngine.RectOffset" preserve="nothing" serialized="true" />
<type fullname="UnityEngine.Events.UnityEvent`2[System.Single,System.Single]" preserve="nothing" serialized="true" />
</assembly>
<assembly fullname="UnityEngine.DirectorModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null">
<type fullname="UnityEngine.Playables.PlayableDirector" preserve="all" />
</assembly>
<assembly fullname="UnityEngine.ParticleSystemModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null">
<type fullname="UnityEngine.ParticleSystem" preserve="all" />
<type fullname="UnityEngine.ParticleSystemRenderer" preserve="all" />
</assembly>
<assembly fullname="UnityEngine.Physics2DModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null">
<type fullname="UnityEngine.BoxCollider2D" preserve="all" />
<type fullname="UnityEngine.CircleCollider2D" preserve="all" />
<type fullname="UnityEngine.Rigidbody2D" preserve="all" />
</assembly>
<assembly fullname="UnityEngine.SpriteMaskModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null">
<type fullname="UnityEngine.SpriteMask" preserve="all" />
</assembly>
<assembly fullname="UnityEngine.TextRenderingModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null">
<type fullname="UnityEngine.Font" preserve="all" />
</assembly>
<assembly fullname="UnityEngine.UI, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null">
<type fullname="UnityEngine.EventSystems.EventSystem" preserve="all" />
<type fullname="UnityEngine.EventSystems.Physics2DRaycaster" preserve="all" />
<type fullname="UnityEngine.EventSystems.StandaloneInputModule" preserve="all" />
<type fullname="UnityEngine.UI.Button" preserve="all" />
<type fullname="UnityEngine.UI.CanvasScaler" preserve="all" />
<type fullname="UnityEngine.UI.ContentSizeFitter" preserve="all" />
<type fullname="UnityEngine.UI.GraphicRaycaster" preserve="all" />
<type fullname="UnityEngine.UI.GridLayoutGroup" preserve="all" />
<type fullname="UnityEngine.UI.HorizontalLayoutGroup" preserve="all" />
<type fullname="UnityEngine.UI.Image" preserve="all" />
<type fullname="UnityEngine.UI.LayoutElement" preserve="all" />
<type fullname="UnityEngine.UI.Mask" preserve="all" />
<type fullname="UnityEngine.UI.Outline" preserve="all" />
<type fullname="UnityEngine.UI.RawImage" preserve="all" />
<type fullname="UnityEngine.UI.RectMask2D" preserve="all" />
<type fullname="UnityEngine.UI.Scrollbar" preserve="all" />
<type fullname="UnityEngine.UI.ScrollRect" preserve="all" />
<type fullname="UnityEngine.UI.Slider" preserve="all" />
<type fullname="UnityEngine.UI.Text" preserve="all" />
<type fullname="UnityEngine.UI.Toggle" preserve="all" />
<type fullname="UnityEngine.UI.VerticalLayoutGroup" preserve="all" />
<type fullname="UnityEngine.UI.AnimationTriggers" preserve="nothing" serialized="true" />
<type fullname="UnityEngine.UI.Button/ButtonClickedEvent" preserve="nothing" serialized="true" />
<type fullname="UnityEngine.UI.ColorBlock" preserve="nothing" serialized="true" />
<type fullname="UnityEngine.UI.FontData" preserve="nothing" serialized="true" />
<type fullname="UnityEngine.UI.MaskableGraphic/CullStateChangedEvent" preserve="nothing" serialized="true" />
<type fullname="UnityEngine.UI.Navigation" preserve="nothing" serialized="true" />
<type fullname="UnityEngine.UI.ScrollRect/ScrollRectEvent" preserve="nothing" serialized="true" />
<type fullname="UnityEngine.UI.Scrollbar/ScrollEvent" preserve="nothing" serialized="true" />
<type fullname="UnityEngine.UI.Slider/SliderEvent" preserve="nothing" serialized="true" />
<type fullname="UnityEngine.UI.SpriteState" preserve="nothing" serialized="true" />
<type fullname="UnityEngine.UI.Toggle/ToggleEvent" preserve="nothing" serialized="true" />
<type fullname="UnityEngine.EventSystems.EventTrigger/Entry" preserve="nothing" serialized="true" />
<type fullname="UnityEngine.EventSystems.EventTrigger/TriggerEvent" preserve="nothing" serialized="true" />
</assembly>
<assembly fullname="UnityEngine.UIModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null">
<type fullname="UnityEngine.Canvas" preserve="all" />
<type fullname="UnityEngine.CanvasGroup" preserve="all" />
<type fullname="UnityEngine.CanvasRenderer" preserve="all" />
</assembly>
<assembly fullname="VolFx, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null">
<type fullname="VolFx.AsciiVol" preserve="all" />
<type fullname="VolFx.BloomVol" preserve="all" />
<type fullname="VolFx.BlurVol" preserve="all" />
<type fullname="VolFx.ChromaticVol" preserve="all" />
<type fullname="VolFx.DistortVol" preserve="all" />
<type fullname="VolFx.DitherVol" preserve="all" />
<type fullname="VolFx.GlitchVol" preserve="all" />
<type fullname="VolFx.OutlineVol" preserve="all" />
<type fullname="VolFx.PixelationVol" preserve="all" />
<type fullname="VolFx.VhsVol" preserve="all" />
<type fullname="VolFx.CurveParameter" preserve="nothing" serialized="true" />
<type fullname="VolFx.CurveValue" preserve="nothing" serialized="true" />
<type fullname="VolFx.DitherVol/NoiseModeParameter" preserve="nothing" serialized="true" />
<type fullname="VolFx.GradientParameter" preserve="nothing" serialized="true" />
<type fullname="VolFx.GradientValue" preserve="nothing" serialized="true" />
<type fullname="VolFx.OutlineVol/ModeParameter" preserve="nothing" serialized="true" />
<type fullname="VolFx.OutlineVol/RemapParameter" preserve="nothing" serialized="true" />
</assembly>
<assembly fullname="YarnSpinner.Unity, Version=2.4.2.0, Culture=neutral, PublicKeyToken=null">
<type fullname="Yarn.Unity.DialogueRunner" preserve="all" />
<type fullname="Yarn.Unity.Localization" preserve="all" />
<type fullname="Yarn.Unity.YarnProject" preserve="all" />
<type fullname="Yarn.Unity.DialogueRunner/StringUnityEvent" preserve="nothing" serialized="true" />
<type fullname="Yarn.Unity.LineMetadata" preserve="nothing" serialized="true" />
<type fullname="Yarn.Unity.LineMetadata/StringDictionary" preserve="nothing" serialized="true" />
<type fullname="Yarn.Unity.Localization/AssetDictionary" preserve="nothing" serialized="true" />
<type fullname="Yarn.Unity.Localization/StringDictionary" preserve="nothing" serialized="true" />
<type fullname="Yarn.Unity.UnityLocalization.LineMetadata" preserve="nothing" serialized="true" />
</assembly>
<assembly fullname="UnityEngine.TextCoreFontEngineModule">
<type fullname="UnityEngine.TextCore.FaceInfo" preserve="nothing" serialized="true" />
<type fullname="UnityEngine.TextCore.Glyph" preserve="nothing" serialized="true" />
<type fullname="UnityEngine.TextCore.GlyphMetrics" preserve="nothing" serialized="true" />
<type fullname="UnityEngine.TextCore.GlyphRect" preserve="nothing" serialized="true" />
</assembly>
</linker>
@@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: fb01be13d6e88ca488dda82150319bfc
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 117dcc671050f5247bd8743b91ecaab7
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,145 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &9153305584215853973
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 3464828912861393548}
- component: {fileID: 2975997353605660364}
- component: {fileID: 5079919382093048530}
- component: {fileID: 4479607651016873723}
- component: {fileID: 1064932125706210448}
m_Layer: 0
m_Name: LakeLineDrawer
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &3464828912861393548
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 9153305584215853973}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0.01, y: 0.52, z: -0.05}
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 &2975997353605660364
BoxCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 9153305584215853973}
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: 7.82, y: 1, z: 7.13}
m_Center: {x: 0, y: 0, z: 0}
--- !u!64 &5079919382093048530
MeshCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 9153305584215853973}
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: 0
serializedVersion: 5
m_Convex: 0
m_CookingOptions: 30
m_Mesh: {fileID: 0}
--- !u!114 &4479607651016873723
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 9153305584215853973}
m_Enabled: 0
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f4f1d20068959374280197d2f664e3b9, type: 3}
m_Name:
m_EditorClassIdentifier:
useCullingMasks: 0
fieldSize: 6.75
pointCount: 30
pointSize: 0.05
lineWidth: 0.01
noiseScale: 0.3
waveHeight: 1
waveSpeed: 0.2
timeScale: 1
rippleStrength: 2
rippleDuration: 1.5
rippleSpreadSpeed: 6
rippleSharpness: 2
rippleDelay: 0
playerPos: {x: 10, y: 7}
moveCooldown: 0.5
playerBounceHeight: 1.5
obstacles:
- {x: 17, y: 18}
- {x: 7, y: 13}
- {x: 16, y: 12}
- {x: 18, y: 12}
- {x: 20, y: 12}
- {x: 12, y: 4}
- {x: 23, y: 4}
- {x: 18, y: 4}
- {x: 25, y: 21}
- {x: 7, y: 21}
--- !u!114 &1064932125706210448
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 9153305584215853973}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 70bdc08d6a69fcc489e789073881b5c5, type: 3}
m_Name:
m_EditorClassIdentifier:
useCullingMasks: 0
fieldSize: 6.75
pointCount: 30
pointSize: 0.05
lineWidth: 0.01
noiseScale: 0.3
waveHeight: 1
waveSpeed: 0.2
timeScale: 1
rippleStrength: 2
rippleDuration: 1.5
rippleSpreadSpeed: 6
rippleSharpness: 2
@@ -1,6 +1,6 @@
fileFormatVersion: 2
guid: 560a88da2bbc70140bed167f0ba7fe37
DefaultImporter:
guid: 67658af7714634d45a2aa8f958ea21fd
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
+368 -146
View File
@@ -123,149 +123,6 @@ NavMeshSettings:
debug:
m_Flags: 0
m_NavMeshData: {fileID: 0}
--- !u!1 &472731661
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 472731664}
- component: {fileID: 472731665}
- component: {fileID: 472731666}
- component: {fileID: 472731667}
- component: {fileID: 472731668}
m_Layer: 0
m_Name: LakeLineDrawer
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &472731664
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 472731661}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0.01, y: 0.52, z: -0.05}
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 &472731665
BoxCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 472731661}
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: 7.82, y: 1, z: 7.13}
m_Center: {x: 0, y: 0, z: 0}
--- !u!64 &472731666
MeshCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 472731661}
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: 0
serializedVersion: 5
m_Convex: 0
m_CookingOptions: 30
m_Mesh: {fileID: 0}
--- !u!114 &472731667
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 472731661}
m_Enabled: 0
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f4f1d20068959374280197d2f664e3b9, type: 3}
m_Name:
m_EditorClassIdentifier:
useCullingMasks: 0
fieldSize: 6.75
pointCount: 30
pointSize: 0.05
lineWidth: 0.01
noiseScale: 0.3
waveHeight: 1
waveSpeed: 0.2
timeScale: 1
rippleStrength: 2
rippleDuration: 1.5
rippleSpreadSpeed: 6
rippleSharpness: 2
rippleDelay: 0
playerPos: {x: 10, y: 7}
moveCooldown: 0.5
playerBounceHeight: 1.5
obstacles:
- {x: 17, y: 18}
- {x: 7, y: 13}
- {x: 16, y: 12}
- {x: 18, y: 12}
- {x: 20, y: 12}
- {x: 12, y: 4}
- {x: 23, y: 4}
- {x: 18, y: 4}
- {x: 25, y: 21}
- {x: 7, y: 21}
--- !u!114 &472731668
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 472731661}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 70bdc08d6a69fcc489e789073881b5c5, type: 3}
m_Name:
m_EditorClassIdentifier:
useCullingMasks: 0
fieldSize: 6.75
pointCount: 30
pointSize: 0.05
lineWidth: 0.01
noiseScale: 0.3
waveHeight: 1
waveSpeed: 0.2
timeScale: 1
rippleStrength: 2
rippleDuration: 1.5
rippleSpreadSpeed: 6
rippleSharpness: 2
--- !u!1 &519420028
GameObject:
m_ObjectHideFlags: 0
@@ -397,13 +254,13 @@ Transform:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 519420028}
serializedVersion: 2
m_LocalRotation: {x: 0.3970472, y: -0.006888179, z: 0.0029810548, w: 0.9177675}
m_LocalRotation: {x: 0.4045762, y: -0.0068634483, z: 0.003037563, w: 0.91447353}
m_LocalPosition: {x: 0.019188061, y: 7.2175875, z: -6.8352437}
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}
m_LocalEulerAnglesHint: {x: 47.731, y: -0.86, z: 0}
--- !u!114 &519420033
MonoBehaviour:
m_ObjectHideFlags: 0
@@ -420,9 +277,374 @@ MonoBehaviour:
serializedVersion: 2
m_Bits: 4294967295
m_MaxRayIntersections: 0
--- !u!65 &507652625753095997
BoxCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5854754705337305700}
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: 7.82, y: 1, z: 7.13}
m_Center: {x: 0, y: 0, z: 0}
--- !u!4 &2185051783577957245
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5854754705337305700}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0.01, y: 0.52, z: -0.05}
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!1001 &4077561020806840184
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
serializedVersion: 3
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 1064932125706210448, guid: 67658af7714634d45a2aa8f958ea21fd, type: 3}
propertyPath: maskSize
value: 48.9
objectReference: {fileID: 0}
- target: {fileID: 1064932125706210448, guid: 67658af7714634d45a2aa8f958ea21fd, type: 3}
propertyPath: fieldSize
value: 20
objectReference: {fileID: 0}
- target: {fileID: 1064932125706210448, guid: 67658af7714634d45a2aa8f958ea21fd, type: 3}
propertyPath: lineWidth
value: 0.01
objectReference: {fileID: 0}
- target: {fileID: 1064932125706210448, guid: 67658af7714634d45a2aa8f958ea21fd, type: 3}
propertyPath: m_Enabled
value: 1
objectReference: {fileID: 0}
- target: {fileID: 1064932125706210448, guid: 67658af7714634d45a2aa8f958ea21fd, type: 3}
propertyPath: pointSize
value: 0.06
objectReference: {fileID: 0}
- target: {fileID: 1064932125706210448, guid: 67658af7714634d45a2aa8f958ea21fd, type: 3}
propertyPath: waveSpeed
value: 0.14
objectReference: {fileID: 0}
- target: {fileID: 1064932125706210448, guid: 67658af7714634d45a2aa8f958ea21fd, type: 3}
propertyPath: noiseScale
value: 0.6
objectReference: {fileID: 0}
- target: {fileID: 1064932125706210448, guid: 67658af7714634d45a2aa8f958ea21fd, type: 3}
propertyPath: pointCount
value: 56
objectReference: {fileID: 0}
- target: {fileID: 1064932125706210448, guid: 67658af7714634d45a2aa8f958ea21fd, type: 3}
propertyPath: targetSize
value: 0.32
objectReference: {fileID: 0}
- target: {fileID: 1064932125706210448, guid: 67658af7714634d45a2aa8f958ea21fd, type: 3}
propertyPath: waveHeight
value: 0.64
objectReference: {fileID: 0}
- target: {fileID: 1064932125706210448, guid: 67658af7714634d45a2aa8f958ea21fd, type: 3}
propertyPath: goalPoint.x
value: 18.59
objectReference: {fileID: 0}
- target: {fileID: 1064932125706210448, guid: 67658af7714634d45a2aa8f958ea21fd, type: 3}
propertyPath: goalPoint.y
value: 6.14
objectReference: {fileID: 0}
- target: {fileID: 1064932125706210448, guid: 67658af7714634d45a2aa8f958ea21fd, type: 3}
propertyPath: maskOffset.x
value: -6.6000004
objectReference: {fileID: 0}
- target: {fileID: 1064932125706210448, guid: 67658af7714634d45a2aa8f958ea21fd, type: 3}
propertyPath: maskOffset.y
value: -6.6000004
objectReference: {fileID: 0}
- target: {fileID: 1064932125706210448, guid: 67658af7714634d45a2aa8f958ea21fd, type: 3}
propertyPath: waterColor.b
value: 0.8679245
objectReference: {fileID: 0}
- target: {fileID: 1064932125706210448, guid: 67658af7714634d45a2aa8f958ea21fd, type: 3}
propertyPath: waterColor.g
value: 0.43422773
objectReference: {fileID: 0}
- target: {fileID: 1064932125706210448, guid: 67658af7714634d45a2aa8f958ea21fd, type: 3}
propertyPath: waterColor.r
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1064932125706210448, guid: 67658af7714634d45a2aa8f958ea21fd, type: 3}
propertyPath: rippleColor.b
value: 0.2980392
objectReference: {fileID: 0}
- target: {fileID: 1064932125706210448, guid: 67658af7714634d45a2aa8f958ea21fd, type: 3}
propertyPath: rippleColor.g
value: 0.32098562
objectReference: {fileID: 0}
- target: {fileID: 1064932125706210448, guid: 67658af7714634d45a2aa8f958ea21fd, type: 3}
propertyPath: viewFieldSize
value: 5.51
objectReference: {fileID: 0}
- target: {fileID: 1064932125706210448, guid: 67658af7714634d45a2aa8f958ea21fd, type: 3}
propertyPath: edgeLineLength
value: 1.86
objectReference: {fileID: 0}
- target: {fileID: 1064932125706210448, guid: 67658af7714634d45a2aa8f958ea21fd, type: 3}
propertyPath: totalFieldSize
value: 35.7
objectReference: {fileID: 0}
- target: {fileID: 1064932125706210448, guid: 67658af7714634d45a2aa8f958ea21fd, type: 3}
propertyPath: edgeDarkColor.b
value: 1
objectReference: {fileID: 0}
- target: {fileID: 1064932125706210448, guid: 67658af7714634d45a2aa8f958ea21fd, type: 3}
propertyPath: edgeDarkColor.g
value: 0.52284783
objectReference: {fileID: 0}
- target: {fileID: 1064932125706210448, guid: 67658af7714634d45a2aa8f958ea21fd, type: 3}
propertyPath: edgeDarkColor.r
value: 0.0603773
objectReference: {fileID: 0}
- target: {fileID: 1064932125706210448, guid: 67658af7714634d45a2aa8f958ea21fd, type: 3}
propertyPath: targetLineWidth
value: 0.02
objectReference: {fileID: 0}
- target: {fileID: 1064932125706210448, guid: 67658af7714634d45a2aa8f958ea21fd, type: 3}
propertyPath: totalPointCount
value: 39
objectReference: {fileID: 0}
- target: {fileID: 1064932125706210448, guid: 67658af7714634d45a2aa8f958ea21fd, type: 3}
propertyPath: visibleAreaSize
value: 26.62
objectReference: {fileID: 0}
- target: {fileID: 1064932125706210448, guid: 67658af7714634d45a2aa8f958ea21fd, type: 3}
propertyPath: targetPoints.Array.size
value: 2
objectReference: {fileID: 0}
- target: {fileID: 1064932125706210448, guid: 67658af7714634d45a2aa8f958ea21fd, type: 3}
propertyPath: targetPoints.Array.data[0].type
value: 1
objectReference: {fileID: 0}
- target: {fileID: 1064932125706210448, guid: 67658af7714634d45a2aa8f958ea21fd, type: 3}
propertyPath: targetPoints.Array.data[0].color.a
value: 1
objectReference: {fileID: 0}
- target: {fileID: 1064932125706210448, guid: 67658af7714634d45a2aa8f958ea21fd, type: 3}
propertyPath: targetPoints.Array.data[0].color.b
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1064932125706210448, guid: 67658af7714634d45a2aa8f958ea21fd, type: 3}
propertyPath: targetPoints.Array.data[0].color.g
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1064932125706210448, guid: 67658af7714634d45a2aa8f958ea21fd, type: 3}
propertyPath: targetPoints.Array.data[0].color.r
value: 1
objectReference: {fileID: 0}
- target: {fileID: 1064932125706210448, guid: 67658af7714634d45a2aa8f958ea21fd, type: 3}
propertyPath: targetPoints.Array.data[0].position.x
value: 3.3
objectReference: {fileID: 0}
- target: {fileID: 1064932125706210448, guid: 67658af7714634d45a2aa8f958ea21fd, type: 3}
propertyPath: targetPoints.Array.data[0].position.y
value: 16.36
objectReference: {fileID: 0}
- target: {fileID: 1064932125706210448, guid: 67658af7714634d45a2aa8f958ea21fd, type: 3}
propertyPath: targetPoints.Array.data[0].gridPosition.x
value: 10.75
objectReference: {fileID: 0}
- target: {fileID: 1064932125706210448, guid: 67658af7714634d45a2aa8f958ea21fd, type: 3}
propertyPath: targetPoints.Array.data[0].gridPosition.y
value: 19.83
objectReference: {fileID: 0}
- target: {fileID: 2975997353605660364, guid: 67658af7714634d45a2aa8f958ea21fd, type: 3}
propertyPath: m_Size.x
value: 11.684589
objectReference: {fileID: 0}
- target: {fileID: 2975997353605660364, guid: 67658af7714634d45a2aa8f958ea21fd, type: 3}
propertyPath: m_Size.z
value: 9.818142
objectReference: {fileID: 0}
- target: {fileID: 2975997353605660364, guid: 67658af7714634d45a2aa8f958ea21fd, type: 3}
propertyPath: m_Center.x
value: -0.14138317
objectReference: {fileID: 0}
- target: {fileID: 2975997353605660364, guid: 67658af7714634d45a2aa8f958ea21fd, type: 3}
propertyPath: m_Center.z
value: -0.063780785
objectReference: {fileID: 0}
- target: {fileID: 3464828912861393548, guid: 67658af7714634d45a2aa8f958ea21fd, type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3464828912861393548, guid: 67658af7714634d45a2aa8f958ea21fd, type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3464828912861393548, guid: 67658af7714634d45a2aa8f958ea21fd, type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3464828912861393548, guid: 67658af7714634d45a2aa8f958ea21fd, type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 3464828912861393548, guid: 67658af7714634d45a2aa8f958ea21fd, type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3464828912861393548, guid: 67658af7714634d45a2aa8f958ea21fd, type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3464828912861393548, guid: 67658af7714634d45a2aa8f958ea21fd, type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3464828912861393548, guid: 67658af7714634d45a2aa8f958ea21fd, type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3464828912861393548, guid: 67658af7714634d45a2aa8f958ea21fd, type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3464828912861393548, guid: 67658af7714634d45a2aa8f958ea21fd, type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 9153305584215853973, guid: 67658af7714634d45a2aa8f958ea21fd, type: 3}
propertyPath: m_Name
value: LakeLineDrawer
objectReference: {fileID: 0}
- target: {fileID: 9153305584215853973, guid: 67658af7714634d45a2aa8f958ea21fd, type: 3}
propertyPath: m_IsActive
value: 1
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects: []
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 67658af7714634d45a2aa8f958ea21fd, type: 3}
--- !u!1 &5854754705337305700
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 2185051783577957245}
- component: {fileID: 507652625753095997}
- component: {fileID: 7509797800874568483}
- component: {fileID: 7509797800874568484}
- component: {fileID: 7509797800874568485}
m_Layer: 0
m_Name: LakeLineDrawer (1)
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 0
--- !u!64 &7509797800874568483
MeshCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5854754705337305700}
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: 0
serializedVersion: 5
m_Convex: 0
m_CookingOptions: 30
m_Mesh: {fileID: 0}
--- !u!114 &7509797800874568484
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5854754705337305700}
m_Enabled: 0
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 874c4686e7644b74f83e1c0a58b26b34, type: 3}
m_Name:
m_EditorClassIdentifier:
useCullingMasks: 0
fieldSize: 6.5
pointCount: 30
pointSize: 0.05
lineWidth: 0.01
noiseScale: 0.3
waveHeight: 1.5
waveSpeed: 1
timeScale: 1
rippleStrength: 2
rippleDuration: 1.5
rippleSpreadSpeed: 6
rippleSharpness: 2
targetPosition: {x: 1.66, y: 5.54}
shapeChangeRadius: 4
--- !u!114 &7509797800874568485
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5854754705337305700}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f4f1d20068959374280197d2f664e3b9, type: 3}
m_Name:
m_EditorClassIdentifier:
useCullingMasks: 0
fieldSize: 20
pointCount: 30
pointSize: 0.15
lineWidth: 0.03
noiseScale: 0.3
waveHeight: 1.5
waveSpeed: 1
timeScale: 1
rippleStrength: 2
rippleDuration: 1.5
rippleSpreadSpeed: 6
rippleSharpness: 2
rippleDelay: 0.25
playerPos: {x: 1, y: 1}
moveCooldown: 0.2
playerBounceHeight: 1.5
obstacles: []
--- !u!1660057539 &9223372036854775807
SceneRoots:
m_ObjectHideFlags: 0
m_Roots:
- {fileID: 519420032}
- {fileID: 472731664}
- {fileID: 4077561020806840184}
- {fileID: 2185051783577957245}
@@ -0,0 +1,59 @@
using UnityEngine;
using System.Collections.Generic;
using Shapes;
public class GridGenerator
{
private float fieldSize;
private int pointCount;
private float pointSize;
private float lineWidth;
private float edgeLineLength;
public GridGenerator(float fieldSize, int pointCount, float pointSize, float lineWidth, float edgeLineLength)
{
this.fieldSize = fieldSize;
this.pointCount = pointCount;
this.pointSize = pointSize;
this.lineWidth = lineWidth;
this.edgeLineLength = edgeLineLength;
}
public List<Vector3> GenerateGridPoints()
{
List<Vector3> points = new List<Vector3>();
float step = fieldSize / (pointCount - 1);
float halfSize = fieldSize / 2f;
for (int i = 0; i < pointCount; i++)
{
for (int j = 0; j < pointCount; j++)
{
float x = j * step - halfSize;
float z = i * step - halfSize;
points.Add(new Vector3(x, 0f, z));
}
}
return points;
}
public void DrawGridPoint(Vector3 position, float size, Color color)
{
Draw.Sphere(position, size, color);
}
public void DrawGridLine(Vector3 start, Vector3 end, float width, Color color)
{
Draw.Line(start, end, width, color);
}
public void DrawEdgeLine(Vector3 start, Vector3 end, float width, Color color)
{
Vector3 direction = (end - start).normalized;
Vector3 normal = Vector3.Cross(direction, Vector3.up).normalized;
Vector3 offset = normal * edgeLineLength;
Draw.Line(start + offset, end + offset, width, color);
}
}
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 98172966e69290c4d9bd44ac3ee8b2d1
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
@@ -1,30 +1,77 @@
using UnityEngine;
using Shapes;
using System.Collections.Generic;
using UnityEngine.UI;
[ExecuteAlways]
public class LakeLineDrawer : ImmediateModeShapeDrawer
{
[Header("场设置")]
public float fieldSize = 20f;
public int pointCount = 30;
public float pointSize = 0.15f;
public float fieldSize = 80f;
public Vector2 fieldOffset = Vector2.zero;
public int pointCount = 80;
public float pointSize = 0.1f;
public float lineWidth = 0.03f;
[Header("波动参数")]
[Header("颜色设置")]
public Color lakeDarkColor = new Color(0f, 0.5f, 1f); // 湖面低处颜色
public Color lakeLightColor = new Color(0.5f, 1f, 1f, 0.3f); // 湖面高处颜色
public Color edgeDarkColor = new Color(0f, 0.5f, 1f); // 边缘低处颜色
public Color edgeLightColor = new Color(0.5f, 1f, 1f, 0.3f); // 边缘高处颜色
public float edgeLineLength = 1f; // 边缘线的长度
[Header("UI控制")]
public Slider xOffsetSlider;
public Slider zOffsetSlider;
public float maxOffset = 20f;
[Header("目标点设置")]
public List<TargetPoint> targetPoints = new List<TargetPoint>();
public float targetSize = 0.5f;
public float rotationSpeed = 30f; // 旋转速度(度/秒)
public float floatAmplitude = 0.2f; // 起伏幅度
public float floatFrequency = 2f; // 起伏频率
public float targetLineWidth = 0.02f; // 目标点线框的宽度
public float targetHeightOffset = 0.5f; // 目标点距离湖面的高度偏移
public Color targetFillColor = Color.red; // 目标点实体颜色
public Color targetWireColor = Color.white; // 目标点线框颜色
public float wireScale = 1.05f; // 线框相对于实体的大小比例
[Header("可视区域")]
public float visibleAreaSize = 20f;
// 波动参数,用于生成波动效果
public float noiseScale = 0.3f;
public float waveHeight = 1.5f;
public float waveSpeed = 1f;
public float timeScale = 1f;
[Header("涟漪参数")]
public float rippleStrength = 2f; // 尖刺强度
public float rippleDuration = 1.5f; // 持续时间
public float rippleSpreadSpeed = 6f; // 扩散速度
public float rippleSharpness = 2f; // 尖刺锐度
public float rippleStrength = 2f; // 恢复原来的强度
public float rippleDuration = 0.8f; // 适中的持续时间
public float rippleSpreadSpeed = 4f; // 适中的传播速度
public float rippleSharpness = 4f; // 适中的锐度
public float rippleMaxRadius = 3f; // 新增:涟漪最大半径
private Vector3[] points;
// 存储每个点是否在可视区域内的标记
private bool[] validPoints;
private float time;
private List<Ripple> ripples = new List<Ripple>();
[System.Serializable]
public class TargetPoint
{
public Vector2 gridPosition; // 网格位置(0到pointCount-1
public TargetType type;
public Color color = Color.white;
}
public enum TargetType
{
Sphere,
Cube,
Torus
}
private struct Ripple
{
@@ -38,18 +85,38 @@ public class LakeLineDrawer : ImmediateModeShapeDrawer
public float brightnessBoost;
}
private List<Ripple> ripples = new List<Ripple>();
private void Update()
{
// 如果是播放状态,则更新时间;否则设为0
time = Application.isPlaying ? Time.time * timeScale : 0f;
HandleMouseInput();
HandleUIInput();
CleanExpiredRipples();
}
private void HandleUIInput()
{
if (xOffsetSlider != null && zOffsetSlider != null)
{
fieldOffset = new Vector2(
xOffsetSlider.value * maxOffset,
zOffsetSlider.value * maxOffset
);
}
}
// 处理鼠标点击,触发新的涟漪
private void HandleMouseInput()
{
if (Application.isPlaying && Input.GetMouseButtonDown(0))
{
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
if (Physics.Raycast(ray, out RaycastHit hit))
{
Vector3 hitPos = hit.point;
ripples.Add(new Ripple
{
position = new Vector2(hitPos.x, hitPos.z),
@@ -57,57 +124,74 @@ public class LakeLineDrawer : ImmediateModeShapeDrawer
});
}
}
}
private void CleanExpiredRipples()
{
ripples.RemoveAll(r => Time.time - r.startTime > rippleDuration);
}
// 计算涟漪对某个点的影响,返回该点的偏移量和亮度提升
private RippleResult GetRippleEffect(float x, float z, float currentTime)
{
float rippleOffset = 0f;
float brightness = 0f;
// 遍历所有涟漪,计算它们对当前点的影响
foreach (var ripple in ripples)
{
// 计算涟漪已经存在的时间
float elapsed = currentTime - ripple.startTime;
float spread = elapsed * rippleSpreadSpeed;
float dist = Vector2.Distance(new Vector2(x, z), ripple.position);
float spread = elapsed * rippleSpreadSpeed; // 涟漪扩展的距离
float dist = Vector2.Distance(new Vector2(x, z), ripple.position); // 当前点与涟漪中心的距离
// 如果距离超过最大半径,跳过这个涟漪的影响
if (dist > rippleMaxRadius)
continue;
// 计算涟漪的时间影响,t表示涟漪的衰减程度
float t = Mathf.Clamp01(elapsed / rippleDuration);
float ease = Mathf.Sin(t * Mathf.PI);
float ease = Mathf.Sin(t * Mathf.PI); // 使用正弦函数使衰减效果平滑
// 计算涟漪对当前点的高度影响
float spike = Mathf.Exp(-Mathf.Pow(dist - spread, 2f) * rippleSharpness);
rippleOffset += spike * rippleStrength * ease;
// 计算涟漪对当前点的亮度提升
float bright = Mathf.Exp(-Mathf.Pow((dist - spread) * 0.5f, 2f));
brightness += bright * ease;
}
return new RippleResult
{
heightOffset = rippleOffset,
brightnessBoost = brightness
heightOffset = rippleOffset, // 高度偏移
brightnessBoost = brightness // 亮度提升
};
}
// 计算某个点的基础高度,基于噪声函数模拟波浪
private float GetHeight(float x, float z, float currentTime)
{
float noise = 0;
float amp = 1f;
float freq = 1f;
// 生成多个频率的噪声,模拟更复杂的波动
for (int i = 0; i < 3; i++)
{
// 基于当前时间和位置生成噪声值
float nx = x * freq * noiseScale;
float nz = z * freq * noiseScale;
float nt = currentTime * waveSpeed * freq;
noise += Mathf.PerlinNoise(nx + nt, nz + nt) * amp;
amp *= 0.5f;
freq *= 2f;
noise += Mathf.PerlinNoise(nx + nt, nz + nt) * amp; // 累加噪声
amp *= 0.5f; // 每次衰减幅度
freq *= 2f; // 每次增加频率
}
return noise * waveHeight;
}
// 绘制湖面
public override void DrawShapes(Camera cam)
{
using (Draw.Command(cam))
@@ -117,63 +201,246 @@ public class LakeLineDrawer : ImmediateModeShapeDrawer
Draw.Thickness = lineWidth;
float step = fieldSize / (pointCount - 1);
float halfSize = fieldSize * 0.5f;
float halfField = fieldSize * 0.5f;
float halfVisible = visibleAreaSize * 0.5f;
if (points == null || points.Length != pointCount * pointCount)
points = new Vector3[pointCount * pointCount];
if (validPoints == null || validPoints.Length != pointCount * pointCount)
validPoints = new bool[pointCount * pointCount];
for (int i = 0; i < pointCount; i++)
CalculatePointPositions(step, halfField, halfVisible);
DrawPointsAndLines(step, halfField, halfVisible);
DrawEdgeLines(halfField, halfVisible);
DrawTargetPoints(); // 添加目标点的绘制
}
}
// 计算每个点的位置和涟漪效果
private void CalculatePointPositions(float step, float halfField, float halfVisible)
{
// 遍历每个点,计算其位置和涟漪影响
for (int i = 0; i < pointCount; i++)
{
for (int j = 0; j < pointCount; j++)
{
for (int j = 0; j < pointCount; j++)
{
float x = -halfSize + j * step;
float z = -halfSize + i * step;
// 计算当前点的位置(xz
float x = -halfField + j * step + fieldOffset.x;
float z = -halfField + i * step + fieldOffset.y;
float baseHeight = GetHeight(x, z, time);
RippleResult ripple = GetRippleEffect(x, z, Time.time);
float finalY = baseHeight + ripple.heightOffset;
// 判断该点是否在可视区域内
bool inside = Mathf.Abs(x) <= halfVisible && Mathf.Abs(z) <= halfVisible;
int index = i * pointCount + j; // 计算当前点的索引
validPoints[index] = inside; // 设置该点是否有效
Vector3 pos = new Vector3(x, finalY, z);
if (!inside)
continue;
points[i * pointCount + j] = pos;
// 获取基础波浪高度,并计算涟漪影响
float baseHeight = GetHeight(x, z, time);
RippleResult ripple = GetRippleEffect(x, z, Time.time);
float finalY = baseHeight + ripple.heightOffset;
float depth = (finalY + waveHeight) / (waveHeight * 2f);
float brightness = Mathf.Clamp01(1f + ripple.brightnessBoost);
float pointScale = pointSize * (1f - depth * 0.5f);
// 创建点的坐标
Vector3 pos = new Vector3(x, finalY, z);
points[index] = pos; // 存储计算得到的点
Color baseColor = Color.Lerp(new Color(0.5f, 1f, 1f), new Color(0f, 0.5f, 1f), depth);
baseColor *= brightness;
// 计算亮度:基于高度,越高越亮
float heightT = Mathf.InverseLerp(-waveHeight, waveHeight, finalY);
float brightness = Mathf.Clamp01(1f + ripple.brightnessBoost); // 计算亮度,防止超出范围
Color baseColor = Color.Lerp(lakeDarkColor, lakeLightColor, heightT);
baseColor *= brightness;
Draw.Sphere(pos, pointScale, baseColor);
}
// 绘制当前点
Draw.Sphere(pos, pointSize * (1f - heightT * 0.5f), baseColor);
}
}
}
for (int i = 0; i < pointCount; i++)
// 绘制点与点之间的连线
private void DrawPointsAndLines(float step, float halfField, float halfVisible)
{
for (int i = 0; i < pointCount; i++)
{
for (int j = 0; j < pointCount; j++)
{
for (int j = 0; j < pointCount; j++)
int index = i * pointCount + j;
if (!validPoints[index])
continue;
Vector3 current = points[index];
if (j < pointCount - 1 && validPoints[index + 1])
{
int index = i * pointCount + j;
Vector3 current = points[index];
Vector3 next = points[index + 1];
DrawLineBetweenPoints(current, next, halfField, halfVisible);
}
if (j < pointCount - 1)
{
Vector3 next = points[index + 1];
float avgY = (current.y + next.y) * 0.5f;
float lineDepth = (avgY + waveHeight) / (waveHeight * 2f);
Color lineColor = Color.Lerp(Color.cyan, new Color(0, 0.5f, 1f, 0.3f), lineDepth);
Draw.Line(current, next, lineWidth * (1f - lineDepth * 0.5f), lineColor);
}
if (i < pointCount - 1)
{
Vector3 next = points[index + pointCount];
float avgY = (current.y + next.y) * 0.5f;
float lineDepth = (avgY + waveHeight) / (waveHeight * 2f);
Color lineColor = Color.Lerp(Color.cyan, new Color(0, 0.5f, 1f, 0.3f), lineDepth);
Draw.Line(current, next, lineWidth * (1f - lineDepth * 0.5f), lineColor);
}
// 绘制与下边点的连线
if (i < pointCount - 1 && validPoints[index + pointCount])
{
Vector3 next = points[index + pointCount];
DrawLineBetweenPoints(current, next, halfField, halfVisible);
}
}
}
}
// 绘制两点之间的连线,加入深度和颜色的渐变
private void DrawLineBetweenPoints(Vector3 current, Vector3 next, float halfField, float halfVisible)
{
// 计算连线的平均高度
float avgY = (current.y + next.y) * 0.5f;
float heightT = Mathf.InverseLerp(-waveHeight, waveHeight, avgY);
// 计算连线的颜色,依赖于高度
Color lineColor = Color.Lerp(lakeDarkColor, lakeLightColor, heightT);
lineColor.a *= 0.8f; // 设置透明度
// 绘制连线
Draw.Line(current, next, lineWidth * (1f - heightT * 0.5f), lineColor);
}
private void DrawEdgeLine(float x, float z, float halfVisible)
{
// 检查点是否在可视区域内
if (Mathf.Abs(x) > halfVisible || Mathf.Abs(z) > halfVisible)
{
return;
}
// 计算湖面高度作为起始点的Y坐标
float startY = GetHeight(x, z, time); // 获取湖面高度
// 设置边缘线的起始点
Vector3 start = new Vector3(x, startY, z);
// 设置边缘线的终止点,向下延伸一定的长度
Vector3 end = new Vector3(x, startY - edgeLineLength, z); // 向下延伸的线条
// 设置颜色,基于高度
float heightT = Mathf.InverseLerp(-waveHeight, waveHeight, startY);
Color lineColor = Color.Lerp(edgeDarkColor, edgeLightColor, heightT);
lineColor.a *= 0.8f; // 设置透明度
// 绘制边缘线
Draw.Line(start, end, lineWidth * 0.5f, lineColor);
}
private void DrawEdgeLines(float halfField, float halfVisible)
{
// 绘制湖面边缘的向下线条(无扰动)
float step = fieldSize / (pointCount - 1);
float halfEdgeLineLength = edgeLineLength * 0.5f; // 设置边缘线长度
// 只在field边界处绘制线条,且仅当边界在可视区域内时绘制
// 1. 绘制 X 轴的边缘线(左边和右边)
for (float z = -halfField; z <= halfField; z += step)
{
// 检查边界点是否在可视区域内
if (Mathf.Abs(z) <= halfVisible)
{
float x = halfField; // 右边
DrawEdgeLine(x, z, halfVisible);
x = -halfField; // 左边
DrawEdgeLine(x, z, halfVisible);
}
}
// 2. 绘制 Z 轴的边缘线(上边和下边)
for (float x = -halfField; x <= halfField; x += step)
{
// 检查边界点是否在可视区域内
if (Mathf.Abs(x) <= halfVisible)
{
float z = halfField; // 上边
DrawEdgeLine(x, z, halfVisible);
z = -halfField; // 下边
DrawEdgeLine(x, z, halfVisible);
}
}
}
// 绘制目标点
private void DrawTargetPoints()
{
float step = fieldSize / (pointCount - 1);
float halfField = fieldSize * 0.5f;
float halfVisible = visibleAreaSize * 0.5f;
foreach (var target in targetPoints)
{
// 将网格位置转换为世界坐标
float x = -halfField + target.gridPosition.x * step + fieldOffset.x;
float z = -halfField + target.gridPosition.y * step + fieldOffset.y;
// 检查是否在可视区域内
if (Mathf.Abs(x) > halfVisible || Mathf.Abs(z) > halfVisible)
{
continue;
}
// 获取该点的高度
float height = GetHeight(x, z, time);
// 添加额外的起伏效果和高度偏移
float floatOffset = Mathf.Sin(time * floatFrequency) * floatAmplitude;
Vector3 position = new Vector3(x, height + floatOffset + targetHeightOffset, z);
// 计算旋转
float rotation = time * rotationSpeed;
Quaternion rot = Quaternion.Euler(0, rotation, 0);
// 绘制外层立方体线框
DrawWireCube(position, rot, targetSize * wireScale, targetWireColor);
// 根据类型绘制内部形状
switch (target.type)
{
case TargetType.Sphere:
Draw.Sphere(position, targetSize * 0.8f, targetFillColor);
break;
case TargetType.Cube:
Draw.Cube(position, rot, targetSize * 0.8f, targetFillColor);
break;
case TargetType.Torus:
Draw.Torus(position, rot, targetSize * 0.8f, targetSize * 0.3f, targetFillColor);
break;
}
}
}
private void DrawWireCube(Vector3 position, Quaternion rotation, float size, Color color)
{
Vector3[] vertices = new Vector3[]
{
new Vector3(-size, -size, -size),
new Vector3(size, -size, -size),
new Vector3(size, size, -size),
new Vector3(-size, size, -size),
new Vector3(-size, -size, size),
new Vector3(size, -size, size),
new Vector3(size, size, size),
new Vector3(-size, size, size)
};
// 应用旋转
for (int i = 0; i < vertices.Length; i++)
{
vertices[i] = rotation * vertices[i] + position;
}
// 绘制边
int[] edges = new int[]
{
0,1, 1,2, 2,3, 3,0, // 底面
4,5, 5,6, 6,7, 7,4, // 顶面
0,4, 1,5, 2,6, 3,7 // 连接线
};
for (int i = 0; i < edges.Length; i += 2)
{
Draw.Line(vertices[edges[i]], vertices[edges[i+1]], targetLineWidth, color);
}
}
}
@@ -0,0 +1,29 @@
using UnityEngine;
using UnityEngine.UI;
using Shapes;
public class LakeUIController : MonoBehaviour
{
[SerializeField] private LakeLineDrawer lakeDrawer;
public Slider xOffsetSlider;
public Slider zOffsetSlider;
private void Start()
{
// 设置滑动条的初始值
if (xOffsetSlider != null && zOffsetSlider != null)
{
xOffsetSlider.minValue = -1f;
xOffsetSlider.maxValue = 1f;
xOffsetSlider.value = 0f;
zOffsetSlider.minValue = -1f;
zOffsetSlider.maxValue = 1f;
zOffsetSlider.value = 0f;
// 将滑动条引用传递给LakeLineDrawer
lakeDrawer.xOffsetSlider = xOffsetSlider;
lakeDrawer.zOffsetSlider = zOffsetSlider;
}
}
}
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 6709e527ba5cd1a43802e44a9de467d8
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,195 @@
using UnityEngine;
using Shapes;
using System.Collections.Generic;
[ExecuteAlways]
public class LakeVisualizer : ImmediateModeShapeDrawer
{
[Header("网格设置")]
public float fieldSize = 20f;
public int pointCount = 30;
public float pointSize = 0.15f;
public float lineWidth = 0.03f;
[Header("波动参数")]
public float noiseScale = 0.3f;
public float waveHeight = 1.5f;
public float waveSpeed = 1f;
public float timeScale = 1f;
[Header("涟漪参数")]
public float rippleStrength = 2f;
public float rippleDuration = 1.5f;
public float rippleSpreadSpeed = 6f;
public float rippleSharpness = 2f;
[Header("目标设置")]
public Vector2 targetPosition = Vector2.zero;
public float shapeChangeRadius = 4f; // 控制形状混合的范围
private Vector3[] points;
private float time;
private struct Ripple
{
public Vector2 position;
public float startTime;
}
private List<Ripple> ripples = new List<Ripple>();
private void Update()
{
time = Application.isPlaying ? Time.time * timeScale : 0f;
if (Application.isPlaying && Input.GetMouseButtonDown(0))
{
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
if (Physics.Raycast(ray, out RaycastHit hit))
{
ripples.Add(new Ripple
{
position = new Vector2(hit.point.x, hit.point.z),
startTime = Time.time
});
}
}
ripples.RemoveAll(r => Time.time - r.startTime > rippleDuration);
}
private float GetNoiseHeight(float x, float z, float currentTime)
{
float noise = 0f;
float amp = 1f;
float freq = 1f;
for (int i = 0; i < 3; i++)
{
float nx = x * freq * noiseScale;
float nz = z * freq * noiseScale;
float nt = currentTime * waveSpeed * freq;
noise += Mathf.PerlinNoise(nx + nt, nz + nt) * amp;
amp *= 0.5f;
freq *= 2f;
}
return noise * waveHeight;
}
public override void DrawShapes(Camera cam)
{
using (Draw.Command(cam))
{
Draw.ResetAllDrawStates();
Draw.LineGeometry = LineGeometry.Volumetric3D;
Draw.Thickness = lineWidth;
float step = fieldSize / (pointCount - 1);
float halfSize = fieldSize * 0.5f;
if (points == null || points.Length != pointCount * pointCount)
points = new Vector3[pointCount * pointCount];
for (int i = 0; i < pointCount; i++)
{
for (int j = 0; j < pointCount; j++)
{
float x = -halfSize + j * step;
float z = -halfSize + i * step;
Vector2 pos2D = new Vector2(x, z);
float baseY = GetNoiseHeight(x, z, time);
float rippleY = 0f;
float brightness = 0f;
float shapeBlend = 0f;
foreach (var ripple in ripples)
{
float elapsed = Time.time - ripple.startTime;
float spread = elapsed * rippleSpreadSpeed;
float dist = Vector2.Distance(pos2D, ripple.position);
float ease = Mathf.Sin(Mathf.Clamp01(elapsed / rippleDuration) * Mathf.PI);
float spike = Mathf.Exp(-Mathf.Pow(dist - spread, 2f) * rippleSharpness);
float bright = Mathf.Exp(-Mathf.Pow((dist - spread) * 0.5f, 2f));
rippleY += spike * rippleStrength * ease;
brightness += bright * ease;
// 目标点接近程度影响形状混合程度
float targetDist = Vector2.Distance(ripple.position, targetPosition);
float shapeFactor = Mathf.Clamp01(1f - targetDist / shapeChangeRadius);
shapeBlend = Mathf.Max(shapeBlend, shapeFactor * ease);
}
float finalY = baseY + rippleY;
Vector3 worldPos = new Vector3(x, finalY, z);
points[i * pointCount + j] = worldPos;
float depth = (finalY + waveHeight) / (waveHeight * 2f);
float brightnessScale = Mathf.Clamp01(1f + brightness);
Color pointColor = Color.Lerp(new Color(0.5f, 1f, 1f), new Color(0f, 0.5f, 1f), depth);
pointColor *= brightnessScale;
float scale = pointSize * (1f - depth * 0.5f);
// 形状混合逻辑(近似插值)
if (shapeBlend < 0.1f)
{
Draw.Sphere(worldPos, scale, pointColor);
}
else if (shapeBlend < 0.3f)
{
Draw.Torus(worldPos, scale * 0.6f, scale * 0.2f, pointColor); // 环形
}
else if (shapeBlend < 0.6f)
{
Draw.Cube(worldPos, scale * 1.4f, pointColor); // 立方体
}
else if (shapeBlend < 0.9f)
{
Draw.Cone(worldPos, scale * 1.6f, scale * 0.5f, pointColor); // 锥体
}
else
{
Vector3 a = worldPos + Vector3.up * scale;
Vector3 b = worldPos + new Vector3(scale, -scale, 0);
Vector3 c = worldPos + new Vector3(-scale, -scale, 0);
Draw.Triangle(a, b, c, pointColor); // 三角形
}
}
}
// 连接线条(可选)
for (int i = 0; i < pointCount; i++)
{
for (int j = 0; j < pointCount; j++)
{
int index = i * pointCount + j;
Vector3 current = points[index];
if (j < pointCount - 1)
{
Vector3 next = points[index + 1];
DrawLine(current, next);
}
if (i < pointCount - 1)
{
Vector3 next = points[index + pointCount];
DrawLine(current, next);
}
}
}
}
}
void DrawLine(Vector3 a, Vector3 b)
{
float avgY = (a.y + b.y) * 0.5f;
float lineDepth = (avgY + waveHeight) / (waveHeight * 2f);
Color lineColor = Color.Lerp(Color.cyan, new Color(0, 0.5f, 1f, 0.3f), lineDepth);
Draw.Line(a, b, lineWidth * (1f - lineDepth * 0.5f), lineColor);
}
}
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 874c4686e7644b74f83e1c0a58b26b34
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,79 @@
using UnityEngine;
using System.Collections.Generic;
public struct Ripple
{
public Vector3 position;
public float startTime;
public float strength;
}
public struct RippleResult
{
public float height;
public float brightness;
}
public class RippleManager
{
private List<Ripple> ripples = new List<Ripple>();
private float rippleStrength;
private float rippleDuration;
private float rippleSpreadSpeed;
private float rippleSharpness;
private float rippleMaxRadius;
public RippleManager(float strength, float duration, float spreadSpeed, float sharpness, float maxRadius)
{
rippleStrength = strength;
rippleDuration = duration;
rippleSpreadSpeed = spreadSpeed;
rippleSharpness = sharpness;
rippleMaxRadius = maxRadius;
}
public void AddRipple(Vector3 position)
{
ripples.Add(new Ripple
{
position = position,
startTime = Time.time,
strength = rippleStrength
});
}
public void CleanupRipples()
{
ripples.RemoveAll(r => Time.time - r.startTime > rippleDuration);
}
public RippleResult GetRippleEffect(Vector3 position, float currentTime)
{
float totalHeight = 0f;
float totalBrightness = 0f;
foreach (var ripple in ripples)
{
float timeSinceStart = currentTime - ripple.startTime;
if (timeSinceStart > rippleDuration) continue;
float distance = Vector3.Distance(position, ripple.position);
float maxDistance = rippleSpreadSpeed * timeSinceStart;
if (distance > maxDistance || distance > rippleMaxRadius) continue;
float distFactor = Mathf.Exp(-distance * rippleSharpness);
float timeFactor = 1f - (timeSinceStart / rippleDuration);
float strength = ripple.strength * distFactor * timeFactor;
totalHeight += strength;
totalBrightness += strength;
}
return new RippleResult
{
height = totalHeight,
brightness = totalBrightness
};
}
}
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: ea17c12f760878e4dadd86d12ad6ca8a
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,112 @@
using UnityEngine;
using System.Collections.Generic;
using Shapes;
public enum TargetType
{
Sphere,
Cube,
Torus
}
public class TargetPointManager
{
private List<Vector3> targetPoints = new List<Vector3>();
private List<TargetType> targetTypes = new List<TargetType>();
private float targetSize;
private float wireScale;
private float heightOffset;
private Color entityColor;
private Color wireColor;
private float rotationSpeed;
private float floatSpeed;
private float floatHeight;
public TargetPointManager(float size, float wireScale, float height, Color entity, Color wire, float rotSpeed, float floatSpeed, float floatHeight)
{
this.targetSize = size;
this.wireScale = wireScale;
this.heightOffset = height;
this.entityColor = entity;
this.wireColor = wire;
this.rotationSpeed = rotSpeed;
this.floatSpeed = floatSpeed;
this.floatHeight = floatHeight;
}
public void AddTargetPoint(Vector3 position, TargetType type)
{
targetPoints.Add(position);
targetTypes.Add(type);
}
public void ClearTargetPoints()
{
targetPoints.Clear();
targetTypes.Clear();
}
public void DrawTargetPoints(float currentTime)
{
for (int i = 0; i < targetPoints.Count; i++)
{
Vector3 pos = targetPoints[i];
TargetType type = targetTypes[i];
// 计算浮动效果
float floatOffset = Mathf.Sin(currentTime * floatSpeed) * floatHeight;
Vector3 finalPos = pos + Vector3.up * (heightOffset + floatOffset);
// 绘制外框(立方体)
DrawWireCube(finalPos, targetSize * wireScale, wireColor);
// 绘制内部形状
switch (type)
{
case TargetType.Sphere:
Draw.Sphere(finalPos, targetSize * 0.8f, entityColor);
break;
case TargetType.Cube:
Draw.Cube(finalPos, Quaternion.Euler(0, currentTime * rotationSpeed, 0), targetSize * 0.8f, entityColor);
break;
case TargetType.Torus:
Draw.Torus(finalPos, Quaternion.Euler(0, currentTime * rotationSpeed, 0), targetSize * 0.8f, targetSize * 0.2f, entityColor);
break;
}
}
}
private void DrawWireCube(Vector3 position, float size, Color color)
{
float halfSize = size / 2f;
Vector3[] points = new Vector3[]
{
position + new Vector3(-halfSize, -halfSize, -halfSize),
position + new Vector3(halfSize, -halfSize, -halfSize),
position + new Vector3(halfSize, -halfSize, halfSize),
position + new Vector3(-halfSize, -halfSize, halfSize),
position + new Vector3(-halfSize, halfSize, -halfSize),
position + new Vector3(halfSize, halfSize, -halfSize),
position + new Vector3(halfSize, halfSize, halfSize),
position + new Vector3(-halfSize, halfSize, halfSize)
};
// 绘制底面
Draw.Line(points[0], points[1], 0.1f, color);
Draw.Line(points[1], points[2], 0.1f, color);
Draw.Line(points[2], points[3], 0.1f, color);
Draw.Line(points[3], points[0], 0.1f, color);
// 绘制顶面
Draw.Line(points[4], points[5], 0.1f, color);
Draw.Line(points[5], points[6], 0.1f, color);
Draw.Line(points[6], points[7], 0.1f, color);
Draw.Line(points[7], points[4], 0.1f, color);
// 绘制连接线
Draw.Line(points[0], points[4], 0.1f, color);
Draw.Line(points[1], points[5], 0.1f, color);
Draw.Line(points[2], points[6], 0.1f, color);
Draw.Line(points[3], points[7], 0.1f, color);
}
}
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: b8d5ffa5489c71c48951644fc2c52117
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,21 @@
using UnityEngine;
public class WaveGenerator
{
private float noiseScale;
private float waveHeight;
private float waveSpeed;
public WaveGenerator(float noiseScale, float waveHeight, float waveSpeed)
{
this.noiseScale = noiseScale;
this.waveHeight = waveHeight;
this.waveSpeed = waveSpeed;
}
public float GetHeight(float x, float z, float time)
{
float noise = Mathf.PerlinNoise(x * noiseScale + time * waveSpeed, z * noiseScale + time * waveSpeed);
return Mathf.Lerp(-waveHeight, waveHeight, noise);
}
}
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: ed485db0b6bd66943af4f7b138357992
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant: