网格功能
This commit is contained in:
@@ -1,535 +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="AibisDream.ActiveScenePart" preserve="all" />
|
||||
<type fullname="AibisDream.ActorAnima" preserve="all" />
|
||||
<type fullname="AibisDream.ActorManager" preserve="all" />
|
||||
<type fullname="AibisDream.ActorSlot" preserve="all" />
|
||||
<type fullname="AibisDream.AnimaMobileObject" preserve="all" />
|
||||
<type fullname="AibisDream.BatchSpawner" preserve="all" />
|
||||
<type fullname="AibisDream.BoolButton" preserve="all" />
|
||||
<type fullname="AibisDream.Bubble" preserve="all" />
|
||||
<type fullname="AibisDream.BubbleGroup" preserve="all" />
|
||||
<type fullname="AibisDream.BubbleOption" preserve="all" />
|
||||
<type fullname="AibisDream.BubbleOptionSlot" preserve="all" />
|
||||
<type fullname="AibisDream.BubbleSlot" preserve="all" />
|
||||
<type fullname="AibisDream.BubbleSlotGroup" preserve="all" />
|
||||
<type fullname="AibisDream.BubbleStyle" preserve="all" />
|
||||
<type fullname="AibisDream.CenterBubble" preserve="all" />
|
||||
<type fullname="AibisDream.CenterOptions" preserve="all" />
|
||||
<type fullname="AibisDream.ChapterController" preserve="all" />
|
||||
<type fullname="AibisDream.ChapterItem" preserve="all" />
|
||||
<type fullname="AibisDream.CircularProgress" preserve="all" />
|
||||
<type fullname="AibisDream.ClinicSystem" preserve="all" />
|
||||
<type fullname="AibisDream.ColorTintButton" preserve="all" />
|
||||
<type fullname="AibisDream.CordPull" preserve="all" />
|
||||
<type fullname="AibisDream.CursorManager" preserve="all" />
|
||||
<type fullname="AibisDream.CutLine" preserve="all" />
|
||||
<type fullname="AibisDream.CuttingManager" preserve="all" />
|
||||
<type fullname="AibisDream.DefaultOptions" preserve="all" />
|
||||
<type fullname="AibisDream.DemoTimer" preserve="all" />
|
||||
<type fullname="AibisDream.DialogController" preserve="all" />
|
||||
<type fullname="AibisDream.DialogUIManager" preserve="all" />
|
||||
<type fullname="AibisDream.EmoManager" preserve="all" />
|
||||
<type fullname="AibisDream.EngineSystem" preserve="all" />
|
||||
<type fullname="AibisDream.EnvironmentManager" preserve="all" />
|
||||
<type fullname="AibisDream.ExpressionCable" preserve="all" />
|
||||
<type fullname="AibisDream.ExpressionCableSystem" preserve="all" />
|
||||
<type fullname="AibisDream.ExpressionManager" preserve="all" />
|
||||
<type fullname="AibisDream.ExpressionPlug" preserve="all" />
|
||||
<type fullname="AibisDream.ExpressionPowerSource" preserve="all" />
|
||||
<type fullname="AibisDream.ExpressionSocket" preserve="all" />
|
||||
<type fullname="AibisDream.ExpressionSubSystem" 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.CableReel" preserve="all" />
|
||||
<type fullname="AibisDream.FixSystem.CableSystem" preserve="all" />
|
||||
<type fullname="AibisDream.FixSystem.CheckData" preserve="all" />
|
||||
<type fullname="AibisDream.FixSystem.CheckRule" preserve="all" />
|
||||
<type fullname="AibisDream.FixSystem.FixLightSystem" preserve="all" />
|
||||
<type fullname="AibisDream.FixSystem.FixSystemCenter" preserve="all" />
|
||||
<type fullname="AibisDream.FixSystem.PipelineProduct" preserve="all" />
|
||||
<type fullname="AibisDream.FixSystem.Plug" preserve="all" />
|
||||
<type fullname="AibisDream.FixSystem.ScreenSystem" preserve="all" />
|
||||
<type fullname="AibisDream.FixSystem.WhackMoleData" preserve="all" />
|
||||
<type fullname="AibisDream.Framework.CameraKit" preserve="all" />
|
||||
<type fullname="AibisDream.Framework.EventSystemEx" 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.UICamera" 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.MonoUpdateActionExecutor" preserve="all" />
|
||||
<type fullname="AibisDream.Kit.VerText" preserve="all" />
|
||||
<type fullname="AibisDream.LanguageItem" preserve="all" />
|
||||
<type fullname="AibisDream.LineAdvanceInput" preserve="all" />
|
||||
<type fullname="AibisDream.LineRunner" preserve="all" />
|
||||
<type fullname="AibisDream.LocalisedLineProvider" preserve="all" />
|
||||
<type fullname="AibisDream.LocalizedText" preserve="all" />
|
||||
<type fullname="AibisDream.MouseFollowAndZoom" preserve="all" />
|
||||
<type fullname="AibisDream.MoveablePartGroup" preserve="all" />
|
||||
<type fullname="AibisDream.OpenSystem" preserve="all" />
|
||||
<type fullname="AibisDream.OptionView" preserve="all" />
|
||||
<type fullname="AibisDream.OutsideCenter" preserve="all" />
|
||||
<type fullname="AibisDream.PrefabMobileObject" preserve="all" />
|
||||
<type fullname="AibisDream.SceneLoader" preserve="all" />
|
||||
<type fullname="AibisDream.SelectItem" preserve="all" />
|
||||
<type fullname="AibisDream.SettingForm" preserve="all" />
|
||||
<type fullname="AibisDream.Shaft" preserve="all" />
|
||||
<type fullname="AibisDream.SliderItem" preserve="all" />
|
||||
<type fullname="AibisDream.Spawner" preserve="all" />
|
||||
<type fullname="AibisDream.SpawnScenePart" preserve="all" />
|
||||
<type fullname="AibisDream.SpriteActor" preserve="all" />
|
||||
<type fullname="AibisDream.SpriteFlashSystem" preserve="all" />
|
||||
<type fullname="AibisDream.SpriteMobileObject" preserve="all" />
|
||||
<type fullname="AibisDream.SpriteScenePart" preserve="all" />
|
||||
<type fullname="AibisDream.StorageSystem" preserve="all" />
|
||||
<type fullname="AibisDream.SubwayCenter" preserve="all" />
|
||||
<type fullname="AibisDream.TalkSceneSO" preserve="all" />
|
||||
<type fullname="AibisDream.TaskScreen" preserve="all" />
|
||||
<type fullname="AibisDream.UI.ChapterPanel" preserve="all" />
|
||||
<type fullname="AibisDream.UI.EndPanel" preserve="all" />
|
||||
<type fullname="AibisDream.UI.MainPanel" preserve="all" />
|
||||
<type fullname="AibisDream.UI.PlayToolPanel" preserve="all" />
|
||||
<type fullname="AibisDream.UI.RecordItem" preserve="all" />
|
||||
<type fullname="AibisDream.UI.RecordPanel" preserve="all" />
|
||||
<type fullname="AibisDream.UI.SettingPanel" preserve="all" />
|
||||
<type fullname="AibisDream.UI.StartPanel" preserve="all" />
|
||||
<type fullname="AibisDream.UIManager" preserve="all" />
|
||||
<type fullname="AibisDream.Vehicle" 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="ExplosionEffect" preserve="all" />
|
||||
<type fullname="EyeTarget" preserve="all" />
|
||||
<type fullname="EyeTransitionManager" preserve="all" />
|
||||
<type fullname="FavoritesManager" preserve="all" />
|
||||
<type fullname="GearFollower" preserve="all" />
|
||||
<type fullname="HeatMapController" preserve="all" />
|
||||
<type fullname="LakeLineDrawer" preserve="all" />
|
||||
<type fullname="LineInteraction" preserve="all" />
|
||||
<type fullname="MemoryClueSlot" preserve="all" />
|
||||
<type fullname="MemoryProcess" preserve="all" />
|
||||
<type fullname="PhysicCable" preserve="all" />
|
||||
<type fullname="PhysicLineSegment" preserve="all" />
|
||||
<type fullname="PunchTapeSystem" preserve="all" />
|
||||
<type fullname="RobotECGWave" preserve="all" />
|
||||
<type fullname="ScreenEffectManager" preserve="all" />
|
||||
<type fullname="ShockSystem" preserve="all" />
|
||||
<type fullname="TimelineManager" preserve="all" />
|
||||
<type fullname="UFModule" preserve="all" />
|
||||
<type fullname="UFSystem" preserve="all" />
|
||||
<type fullname="ViewCameraManager" preserve="all" />
|
||||
<type fullname="AibisDream.BoolButtonData" preserve="nothing" serialized="true" />
|
||||
<type fullname="AibisDream.UIFormOption" preserve="nothing" serialized="true" />
|
||||
<type fullname="AibisDream.AddressArray" preserve="nothing" serialized="true" />
|
||||
<type fullname="AibisDream.BubbleOptionSlotData" preserve="nothing" serialized="true" />
|
||||
<type fullname="AibisDream.BubbleSlotData" preserve="nothing" serialized="true" />
|
||||
<type fullname="AibisDream.BubbleSlotGroupData" preserve="nothing" serialized="true" />
|
||||
<type fullname="AibisDream.FixSystem.BodyModuleData" preserve="nothing" serialized="true" />
|
||||
<type fullname="AibisDream.FixSystem.CableConfig" preserve="nothing" serialized="true" />
|
||||
<type fullname="AibisDream.Framework.SpriteGroupConfig" preserve="nothing" serialized="true" />
|
||||
<type fullname="AibisDream.Framework.SpriteGroupData" preserve="nothing" serialized="true" />
|
||||
<type fullname="AibisDream.MobileObjectData" preserve="nothing" serialized="true" />
|
||||
<type fullname="AibisDream.SpawnerPartAsset" preserve="nothing" serialized="true" />
|
||||
<type fullname="AibisDream.SpritePartAsset" preserve="nothing" serialized="true" />
|
||||
<type fullname="EyeTransitionManager/ViewConfig" preserve="nothing" serialized="true" />
|
||||
<type fullname="PunchTape" preserve="nothing" serialized="true" />
|
||||
<type fullname="AibisDream.ActivePartAsset" preserve="nothing" serialized="true" />
|
||||
<type fullname="AibisDream.ActorData" preserve="nothing" serialized="true" />
|
||||
<type fullname="AibisDream.CableConfig" preserve="nothing" serialized="true" />
|
||||
<type fullname="LakeLineDrawer/Obstacle" preserve="nothing" serialized="true" />
|
||||
<type fullname="LakeLineDrawer/TargetPoint" preserve="nothing" serialized="true" />
|
||||
<type fullname="AibisDream.EngineConfig" preserve="nothing" serialized="true" />
|
||||
<type fullname="AibisDream.EngineGear" preserve="nothing" serialized="true" />
|
||||
<type fullname="AibisDream.FixSystem.WhackMoleBatch" 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.ModalWindow" 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.ProgressBarGridLinear" 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.ModalWindow/ModalWindowEvent" 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.NoiseSettings" preserve="all" />
|
||||
<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" />
|
||||
<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.NoiseSettings/NoiseParams" preserve="nothing" serialized="true" />
|
||||
<type fullname="Cinemachine.NoiseSettings/TransformNoiseParams" 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.UniformCurveAnimation" 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.Effects.AnimationData" preserve="nothing" serialized="true" />
|
||||
<type fullname="Febucci.UI.Effects.ColorCurve" preserve="nothing" serialized="true" />
|
||||
<type fullname="Febucci.UI.Effects.EmissionCurve" preserve="nothing" serialized="true" />
|
||||
<type fullname="Febucci.UI.Effects.FloatCurve" preserve="nothing" serialized="true" />
|
||||
<type fullname="Febucci.UI.Effects.TimeMode" 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.FMODEventPlayable" preserve="all" />
|
||||
<type fullname="FMODUnity.FMODEventTrack" preserve="all" />
|
||||
<type fullname="FMODUnity.StudioListener" preserve="all" />
|
||||
<type fullname="FMOD.GUID" preserve="nothing" serialized="true" />
|
||||
<type fullname="FMODUnity.AutomatableSlots" preserve="nothing" serialized="true" />
|
||||
<type fullname="FMODUnity.EventReference" preserve="nothing" serialized="true" />
|
||||
<type fullname="FMODUnity.FMODEventMixerBehaviour" preserve="nothing" serialized="true" />
|
||||
<type fullname="FMODUnity.FMODEventPlayableBehavior" preserve="nothing" serialized="true" />
|
||||
</assembly>
|
||||
<assembly fullname="ScreenFx, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null">
|
||||
<type fullname="ScreenFx.CameraTrack" preserve="all" />
|
||||
<type fullname="ScreenFx.MoveAsset" preserve="all" />
|
||||
<type fullname="ScreenFx.NoiseAsset" preserve="all" />
|
||||
<type fullname="ScreenFx.ScreenAsset" preserve="all" />
|
||||
<type fullname="ScreenFx.ScreenFx" preserve="all" />
|
||||
<type fullname="ScreenFx.ScreenFxPool" preserve="all" />
|
||||
<type fullname="ScreenFx.ScreenTrack" preserve="all" />
|
||||
<type fullname="ScreenFx.VolumeAsset" preserve="all" />
|
||||
<type fullname="ScreenFx.VolumeTrack" preserve="all" />
|
||||
<type fullname="ScreenFx.CameraBehaviour" preserve="nothing" serialized="true" />
|
||||
<type fullname="ScreenFx.NoiseBehaviour" preserve="nothing" serialized="true" />
|
||||
<type fullname="ScreenFx.Optional`1[Cinemachine.NoiseSettings]" preserve="nothing" serialized="true" />
|
||||
<type fullname="ScreenFx.Optional`1[UnityEngine.Sprite]" preserve="nothing" serialized="true" />
|
||||
<type fullname="ScreenFx.ScreenBehaviour" preserve="nothing" serialized="true" />
|
||||
<type fullname="ScreenFx.VolumeBehaviour" preserve="nothing" serialized="true" />
|
||||
</assembly>
|
||||
<assembly fullname="Unity.2D.SpriteShape.Runtime, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null">
|
||||
<type fullname="UnityEngine.U2D.SpriteShape" preserve="all" />
|
||||
<type fullname="UnityEngine.U2D.SpriteShapeController" preserve="all" />
|
||||
<type fullname="UnityEngine.U2D.AngleRange" preserve="nothing" serialized="true" />
|
||||
<type fullname="UnityEngine.U2D.CornerSprite" preserve="nothing" serialized="true" />
|
||||
<type fullname="UnityEngine.U2D.Spline" preserve="nothing" serialized="true" />
|
||||
<type fullname="UnityEngine.U2D.SplineControlPoint" 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.LocalizeSpriteEvent" preserve="all" />
|
||||
<type fullname="UnityEngine.Localization.Components.LocalizeStringEvent" preserve="all" />
|
||||
<type fullname="UnityEngine.Localization.Locale" preserve="all" />
|
||||
<type fullname="UnityEngine.Localization.Tables.AssetTable" preserve="all" />
|
||||
<type fullname="UnityEngine.Localization.Tables.SharedTableData" preserve="all" />
|
||||
<type fullname="UnityEngine.Localization.Tables.StringTable" preserve="all" />
|
||||
<type fullname="UnityEngine.Localization.Events.UnityEventSprite" preserve="nothing" serialized="true" />
|
||||
<type fullname="UnityEngine.Localization.Events.UnityEventString" preserve="nothing" serialized="true" />
|
||||
<type fullname="UnityEngine.Localization.LocalizedSprite" preserve="nothing" serialized="true" />
|
||||
<type fullname="UnityEngine.Localization.LocalizedString" preserve="nothing" serialized="true" />
|
||||
<type fullname="UnityEngine.Localization.SmartFormat.PersistentVariables.StringVariable" preserve="nothing" serialized="true" />
|
||||
<type fullname="UnityEngine.Localization.SmartFormat.PersistentVariables.VariableNameValuePair" 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.AssetTypeMetadata" 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.ColorParameter" preserve="nothing" serialized="true" />
|
||||
<type fullname="UnityEngine.Rendering.FloatParameter" preserve="nothing" serialized="true" />
|
||||
<type fullname="UnityEngine.Rendering.Vector2Parameter" preserve="nothing" serialized="true" />
|
||||
<type fullname="UnityEngine.Rendering.ClampedIntParameter" preserve="nothing" serialized="true" />
|
||||
<type fullname="UnityEngine.Rendering.NoInterpClampedFloatParameter" preserve="nothing" serialized="true" />
|
||||
<type fullname="UnityEngine.Rendering.NoInterpClampedIntParameter" preserve="nothing" serialized="true" />
|
||||
<type fullname="UnityEngine.Rendering.NoInterpColorParameter" preserve="nothing" serialized="true" />
|
||||
<type fullname="UnityEngine.Rendering.Texture2DParameter" 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.Light2D" preserve="all" />
|
||||
<type fullname="UnityEngine.Rendering.Universal.UniversalAdditionalCameraData" preserve="all" />
|
||||
<type fullname="UnityEngine.Rendering.Universal.Vignette" preserve="all" />
|
||||
<type fullname="UnityEngine.Rendering.Universal.TemporalAA/Settings" 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.ActivationPlayableAsset" preserve="all" />
|
||||
<type fullname="UnityEngine.Timeline.ActivationTrack" preserve="all" />
|
||||
<type fullname="UnityEngine.Timeline.AnimationPlayableAsset" preserve="all" />
|
||||
<type fullname="UnityEngine.Timeline.AnimationTrack" preserve="all" />
|
||||
<type fullname="UnityEngine.Timeline.GroupTrack" preserve="all" />
|
||||
<type fullname="UnityEngine.Timeline.MarkerTrack" 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.TimelineClip" 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.ComputeShader" preserve="all" />
|
||||
<type fullname="UnityEngine.GameObject" preserve="all" />
|
||||
<type fullname="UnityEngine.LightmapSettings" preserve="all" />
|
||||
<type fullname="UnityEngine.LightProbes" preserve="all" />
|
||||
<type fullname="UnityEngine.LineRenderer" preserve="all" />
|
||||
<type fullname="UnityEngine.Material" preserve="all" />
|
||||
<type fullname="UnityEngine.Mesh" preserve="all" />
|
||||
<type fullname="UnityEngine.MeshFilter" preserve="all" />
|
||||
<type fullname="UnityEngine.MeshRenderer" preserve="all" />
|
||||
<type fullname="UnityEngine.MonoBehaviour" 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.ArgumentCache" preserve="nothing" serialized="true" />
|
||||
<type fullname="UnityEngine.Events.PersistentCallGroup" 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`1[System.Int32]" 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.PolygonCollider2D" preserve="all" />
|
||||
<type fullname="UnityEngine.Rigidbody2D" preserve="all" />
|
||||
</assembly>
|
||||
<assembly fullname="UnityEngine.PhysicsModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null">
|
||||
<type fullname="UnityEngine.BoxCollider" preserve="all" />
|
||||
<type fullname="UnityEngine.Rigidbody" 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.SpriteShapeModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null">
|
||||
<type fullname="UnityEngine.U2D.SpriteShapeRenderer" 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="UnityEngine.VFXModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null">
|
||||
<type fullname="UnityEngine.VFX.VFXRenderer" preserve="all" />
|
||||
<type fullname="UnityEngine.VFX.VisualEffect" preserve="all" />
|
||||
<type fullname="UnityEngine.VFX.VisualEffectAsset" preserve="all" />
|
||||
</assembly>
|
||||
<assembly fullname="VolFx, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null">
|
||||
<type fullname="VolFx.AdjustmentsVol" preserve="all" />
|
||||
<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.UnityLocalization.LineMetadata" 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" />
|
||||
</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>
|
||||
@@ -0,0 +1,30 @@
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
|
||||
namespace AibisDream.SystemEditor
|
||||
{
|
||||
[CustomEditor(typeof(BlockPuzzleGrid))]
|
||||
public class BlockPuzzleGridEditor : Editor
|
||||
{
|
||||
public override void OnInspectorGUI()
|
||||
{
|
||||
base.OnInspectorGUI();
|
||||
var example = (BlockPuzzleGrid)target;
|
||||
|
||||
EditorGUILayout.Separator();
|
||||
EditorGUILayout.BeginHorizontal();
|
||||
// 保存按钮
|
||||
if (GUILayout.Button("保存"))
|
||||
{
|
||||
// example.SaveStyle();
|
||||
}
|
||||
|
||||
// 加载按钮
|
||||
if (GUILayout.Button("加载"))
|
||||
{
|
||||
// example.LoadStyle();
|
||||
}
|
||||
EditorGUILayout.EndHorizontal();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 7eb275cadab046c44a9f46f3f475145e
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,345 @@
|
||||
%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: 3
|
||||
agentTypeID: 0
|
||||
agentRadius: 0.5
|
||||
agentHeight: 2
|
||||
agentSlope: 45
|
||||
agentClimb: 0.4
|
||||
ledgeDropHeight: 0
|
||||
maxJumpAcrossDistance: 0
|
||||
minRegionArea: 2
|
||||
manualCellSize: 0
|
||||
cellSize: 0.16666667
|
||||
manualTileSize: 0
|
||||
tileSize: 256
|
||||
buildHeightMesh: 0
|
||||
maxJobWorkers: 0
|
||||
preserveTilesOutsideBounds: 0
|
||||
debug:
|
||||
m_Flags: 0
|
||||
m_NavMeshData: {fileID: 0}
|
||||
--- !u!1 &791020753
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 791020756}
|
||||
- component: {fileID: 791020755}
|
||||
- component: {fileID: 791020754}
|
||||
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 &791020754
|
||||
AudioListener:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 791020753}
|
||||
m_Enabled: 1
|
||||
--- !u!20 &791020755
|
||||
Camera:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 791020753}
|
||||
m_Enabled: 1
|
||||
serializedVersion: 2
|
||||
m_ClearFlags: 1
|
||||
m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}
|
||||
m_projectionMatrixMode: 1
|
||||
m_GateFitMode: 2
|
||||
m_FOVAxisMode: 0
|
||||
m_Iso: 200
|
||||
m_ShutterSpeed: 0.005
|
||||
m_Aperture: 16
|
||||
m_FocusDistance: 10
|
||||
m_FocalLength: 50
|
||||
m_BladeCount: 5
|
||||
m_Curvature: {x: 2, y: 11}
|
||||
m_BarrelClipping: 0.25
|
||||
m_Anamorphism: 0
|
||||
m_SensorSize: {x: 36, y: 24}
|
||||
m_LensShift: {x: 0, y: 0}
|
||||
m_NormalizedViewPortRect:
|
||||
serializedVersion: 2
|
||||
x: 0
|
||||
y: 0
|
||||
width: 1
|
||||
height: 1
|
||||
near clip plane: 0.3
|
||||
far clip plane: 1000
|
||||
field of view: 60
|
||||
orthographic: 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 &791020756
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 791020753}
|
||||
serializedVersion: 2
|
||||
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_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!1 &1429030510
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 1429030511}
|
||||
- component: {fileID: 1429030512}
|
||||
m_Layer: 0
|
||||
m_Name: Block Puzzle Game
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &1429030511
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1429030510}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children:
|
||||
- {fileID: 1928610076}
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!114 &1429030512
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1429030510}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: cfe4f41ce15355345b390aa2701f3f46, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
gridComponent: {fileID: 0}
|
||||
gridVisualizer: {fileID: 0}
|
||||
testPlaceKey: 32
|
||||
testClearKey: 99
|
||||
--- !u!1 &1928610075
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 1928610076}
|
||||
- component: {fileID: 1928610078}
|
||||
- component: {fileID: 1928610077}
|
||||
m_Layer: 0
|
||||
m_Name: Grid
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &1928610076
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1928610075}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 1429030511}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!114 &1928610077
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1928610075}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: d364afd8a560b4447b86f55c52c73d7a, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
gridComponent: {fileID: 1928610078}
|
||||
gridWidth: 10
|
||||
gridHeight: 10
|
||||
cellSize: 1
|
||||
showGridLines: 1
|
||||
showCellSprites: 1
|
||||
emptyCellColor: {r: 0.9, g: 0.9, b: 0.9, a: 0.3}
|
||||
occupiedCellColor: {r: 0.2, g: 0.6, b: 1, a: 1}
|
||||
gridLineColor: {r: 0.5, g: 0.5, b: 0.5, a: 0.5}
|
||||
gridLineWidth: 0.02
|
||||
cellSprite: {fileID: 0}
|
||||
cellMaterial: {fileID: 0}
|
||||
--- !u!114 &1928610078
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1928610075}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 990de8ef2a6774544b9bc9b64af0a8a5, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
width: 10
|
||||
height: 10
|
||||
cellSize: 1
|
||||
initializeOnStart: 1
|
||||
--- !u!1660057539 &9223372036854775807
|
||||
SceneRoots:
|
||||
m_ObjectHideFlags: 0
|
||||
m_Roots:
|
||||
- {fileID: 791020756}
|
||||
- {fileID: 1429030511}
|
||||
@@ -1,6 +1,6 @@
|
||||
fileFormatVersion: 2
|
||||
guid: d54d55d9be1bc4d4b9eadd960d993a80
|
||||
TextScriptImporter:
|
||||
guid: d4b95f599ab563c45a074014a67459fb
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f38a6a6bc9a88284496050743d6247e9
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,214 @@
|
||||
using UnityEngine;
|
||||
|
||||
namespace AibisDream
|
||||
{
|
||||
/// <summary>
|
||||
/// BlockPuzzle网格组件
|
||||
/// 实现IBlockPuzzleGrid接口,管理整个游戏网格的状态和操作
|
||||
/// </summary>
|
||||
public class BlockPuzzleGrid : MonoBehaviour, IBlockPuzzleGrid
|
||||
{
|
||||
[Header("网格设置")]
|
||||
[SerializeField] private int width = 10;
|
||||
[SerializeField] private int height = 10;
|
||||
[SerializeField] private float cellSize = 1f;
|
||||
[SerializeField] private bool initializeOnStart = true;
|
||||
|
||||
private GridCellState[,] _grid;
|
||||
private bool _isInitialized = false;
|
||||
|
||||
// IBlockPuzzleGrid 接口实现
|
||||
public int Width { get; private set; }
|
||||
public int Height { get; private set; }
|
||||
public float CellSize { get; private set; }
|
||||
public Vector3 Origin { get; private set; }
|
||||
|
||||
private void Start()
|
||||
{
|
||||
if (initializeOnStart)
|
||||
{
|
||||
Initialize(width, height, cellSize, transform.position);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 初始化网格
|
||||
/// </summary>
|
||||
public void Initialize(int width, int height, float cellSize, Vector3 origin)
|
||||
{
|
||||
if (width <= 0 || height <= 0)
|
||||
{
|
||||
Debug.LogError($"BlockPuzzleGridComponent: 无效的网格尺寸 {width}x{height}");
|
||||
return;
|
||||
}
|
||||
|
||||
if (cellSize <= 0)
|
||||
{
|
||||
Debug.LogError($"BlockPuzzleGridComponent: 无效的单元格大小 {cellSize}");
|
||||
return;
|
||||
}
|
||||
|
||||
this.width = width;
|
||||
this.height = height;
|
||||
this.cellSize = cellSize;
|
||||
|
||||
Width = width;
|
||||
Height = height;
|
||||
CellSize = cellSize;
|
||||
Origin = origin;
|
||||
_grid = new GridCellState[width, height];
|
||||
_isInitialized = true;
|
||||
|
||||
Clear();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 使用Inspector中的参数初始化网格
|
||||
/// </summary>
|
||||
public void Initialize()
|
||||
{
|
||||
Initialize(width, height, cellSize, transform.position);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 重新初始化网格(使用新的参数)
|
||||
/// </summary>
|
||||
public void Reinitialize(int newWidth, int newHeight, float newCellSize)
|
||||
{
|
||||
Initialize(newWidth, newHeight, newCellSize, transform.position);
|
||||
}
|
||||
|
||||
public GridCellState GetCellState(int x, int y)
|
||||
{
|
||||
if (!_isInitialized)
|
||||
{
|
||||
Debug.LogWarning("BlockPuzzleGridComponent: 网格未初始化");
|
||||
return GridCellState.Empty;
|
||||
}
|
||||
|
||||
if (!IsValidPosition(x, y))
|
||||
{
|
||||
Debug.LogWarning($"BlockPuzzleGridComponent: 尝试访问无效位置 ({x}, {y})");
|
||||
return GridCellState.Empty;
|
||||
}
|
||||
|
||||
return _grid[x, y];
|
||||
}
|
||||
|
||||
public void SetCellState(int x, int y, GridCellState state)
|
||||
{
|
||||
if (!_isInitialized)
|
||||
{
|
||||
Debug.LogWarning("BlockPuzzleGridComponent: 网格未初始化");
|
||||
return;
|
||||
}
|
||||
|
||||
if (!IsValidPosition(x, y))
|
||||
{
|
||||
Debug.LogWarning($"BlockPuzzleGridComponent: 尝试设置无效位置 ({x}, {y})");
|
||||
return;
|
||||
}
|
||||
|
||||
_grid[x, y] = state;
|
||||
}
|
||||
|
||||
public bool IsValidPosition(int x, int y)
|
||||
{
|
||||
return _isInitialized && x >= 0 && x < Width && y >= 0 && y < Height;
|
||||
}
|
||||
|
||||
public bool IsCellEmpty(int x, int y)
|
||||
{
|
||||
return IsValidPosition(x, y) && GetCellState(x, y) == GridCellState.Empty;
|
||||
}
|
||||
|
||||
public bool WorldToGrid(Vector3 worldPos, out int gridX, out int gridY)
|
||||
{
|
||||
if (!_isInitialized)
|
||||
{
|
||||
gridX = 0;
|
||||
gridY = 0;
|
||||
return false;
|
||||
}
|
||||
|
||||
Vector3 localPos = worldPos - Origin;
|
||||
gridX = Mathf.FloorToInt(localPos.x / CellSize);
|
||||
gridY = Mathf.FloorToInt(localPos.y / CellSize);
|
||||
|
||||
// 检查是否在有效范围内
|
||||
if (!IsValidPosition(gridX, gridY))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public Vector3 GridToWorld(int gridX, int gridY)
|
||||
{
|
||||
if (!_isInitialized)
|
||||
{
|
||||
return transform.position;
|
||||
}
|
||||
|
||||
// 返回单元格中心的世界坐标
|
||||
float worldX = Origin.x + (gridX + 0.5f) * CellSize;
|
||||
float worldY = Origin.y + (gridY + 0.5f) * CellSize;
|
||||
return new Vector3(worldX, worldY, Origin.z);
|
||||
}
|
||||
|
||||
public void Clear()
|
||||
{
|
||||
if (!_isInitialized || _grid == null) return;
|
||||
|
||||
for (int x = 0; x < Width; x++)
|
||||
{
|
||||
for (int y = 0; y < Height; y++)
|
||||
{
|
||||
_grid[x, y] = GridCellState.Empty;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public int GetOccupiedCount()
|
||||
{
|
||||
if (!_isInitialized || _grid == null) return 0;
|
||||
|
||||
int count = 0;
|
||||
for (int x = 0; x < Width; x++)
|
||||
{
|
||||
for (int y = 0; y < Height; y++)
|
||||
{
|
||||
if (_grid[x, y] == GridCellState.Occupied)
|
||||
{
|
||||
count++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return count;
|
||||
}
|
||||
|
||||
public int GetTotalCellCount()
|
||||
{
|
||||
return Width * Height;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 检查网格是否已初始化
|
||||
/// </summary>
|
||||
public bool IsInitialized()
|
||||
{
|
||||
return _isInitialized;
|
||||
}
|
||||
|
||||
private void OnValidate()
|
||||
{
|
||||
// 确保参数有效
|
||||
width = Mathf.Max(1, width);
|
||||
height = Mathf.Max(1, height);
|
||||
cellSize = Mathf.Max(0.1f, cellSize);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 990de8ef2a6774544b9bc9b64af0a8a5
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,148 @@
|
||||
using UnityEngine;
|
||||
|
||||
namespace AibisDream
|
||||
{
|
||||
/// <summary>
|
||||
/// BlockPuzzle网格系统使用示例
|
||||
/// 演示如何使用网格系统和可视化组件
|
||||
/// </summary>
|
||||
public class BlockPuzzleGridExample : MonoBehaviour
|
||||
{
|
||||
[Header("组件引用")]
|
||||
[SerializeField] private BlockPuzzleGrid gridComponent;
|
||||
[SerializeField] private GridVisualizer gridVisualizer;
|
||||
|
||||
[Header("测试设置")]
|
||||
[SerializeField] private KeyCode testPlaceKey = KeyCode.Space;
|
||||
[SerializeField] private KeyCode testClearKey = KeyCode.C;
|
||||
|
||||
private IBlockPuzzleGrid _grid;
|
||||
|
||||
private void Start()
|
||||
{
|
||||
// 初始化网格组件
|
||||
if (gridComponent != null)
|
||||
{
|
||||
gridComponent.Initialize();
|
||||
_grid = gridComponent; // 组件直接实现IBlockPuzzleGrid接口
|
||||
}
|
||||
|
||||
// 设置可视化器
|
||||
if (gridVisualizer != null && _grid != null)
|
||||
{
|
||||
gridVisualizer.SetGrid(_grid);
|
||||
}
|
||||
}
|
||||
|
||||
private void Update()
|
||||
{
|
||||
if (_grid == null) return;
|
||||
|
||||
// 测试:按空格键随机放置一个格子
|
||||
if (Input.GetKeyDown(testPlaceKey))
|
||||
{
|
||||
TestPlaceRandomCell();
|
||||
}
|
||||
|
||||
// 测试:按C键清空网格
|
||||
if (Input.GetKeyDown(testClearKey))
|
||||
{
|
||||
TestClearGrid();
|
||||
}
|
||||
|
||||
// 测试:鼠标点击放置格子
|
||||
if (Input.GetMouseButtonDown(0))
|
||||
{
|
||||
TestPlaceCellAtMouse();
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 测试:在随机位置放置一个格子
|
||||
/// </summary>
|
||||
private void TestPlaceRandomCell()
|
||||
{
|
||||
if (_grid == null) return;
|
||||
|
||||
int x = Random.Range(0, _grid.Width);
|
||||
int y = Random.Range(0, _grid.Height);
|
||||
|
||||
if (_grid.IsCellEmpty(x, y))
|
||||
{
|
||||
_grid.SetCellState(x, y, GridCellState.Occupied);
|
||||
Debug.Log($"放置格子到位置 ({x}, {y})");
|
||||
|
||||
// 更新可视化
|
||||
if (gridVisualizer != null)
|
||||
{
|
||||
gridVisualizer.UpdateCellVisual(x, y);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 测试:在鼠标位置放置格子
|
||||
/// </summary>
|
||||
private void TestPlaceCellAtMouse()
|
||||
{
|
||||
if (_grid == null) return;
|
||||
|
||||
// 获取鼠标世界坐标(需要根据你的相机设置调整)
|
||||
Camera cam = Camera.main;
|
||||
if (cam == null) return;
|
||||
|
||||
Vector3 mousePos = Input.mousePosition;
|
||||
mousePos.z = cam.nearClipPlane + 1f; // 设置合适的Z距离
|
||||
Vector3 worldPos = cam.ScreenToWorldPoint(mousePos);
|
||||
|
||||
// 转换为网格坐标
|
||||
if (_grid.WorldToGrid(worldPos, out int gridX, out int gridY))
|
||||
{
|
||||
if (_grid.IsCellEmpty(gridX, gridY))
|
||||
{
|
||||
_grid.SetCellState(gridX, gridY, GridCellState.Occupied);
|
||||
Debug.Log($"鼠标点击放置格子到位置 ({gridX}, {gridY})");
|
||||
|
||||
// 更新可视化
|
||||
if (gridVisualizer != null)
|
||||
{
|
||||
gridVisualizer.UpdateCellVisual(gridX, gridY);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 测试:清空网格
|
||||
/// </summary>
|
||||
private void TestClearGrid()
|
||||
{
|
||||
if (_grid == null) return;
|
||||
|
||||
_grid.Clear();
|
||||
Debug.Log("清空网格");
|
||||
|
||||
// 更新可视化
|
||||
if (gridVisualizer != null)
|
||||
{
|
||||
gridVisualizer.UpdateAllCellsVisual();
|
||||
}
|
||||
}
|
||||
|
||||
private void OnGUI()
|
||||
{
|
||||
if (_grid == null) return;
|
||||
|
||||
GUILayout.BeginArea(new Rect(10, 10, 300, 200));
|
||||
GUILayout.Label($"网格尺寸: {_grid.Width} x {_grid.Height}");
|
||||
GUILayout.Label($"单元格大小: {_grid.CellSize}");
|
||||
GUILayout.Label($"已占用: {_grid.GetOccupiedCount()} / {_grid.GetTotalCellCount()}");
|
||||
GUILayout.Space(10);
|
||||
GUILayout.Label($"按 {testPlaceKey} 键:随机放置格子");
|
||||
GUILayout.Label($"按 {testClearKey} 键:清空网格");
|
||||
GUILayout.Label("鼠标左键:在鼠标位置放置格子");
|
||||
GUILayout.EndArea();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: cfe4f41ce15355345b390aa2701f3f46
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,16 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
namespace AibisDream
|
||||
{
|
||||
/// <summary>
|
||||
/// BlockPuzzle游戏系统
|
||||
/// 整合所有子系统的核心控制器
|
||||
/// </summary>
|
||||
public class BlockPuzzleSystem : MonoBehaviour
|
||||
{
|
||||
// 接口引用将在实现类中注入
|
||||
// 这里先定义基础框架接口结构
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c452a931d2651e5449cf3779882cad19
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,337 @@
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
namespace AibisDream
|
||||
{
|
||||
/// <summary>
|
||||
/// 网格可视化组件
|
||||
/// 负责在Unity场景中可视化显示网格和单元格状态
|
||||
/// </summary>
|
||||
public class GridVisualizer : MonoBehaviour
|
||||
{
|
||||
[Header("网格配置")]
|
||||
[SerializeField] private BlockPuzzleGrid gridComponent;
|
||||
[SerializeField] private int gridWidth = 10;
|
||||
[SerializeField] private int gridHeight = 10;
|
||||
[SerializeField] private float cellSize = 1f;
|
||||
|
||||
private IBlockPuzzleGrid _grid;
|
||||
|
||||
[Header("可视化设置")]
|
||||
[SerializeField] private bool showGridLines = true;
|
||||
[SerializeField] private bool showCellSprites = true;
|
||||
[SerializeField] private Color emptyCellColor = new Color(0.9f, 0.9f, 0.9f, 0.3f);
|
||||
[SerializeField] private Color occupiedCellColor = new Color(0.2f, 0.6f, 1f, 1f);
|
||||
[SerializeField] private Color gridLineColor = new Color(0.5f, 0.5f, 0.5f, 0.5f);
|
||||
[SerializeField] private float gridLineWidth = 0.02f;
|
||||
|
||||
[Header("预制体(可选)")]
|
||||
[SerializeField] private Sprite cellSprite;
|
||||
[SerializeField] private Material cellMaterial;
|
||||
|
||||
// 单元格可视化对象池
|
||||
private Dictionary<(int x, int y), GameObject> _cellObjects = new Dictionary<(int x, int y), GameObject>();
|
||||
private GameObject _gridLinesParent;
|
||||
private GameObject _cellsParent;
|
||||
private BlockPuzzleGrid _internalGrid;
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
// 创建父对象用于组织层级
|
||||
_gridLinesParent = new GameObject("GridLines");
|
||||
_gridLinesParent.transform.SetParent(transform);
|
||||
_gridLinesParent.transform.localPosition = Vector3.zero;
|
||||
|
||||
_cellsParent = new GameObject("Cells");
|
||||
_cellsParent.transform.SetParent(transform);
|
||||
_cellsParent.transform.localPosition = Vector3.zero;
|
||||
}
|
||||
|
||||
private void Start()
|
||||
{
|
||||
InitializeGrid();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 初始化网格
|
||||
/// </summary>
|
||||
public void InitializeGrid()
|
||||
{
|
||||
// 优先使用外部网格组件
|
||||
if (gridComponent != null)
|
||||
{
|
||||
// 如果组件还没有初始化,先初始化它
|
||||
if (!gridComponent.IsInitialized())
|
||||
{
|
||||
gridComponent.Initialize();
|
||||
}
|
||||
_grid = gridComponent;
|
||||
}
|
||||
else
|
||||
{
|
||||
// 如果没有外部网格,创建内部网格组件
|
||||
if (_internalGrid == null)
|
||||
{
|
||||
_internalGrid = gameObject.GetComponent<BlockPuzzleGrid>();
|
||||
if (_internalGrid == null)
|
||||
{
|
||||
_internalGrid = gameObject.AddComponent<BlockPuzzleGrid>();
|
||||
}
|
||||
}
|
||||
_internalGrid.Initialize(gridWidth, gridHeight, cellSize, transform.position);
|
||||
_grid = _internalGrid;
|
||||
}
|
||||
|
||||
CreateVisualization();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 设置网格引用
|
||||
/// </summary>
|
||||
public void SetGrid(IBlockPuzzleGrid grid)
|
||||
{
|
||||
_grid = grid;
|
||||
ClearVisualization();
|
||||
CreateVisualization();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 创建可视化
|
||||
/// </summary>
|
||||
private void CreateVisualization()
|
||||
{
|
||||
if (_grid == null) return;
|
||||
|
||||
if (showGridLines)
|
||||
{
|
||||
DrawGridLines();
|
||||
}
|
||||
|
||||
if (showCellSprites)
|
||||
{
|
||||
CreateCellSprites();
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 绘制网格线
|
||||
/// </summary>
|
||||
private void DrawGridLines()
|
||||
{
|
||||
// 清除旧的网格线
|
||||
foreach (Transform child in _gridLinesParent.transform)
|
||||
{
|
||||
if (Application.isPlaying)
|
||||
{
|
||||
Destroy(child.gameObject);
|
||||
}
|
||||
else
|
||||
{
|
||||
DestroyImmediate(child.gameObject);
|
||||
}
|
||||
}
|
||||
|
||||
// 创建网格线(使用LineRenderer或简单的Quad)
|
||||
for (int x = 0; x <= _grid.Width; x++)
|
||||
{
|
||||
CreateLine(
|
||||
_grid.GridToWorld(x, 0),
|
||||
_grid.GridToWorld(x, _grid.Height),
|
||||
gridLineWidth,
|
||||
gridLineColor
|
||||
);
|
||||
}
|
||||
|
||||
for (int y = 0; y <= _grid.Height; y++)
|
||||
{
|
||||
CreateLine(
|
||||
_grid.GridToWorld(0, y),
|
||||
_grid.GridToWorld(_grid.Width, y),
|
||||
gridLineWidth,
|
||||
gridLineColor
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 创建一条线
|
||||
/// </summary>
|
||||
private void CreateLine(Vector3 start, Vector3 end, float width, Color color)
|
||||
{
|
||||
GameObject lineObj = new GameObject("GridLine");
|
||||
lineObj.transform.SetParent(_gridLinesParent.transform);
|
||||
lineObj.transform.localPosition = Vector3.zero;
|
||||
|
||||
LineRenderer lineRenderer = lineObj.AddComponent<LineRenderer>();
|
||||
lineRenderer.useWorldSpace = true;
|
||||
lineRenderer.positionCount = 2;
|
||||
lineRenderer.SetPosition(0, start);
|
||||
lineRenderer.SetPosition(1, end);
|
||||
lineRenderer.startWidth = width;
|
||||
lineRenderer.endWidth = width;
|
||||
lineRenderer.material = new Material(Shader.Find("Sprites/Default"));
|
||||
lineRenderer.startColor = color;
|
||||
lineRenderer.endColor = color;
|
||||
lineRenderer.sortingOrder = 0;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 创建单元格精灵
|
||||
/// </summary>
|
||||
private void CreateCellSprites()
|
||||
{
|
||||
// 清除旧的单元格
|
||||
ClearCellSprites();
|
||||
|
||||
// 为每个单元格创建可视化对象
|
||||
for (int x = 0; x < _grid.Width; x++)
|
||||
{
|
||||
for (int y = 0; y < _grid.Height; y++)
|
||||
{
|
||||
CreateCellSprite(x, y);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 创建单个单元格精灵
|
||||
/// </summary>
|
||||
private void CreateCellSprite(int x, int y)
|
||||
{
|
||||
GameObject cellObj = new GameObject($"Cell_{x}_{y}");
|
||||
cellObj.transform.SetParent(_cellsParent.transform);
|
||||
cellObj.transform.position = _grid.GridToWorld(x, y);
|
||||
|
||||
SpriteRenderer spriteRenderer = cellObj.AddComponent<SpriteRenderer>();
|
||||
|
||||
// 如果没有指定Sprite,创建一个简单的白色Sprite
|
||||
if (cellSprite == null)
|
||||
{
|
||||
cellSprite = CreateDefaultSprite();
|
||||
}
|
||||
|
||||
spriteRenderer.sprite = cellSprite;
|
||||
spriteRenderer.color = emptyCellColor;
|
||||
spriteRenderer.sortingOrder = 1;
|
||||
|
||||
// 设置大小
|
||||
float spriteSize = _grid.CellSize * 0.9f; // 稍微小一点,留出网格线空间
|
||||
cellObj.transform.localScale = new Vector3(spriteSize, spriteSize, 1f);
|
||||
|
||||
// 如果有材质,应用材质
|
||||
if (cellMaterial != null)
|
||||
{
|
||||
spriteRenderer.material = cellMaterial;
|
||||
}
|
||||
|
||||
_cellObjects[(x, y)] = cellObj;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 创建默认的白色Sprite
|
||||
/// </summary>
|
||||
private Sprite CreateDefaultSprite()
|
||||
{
|
||||
Texture2D texture = new Texture2D(1, 1);
|
||||
texture.SetPixel(0, 0, Color.white);
|
||||
texture.Apply();
|
||||
return Sprite.Create(texture, new Rect(0, 0, 1, 1), new Vector2(0.5f, 0.5f), 1f);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 更新单元格可视化状态
|
||||
/// </summary>
|
||||
public void UpdateCellVisual(int x, int y)
|
||||
{
|
||||
if (!_cellObjects.TryGetValue((x, y), out GameObject cellObj))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
SpriteRenderer spriteRenderer = cellObj.GetComponent<SpriteRenderer>();
|
||||
if (spriteRenderer == null) return;
|
||||
|
||||
GridCellState state = _grid.GetCellState(x, y);
|
||||
spriteRenderer.color = state == GridCellState.Occupied ? occupiedCellColor : emptyCellColor;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 更新所有单元格可视化
|
||||
/// </summary>
|
||||
public void UpdateAllCellsVisual()
|
||||
{
|
||||
if (_grid == null) return;
|
||||
|
||||
for (int x = 0; x < _grid.Width; x++)
|
||||
{
|
||||
for (int y = 0; y < _grid.Height; y++)
|
||||
{
|
||||
UpdateCellVisual(x, y);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 清除单元格精灵
|
||||
/// </summary>
|
||||
private void ClearCellSprites()
|
||||
{
|
||||
foreach (var kvp in _cellObjects)
|
||||
{
|
||||
if (Application.isPlaying)
|
||||
{
|
||||
Destroy(kvp.Value);
|
||||
}
|
||||
else
|
||||
{
|
||||
DestroyImmediate(kvp.Value);
|
||||
}
|
||||
}
|
||||
_cellObjects.Clear();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 清除所有可视化
|
||||
/// </summary>
|
||||
private void ClearVisualization()
|
||||
{
|
||||
ClearCellSprites();
|
||||
|
||||
foreach (Transform child in _gridLinesParent.transform)
|
||||
{
|
||||
if (Application.isPlaying)
|
||||
{
|
||||
Destroy(child.gameObject);
|
||||
}
|
||||
else
|
||||
{
|
||||
DestroyImmediate(child.gameObject);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void OnDestroy()
|
||||
{
|
||||
ClearVisualization();
|
||||
}
|
||||
|
||||
// 在编辑器中预览网格
|
||||
private void OnDrawGizmos()
|
||||
{
|
||||
if (_grid == null) return;
|
||||
|
||||
// 绘制网格边界
|
||||
Gizmos.color = gridLineColor;
|
||||
Vector3 bottomLeft = _grid.GridToWorld(0, 0);
|
||||
Vector3 bottomRight = _grid.GridToWorld(_grid.Width, 0);
|
||||
Vector3 topLeft = _grid.GridToWorld(0, _grid.Height);
|
||||
Vector3 topRight = _grid.GridToWorld(_grid.Width, _grid.Height);
|
||||
|
||||
Gizmos.DrawLine(bottomLeft, bottomRight);
|
||||
Gizmos.DrawLine(bottomRight, topRight);
|
||||
Gizmos.DrawLine(topRight, topLeft);
|
||||
Gizmos.DrawLine(topLeft, bottomLeft);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: d364afd8a560b4447b86f55c52c73d7a
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,139 @@
|
||||
using System;
|
||||
|
||||
namespace AibisDream
|
||||
{
|
||||
/// <summary>
|
||||
/// 游戏状态
|
||||
/// </summary>
|
||||
public enum GameState
|
||||
{
|
||||
NotStarted, // 未开始
|
||||
Playing, // 游戏中
|
||||
Paused, // 暂停
|
||||
GameOver // 游戏结束
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 游戏逻辑接口
|
||||
/// 负责管理游戏的整体流程和状态
|
||||
/// </summary>
|
||||
public interface IBlockPuzzleGameLogic
|
||||
{
|
||||
/// <summary>
|
||||
/// 当前游戏状态
|
||||
/// </summary>
|
||||
GameState CurrentState { get; }
|
||||
|
||||
/// <summary>
|
||||
/// 当前分数(已放置的格子数量)
|
||||
/// </summary>
|
||||
int Score { get; }
|
||||
|
||||
/// <summary>
|
||||
/// 当前选中的形状
|
||||
/// </summary>
|
||||
IBlockShape CurrentShape { get; }
|
||||
|
||||
/// <summary>
|
||||
/// 网格系统
|
||||
/// </summary>
|
||||
IBlockPuzzleGrid Grid { get; }
|
||||
|
||||
/// <summary>
|
||||
/// 放置验证器
|
||||
/// </summary>
|
||||
IPlacementValidator Validator { get; }
|
||||
|
||||
/// <summary>
|
||||
/// 游戏开始事件
|
||||
/// </summary>
|
||||
event Action OnGameStart;
|
||||
|
||||
/// <summary>
|
||||
/// 游戏结束事件
|
||||
/// </summary>
|
||||
event Action OnGameOver;
|
||||
|
||||
/// <summary>
|
||||
/// 形状放置成功事件
|
||||
/// </summary>
|
||||
event Action<IBlockShape, int, int> OnShapePlaced;
|
||||
|
||||
/// <summary>
|
||||
/// 形状放置失败事件
|
||||
/// </summary>
|
||||
event Action<IBlockShape, PlacementResult> OnShapePlaceFailed;
|
||||
|
||||
/// <summary>
|
||||
/// 分数变化事件
|
||||
/// </summary>
|
||||
event Action<int> OnScoreChanged;
|
||||
|
||||
/// <summary>
|
||||
/// 初始化游戏
|
||||
/// </summary>
|
||||
/// <param name="gridWidth">网格宽度</param>
|
||||
/// <param name="gridHeight">网格高度</param>
|
||||
void InitializeGame(int gridWidth, int gridHeight);
|
||||
|
||||
/// <summary>
|
||||
/// 开始游戏
|
||||
/// </summary>
|
||||
void StartGame();
|
||||
|
||||
/// <summary>
|
||||
/// 暂停游戏
|
||||
/// </summary>
|
||||
void PauseGame();
|
||||
|
||||
/// <summary>
|
||||
/// 继续游戏
|
||||
/// </summary>
|
||||
void ResumeGame();
|
||||
|
||||
/// <summary>
|
||||
/// 结束游戏
|
||||
/// </summary>
|
||||
void EndGame();
|
||||
|
||||
/// <summary>
|
||||
/// 重置游戏
|
||||
/// </summary>
|
||||
void ResetGame();
|
||||
|
||||
/// <summary>
|
||||
/// 选择形状
|
||||
/// </summary>
|
||||
/// <param name="shape">要选择的形状</param>
|
||||
void SelectShape(IBlockShape shape);
|
||||
|
||||
/// <summary>
|
||||
/// 尝试放置当前选中的形状到指定位置
|
||||
/// </summary>
|
||||
/// <param name="gridX">网格X坐标</param>
|
||||
/// <param name="gridY">网格Y坐标</param>
|
||||
/// <returns>是否放置成功</returns>
|
||||
bool TryPlaceShape(int gridX, int gridY);
|
||||
|
||||
/// <summary>
|
||||
/// 旋转当前选中的形状
|
||||
/// </summary>
|
||||
/// <param name="angle">旋转角度</param>
|
||||
void RotateCurrentShape(RotationAngle angle);
|
||||
|
||||
/// <summary>
|
||||
/// 检查是否还有可放置的形状
|
||||
/// </summary>
|
||||
/// <param name="availableShapes">可用的形状列表</param>
|
||||
/// <returns>是否还有可放置的形状</returns>
|
||||
bool HasPlaceableShapes(IBlockShape[] availableShapes);
|
||||
|
||||
/// <summary>
|
||||
/// 获取下一个可用的形状
|
||||
/// </summary>
|
||||
/// <param name="shapePool">形状池</param>
|
||||
/// <returns>下一个形状,如果没有则返回null</returns>
|
||||
IBlockShape GetNextShape(IBlockShape[] shapePool);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 4603b37a885792d4b85d6d5d392d4862
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,122 @@
|
||||
using UnityEngine;
|
||||
|
||||
namespace AibisDream
|
||||
{
|
||||
/// <summary>
|
||||
/// 网格单元格状态
|
||||
/// </summary>
|
||||
public enum GridCellState
|
||||
{
|
||||
Empty = 0, // 空
|
||||
Occupied = 1 // 已占用
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 游戏网格系统接口(整个网格)
|
||||
/// 负责管理整个游戏网格的状态和操作,包括:
|
||||
/// - 网格的整体尺寸和配置
|
||||
/// - 所有单元格的状态管理
|
||||
/// - 坐标转换(世界坐标 ↔ 网格坐标)
|
||||
/// - 网格级别的操作(清空、统计等)
|
||||
///
|
||||
/// 注意:单个单元格(Cell)通过坐标访问,没有独立接口
|
||||
/// </summary>
|
||||
public interface IBlockPuzzleGrid
|
||||
{
|
||||
/// <summary>
|
||||
/// 网格宽度
|
||||
/// </summary>
|
||||
int Width { get; }
|
||||
|
||||
/// <summary>
|
||||
/// 网格高度
|
||||
/// </summary>
|
||||
int Height { get; }
|
||||
|
||||
/// <summary>
|
||||
/// 网格单元格大小(世界单位)
|
||||
/// </summary>
|
||||
float CellSize { get; }
|
||||
|
||||
/// <summary>
|
||||
/// 网格原点位置(世界坐标)
|
||||
/// </summary>
|
||||
Vector3 Origin { get; }
|
||||
|
||||
/// <summary>
|
||||
/// 初始化网格
|
||||
/// </summary>
|
||||
/// <param name="width">宽度</param>
|
||||
/// <param name="height">高度</param>
|
||||
/// <param name="cellSize">单元格大小</param>
|
||||
/// <param name="origin">原点位置</param>
|
||||
void Initialize(int width, int height, float cellSize, Vector3 origin);
|
||||
|
||||
/// <summary>
|
||||
/// 获取指定位置的单元格状态
|
||||
/// </summary>
|
||||
/// <param name="x">网格X坐标</param>
|
||||
/// <param name="y">网格Y坐标</param>
|
||||
/// <returns>单元格状态</returns>
|
||||
GridCellState GetCellState(int x, int y);
|
||||
|
||||
/// <summary>
|
||||
/// 设置指定位置的单元格状态
|
||||
/// </summary>
|
||||
/// <param name="x">网格X坐标</param>
|
||||
/// <param name="y">网格Y坐标</param>
|
||||
/// <param name="state">单元格状态</param>
|
||||
void SetCellState(int x, int y, GridCellState state);
|
||||
|
||||
/// <summary>
|
||||
/// 检查指定位置是否在网格范围内
|
||||
/// </summary>
|
||||
/// <param name="x">网格X坐标</param>
|
||||
/// <param name="y">网格Y坐标</param>
|
||||
/// <returns>是否在范围内</returns>
|
||||
bool IsValidPosition(int x, int y);
|
||||
|
||||
/// <summary>
|
||||
/// 检查指定位置是否为空
|
||||
/// </summary>
|
||||
/// <param name="x">网格X坐标</param>
|
||||
/// <param name="y">网格Y坐标</param>
|
||||
/// <returns>是否为空</returns>
|
||||
bool IsCellEmpty(int x, int y);
|
||||
|
||||
/// <summary>
|
||||
/// 世界坐标转换为网格坐标
|
||||
/// </summary>
|
||||
/// <param name="worldPos">世界坐标</param>
|
||||
/// <param name="gridX">输出的网格X坐标</param>
|
||||
/// <param name="gridY">输出的网格Y坐标</param>
|
||||
/// <returns>是否转换成功</returns>
|
||||
bool WorldToGrid(Vector3 worldPos, out int gridX, out int gridY);
|
||||
|
||||
/// <summary>
|
||||
/// 网格坐标转换为世界坐标
|
||||
/// </summary>
|
||||
/// <param name="gridX">网格X坐标</param>
|
||||
/// <param name="gridY">网格Y坐标</param>
|
||||
/// <returns>世界坐标</returns>
|
||||
Vector3 GridToWorld(int gridX, int gridY);
|
||||
|
||||
/// <summary>
|
||||
/// 清空整个网格
|
||||
/// </summary>
|
||||
void Clear();
|
||||
|
||||
/// <summary>
|
||||
/// 获取已占用的单元格数量
|
||||
/// </summary>
|
||||
/// <returns>已占用的单元格数量</returns>
|
||||
int GetOccupiedCount();
|
||||
|
||||
/// <summary>
|
||||
/// 获取总单元格数量
|
||||
/// </summary>
|
||||
/// <returns>总单元格数量</returns>
|
||||
int GetTotalCellCount();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 44bbdf523b438ef4aa34868e92b91aed
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,106 @@
|
||||
using UnityEngine;
|
||||
|
||||
namespace AibisDream
|
||||
{
|
||||
/// <summary>
|
||||
/// 形状旋转角度
|
||||
/// </summary>
|
||||
public enum RotationAngle
|
||||
{
|
||||
Rotate0 = 0, // 0度
|
||||
Rotate90 = 90, // 90度
|
||||
Rotate180 = 180, // 180度
|
||||
Rotate270 = 270 // 270度
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 形状块接口
|
||||
/// 负责管理形状的数据和操作
|
||||
/// </summary>
|
||||
public interface IBlockShape
|
||||
{
|
||||
/// <summary>
|
||||
/// 形状的唯一ID
|
||||
/// </summary>
|
||||
int ShapeId { get; }
|
||||
|
||||
/// <summary>
|
||||
/// 形状名称
|
||||
/// </summary>
|
||||
string ShapeName { get; }
|
||||
|
||||
/// <summary>
|
||||
/// 当前旋转角度
|
||||
/// </summary>
|
||||
RotationAngle CurrentRotation { get; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取当前形状的宽度(考虑旋转)
|
||||
/// </summary>
|
||||
int Width { get; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取当前形状的高度(考虑旋转)
|
||||
/// </summary>
|
||||
int Height { get; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取形状占用的格子数量
|
||||
/// </summary>
|
||||
int BlockCount { get; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取原始形状模式(未旋转)
|
||||
/// </summary>
|
||||
/// <returns>二维数组,1表示有格子,0表示空</returns>
|
||||
int[,] GetOriginalPattern();
|
||||
|
||||
/// <summary>
|
||||
/// 获取当前形状模式(考虑旋转)
|
||||
/// </summary>
|
||||
/// <returns>二维数组,1表示有格子,0表示空</returns>
|
||||
int[,] GetCurrentPattern();
|
||||
|
||||
/// <summary>
|
||||
/// 旋转形状
|
||||
/// </summary>
|
||||
/// <param name="angle">旋转角度</param>
|
||||
void Rotate(RotationAngle angle);
|
||||
|
||||
/// <summary>
|
||||
/// 顺时针旋转90度
|
||||
/// </summary>
|
||||
void RotateClockwise();
|
||||
|
||||
/// <summary>
|
||||
/// 逆时针旋转90度
|
||||
/// </summary>
|
||||
void RotateCounterClockwise();
|
||||
|
||||
/// <summary>
|
||||
/// 重置旋转角度为0
|
||||
/// </summary>
|
||||
void ResetRotation();
|
||||
|
||||
/// <summary>
|
||||
/// 检查指定位置是否有格子
|
||||
/// </summary>
|
||||
/// <param name="x">形状内的X坐标(相对坐标)</param>
|
||||
/// <param name="y">形状内的Y坐标(相对坐标)</param>
|
||||
/// <returns>是否有格子</returns>
|
||||
bool HasBlockAt(int x, int y);
|
||||
|
||||
/// <summary>
|
||||
/// 获取形状的所有格子位置(相对坐标)
|
||||
/// </summary>
|
||||
/// <returns>格子位置列表</returns>
|
||||
Vector2Int[] GetBlockPositions();
|
||||
|
||||
/// <summary>
|
||||
/// 创建形状的副本
|
||||
/// </summary>
|
||||
/// <returns>形状副本</returns>
|
||||
IBlockShape Clone();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: b3b17304622be4e46b270e3d475b1300
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,57 @@
|
||||
namespace AibisDream
|
||||
{
|
||||
/// <summary>
|
||||
/// 形状工厂接口
|
||||
/// 负责创建和管理形状对象
|
||||
/// </summary>
|
||||
public interface IBlockShapeFactory
|
||||
{
|
||||
/// <summary>
|
||||
/// 创建指定ID的形状
|
||||
/// </summary>
|
||||
/// <param name="shapeId">形状ID</param>
|
||||
/// <returns>形状对象,如果ID不存在则返回null</returns>
|
||||
IBlockShape CreateShape(int shapeId);
|
||||
|
||||
/// <summary>
|
||||
/// 创建指定名称的形状
|
||||
/// </summary>
|
||||
/// <param name="shapeName">形状名称</param>
|
||||
/// <returns>形状对象,如果名称不存在则返回null</returns>
|
||||
IBlockShape CreateShape(string shapeName);
|
||||
|
||||
/// <summary>
|
||||
/// 创建随机形状
|
||||
/// </summary>
|
||||
/// <returns>随机形状对象</returns>
|
||||
IBlockShape CreateRandomShape();
|
||||
|
||||
/// <summary>
|
||||
/// 获取所有可用的形状ID列表
|
||||
/// </summary>
|
||||
/// <returns>形状ID数组</returns>
|
||||
int[] GetAllShapeIds();
|
||||
|
||||
/// <summary>
|
||||
/// 获取所有可用的形状名称列表
|
||||
/// </summary>
|
||||
/// <returns>形状名称数组</returns>
|
||||
string[] GetAllShapeNames();
|
||||
|
||||
/// <summary>
|
||||
/// 注册新形状
|
||||
/// </summary>
|
||||
/// <param name="shapeId">形状ID</param>
|
||||
/// <param name="shapeName">形状名称</param>
|
||||
/// <param name="pattern">形状模式(二维数组)</param>
|
||||
void RegisterShape(int shapeId, string shapeName, int[,] pattern);
|
||||
|
||||
/// <summary>
|
||||
/// 检查形状ID是否存在
|
||||
/// </summary>
|
||||
/// <param name="shapeId">形状ID</param>
|
||||
/// <returns>是否存在</returns>
|
||||
bool HasShape(int shapeId);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 735c986ae1357ab489f5a5951ffb4bde
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,51 @@
|
||||
namespace AibisDream
|
||||
{
|
||||
/// <summary>
|
||||
/// 放置验证结果
|
||||
/// </summary>
|
||||
public enum PlacementResult
|
||||
{
|
||||
Success, // 可以放置
|
||||
OutOfBounds, // 超出边界
|
||||
Overlap, // 与已有块重叠
|
||||
InvalidPosition // 无效位置
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 放置检测接口
|
||||
/// 负责验证形状是否可以放置在指定位置
|
||||
/// </summary>
|
||||
public interface IPlacementValidator
|
||||
{
|
||||
/// <summary>
|
||||
/// 检查形状是否可以放置在指定位置
|
||||
/// </summary>
|
||||
/// <param name="grid">网格系统</param>
|
||||
/// <param name="shape">要放置的形状</param>
|
||||
/// <param name="gridX">网格X坐标(形状左上角位置)</param>
|
||||
/// <param name="gridY">网格Y坐标(形状左上角位置)</param>
|
||||
/// <returns>放置验证结果</returns>
|
||||
PlacementResult CanPlace(IBlockPuzzleGrid grid, IBlockShape shape, int gridX, int gridY);
|
||||
|
||||
/// <summary>
|
||||
/// 检查形状是否可以放置在指定位置(详细版本)
|
||||
/// </summary>
|
||||
/// <param name="grid">网格系统</param>
|
||||
/// <param name="shape">要放置的形状</param>
|
||||
/// <param name="gridX">网格X坐标(形状左上角位置)</param>
|
||||
/// <param name="gridY">网格Y坐标(形状左上角位置)</param>
|
||||
/// <param name="failureReason">失败原因(如果返回false)</param>
|
||||
/// <returns>是否可以放置</returns>
|
||||
bool CanPlaceDetailed(IBlockPuzzleGrid grid, IBlockShape shape, int gridX, int gridY, out PlacementResult failureReason);
|
||||
|
||||
/// <summary>
|
||||
/// 获取形状在指定位置的所有占用格子坐标
|
||||
/// </summary>
|
||||
/// <param name="shape">形状</param>
|
||||
/// <param name="gridX">网格X坐标(形状左上角位置)</param>
|
||||
/// <param name="gridY">网格Y坐标(形状左上角位置)</param>
|
||||
/// <returns>占用格子的网格坐标数组</returns>
|
||||
(int x, int y)[] GetOccupiedCells(IBlockShape shape, int gridX, int gridY);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e4ebc4e9f404ead41ac713a7a31fe330
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Reference in New Issue
Block a user