任务:搭建基本的系统
1.编写基督小怪逻辑 (1.继承自爱欲品类(巡逻、发现、追踪、击飞、被击飞、死亡、转身等功能) (2.重写Seek函数,因为爱欲品是一直Seek到玩家位置,而基督需要保留一定距离 ((1.Seek时判断基督小怪与玩家的距离,同时指定一个public变量代表攻击范围。若此距离小于攻击范围,触发攻击事件,否则移动位置靠近player (3.重写OnTouchThePlayer事件,使其与NormalEnemy一致 (4.新增攻击事件 ((1.修改状态为atk ((2.创建一个基督闪电攻击器,作为预制体保存在JiDu中 ((3.初始化攻击器 ((4.等待攻击器触发攻击完毕信号,触发恢复事件(无语句) (5.新增恢复事件 ((1.修改状态为Seek *:效果:依次降下指定数量的雷(触发器判定区),前一个结束后下一个才开始 2.编写攻击器逻辑,可以指定闪电道数、闪电位置间隔、两道闪电之间的间隔时间、每道闪电的持续时间、闪电的判定范围、攻击后硬直 *:整理脚本,添加注释、摘要、分层和属性特性 至此,基督小怪的逻辑开发完毕 至此,所有小怪的逻辑均开发完毕 通过导出测试 下班
This commit is contained in:
parent
7d2c965521
commit
1619bedd77
433
Assets/Prefabs/基督闪电攻击器.prefab
Normal file
433
Assets/Prefabs/基督闪电攻击器.prefab
Normal file
@ -0,0 +1,433 @@
|
|||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!1 &5890479827831270894
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 5890479827831270895}
|
||||||
|
- component: {fileID: 5890479827831270888}
|
||||||
|
- component: {fileID: 5890479827831270889}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: Square (2)
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 0
|
||||||
|
--- !u!4 &5890479827831270895
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 5890479827831270894}
|
||||||
|
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||||
|
m_LocalPosition: {x: 2.37, y: 0, z: 4.1154423}
|
||||||
|
m_LocalScale: {x: 0.4875, y: 1, z: 1}
|
||||||
|
m_Children: []
|
||||||
|
m_Father: {fileID: 5890479828300330399}
|
||||||
|
m_RootOrder: 2
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!212 &5890479827831270888
|
||||||
|
SpriteRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 5890479827831270894}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_CastShadows: 0
|
||||||
|
m_ReceiveShadows: 0
|
||||||
|
m_DynamicOccludee: 1
|
||||||
|
m_MotionVectors: 1
|
||||||
|
m_LightProbeUsage: 1
|
||||||
|
m_ReflectionProbeUsage: 1
|
||||||
|
m_RayTracingMode: 0
|
||||||
|
m_RayTraceProcedural: 0
|
||||||
|
m_RenderingLayerMask: 1
|
||||||
|
m_RendererPriority: 0
|
||||||
|
m_Materials:
|
||||||
|
- {fileID: 2100000, guid: a97c105638bdf8b4a8650670310a4cd3, type: 2}
|
||||||
|
m_StaticBatchInfo:
|
||||||
|
firstSubMesh: 0
|
||||||
|
subMeshCount: 0
|
||||||
|
m_StaticBatchRoot: {fileID: 0}
|
||||||
|
m_ProbeAnchor: {fileID: 0}
|
||||||
|
m_LightProbeVolumeOverride: {fileID: 0}
|
||||||
|
m_ScaleInLightmap: 1
|
||||||
|
m_ReceiveGI: 1
|
||||||
|
m_PreserveUVs: 0
|
||||||
|
m_IgnoreNormalsForChartDetection: 0
|
||||||
|
m_ImportantGI: 0
|
||||||
|
m_StitchLightmapSeams: 1
|
||||||
|
m_SelectedEditorRenderState: 0
|
||||||
|
m_MinimumChartSize: 4
|
||||||
|
m_AutoUVMaxDistance: 0.5
|
||||||
|
m_AutoUVMaxAngle: 89
|
||||||
|
m_LightmapParameters: {fileID: 0}
|
||||||
|
m_SortingLayerID: 0
|
||||||
|
m_SortingLayer: 0
|
||||||
|
m_SortingOrder: 0
|
||||||
|
m_Sprite: {fileID: 7482667652216324306, guid: 48e93eef0688c4a259cb0eddcd8661f7, type: 3}
|
||||||
|
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
m_FlipX: 0
|
||||||
|
m_FlipY: 0
|
||||||
|
m_DrawMode: 0
|
||||||
|
m_Size: {x: 1, y: 1}
|
||||||
|
m_AdaptiveModeThreshold: 0.5
|
||||||
|
m_SpriteTileMode: 0
|
||||||
|
m_WasSpriteAssigned: 1
|
||||||
|
m_MaskInteraction: 0
|
||||||
|
m_SpriteSortPoint: 0
|
||||||
|
--- !u!61 &5890479827831270889
|
||||||
|
BoxCollider2D:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 5890479827831270894}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_Density: 1
|
||||||
|
m_Material: {fileID: 0}
|
||||||
|
m_IsTrigger: 1
|
||||||
|
m_UsedByEffector: 0
|
||||||
|
m_UsedByComposite: 0
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
m_SpriteTilingProperty:
|
||||||
|
border: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
pivot: {x: 0.5, y: 0.5}
|
||||||
|
oldSize: {x: 1, y: 1}
|
||||||
|
newSize: {x: 1, y: 1}
|
||||||
|
adaptiveTilingThreshold: 0.5
|
||||||
|
drawMode: 0
|
||||||
|
adaptiveTiling: 0
|
||||||
|
m_AutoTiling: 0
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Size: {x: 1, y: 1}
|
||||||
|
m_EdgeRadius: 0
|
||||||
|
--- !u!1 &5890479828037865974
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 5890479828037865975}
|
||||||
|
- component: {fileID: 5890479828037865968}
|
||||||
|
- component: {fileID: 5890479828037865969}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: Square
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 0
|
||||||
|
--- !u!4 &5890479828037865975
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 5890479828037865974}
|
||||||
|
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||||
|
m_LocalPosition: {x: 0.97, y: 0, z: 4.1154423}
|
||||||
|
m_LocalScale: {x: 0.4875, y: 1, z: 1}
|
||||||
|
m_Children: []
|
||||||
|
m_Father: {fileID: 5890479828300330399}
|
||||||
|
m_RootOrder: 0
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!212 &5890479828037865968
|
||||||
|
SpriteRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 5890479828037865974}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_CastShadows: 0
|
||||||
|
m_ReceiveShadows: 0
|
||||||
|
m_DynamicOccludee: 1
|
||||||
|
m_MotionVectors: 1
|
||||||
|
m_LightProbeUsage: 1
|
||||||
|
m_ReflectionProbeUsage: 1
|
||||||
|
m_RayTracingMode: 0
|
||||||
|
m_RayTraceProcedural: 0
|
||||||
|
m_RenderingLayerMask: 1
|
||||||
|
m_RendererPriority: 0
|
||||||
|
m_Materials:
|
||||||
|
- {fileID: 2100000, guid: a97c105638bdf8b4a8650670310a4cd3, type: 2}
|
||||||
|
m_StaticBatchInfo:
|
||||||
|
firstSubMesh: 0
|
||||||
|
subMeshCount: 0
|
||||||
|
m_StaticBatchRoot: {fileID: 0}
|
||||||
|
m_ProbeAnchor: {fileID: 0}
|
||||||
|
m_LightProbeVolumeOverride: {fileID: 0}
|
||||||
|
m_ScaleInLightmap: 1
|
||||||
|
m_ReceiveGI: 1
|
||||||
|
m_PreserveUVs: 0
|
||||||
|
m_IgnoreNormalsForChartDetection: 0
|
||||||
|
m_ImportantGI: 0
|
||||||
|
m_StitchLightmapSeams: 1
|
||||||
|
m_SelectedEditorRenderState: 0
|
||||||
|
m_MinimumChartSize: 4
|
||||||
|
m_AutoUVMaxDistance: 0.5
|
||||||
|
m_AutoUVMaxAngle: 89
|
||||||
|
m_LightmapParameters: {fileID: 0}
|
||||||
|
m_SortingLayerID: 0
|
||||||
|
m_SortingLayer: 0
|
||||||
|
m_SortingOrder: 0
|
||||||
|
m_Sprite: {fileID: 7482667652216324306, guid: 48e93eef0688c4a259cb0eddcd8661f7, type: 3}
|
||||||
|
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
m_FlipX: 0
|
||||||
|
m_FlipY: 0
|
||||||
|
m_DrawMode: 0
|
||||||
|
m_Size: {x: 1, y: 1}
|
||||||
|
m_AdaptiveModeThreshold: 0.5
|
||||||
|
m_SpriteTileMode: 0
|
||||||
|
m_WasSpriteAssigned: 1
|
||||||
|
m_MaskInteraction: 0
|
||||||
|
m_SpriteSortPoint: 0
|
||||||
|
--- !u!61 &5890479828037865969
|
||||||
|
BoxCollider2D:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 5890479828037865974}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_Density: 1
|
||||||
|
m_Material: {fileID: 0}
|
||||||
|
m_IsTrigger: 1
|
||||||
|
m_UsedByEffector: 0
|
||||||
|
m_UsedByComposite: 0
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
m_SpriteTilingProperty:
|
||||||
|
border: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
pivot: {x: 0.5, y: 0.5}
|
||||||
|
oldSize: {x: 1, y: 1}
|
||||||
|
newSize: {x: 1, y: 1}
|
||||||
|
adaptiveTilingThreshold: 0.5
|
||||||
|
drawMode: 0
|
||||||
|
adaptiveTiling: 0
|
||||||
|
m_AutoTiling: 0
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Size: {x: 1, y: 1}
|
||||||
|
m_EdgeRadius: 0
|
||||||
|
--- !u!1 &5890479828300330397
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 5890479828300330399}
|
||||||
|
- component: {fileID: 5890479828300330398}
|
||||||
|
- component: {fileID: 5890479828300330392}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: "\u57FA\u7763\u95EA\u7535\u653B\u51FB\u5668"
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &5890479828300330399
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 5890479828300330397}
|
||||||
|
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||||
|
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_Children:
|
||||||
|
- {fileID: 5890479828037865975}
|
||||||
|
- {fileID: 5890479828619809182}
|
||||||
|
- {fileID: 5890479827831270895}
|
||||||
|
m_Father: {fileID: 0}
|
||||||
|
m_RootOrder: 0
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!212 &5890479828300330398
|
||||||
|
SpriteRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 5890479828300330397}
|
||||||
|
m_Enabled: 0
|
||||||
|
m_CastShadows: 0
|
||||||
|
m_ReceiveShadows: 0
|
||||||
|
m_DynamicOccludee: 1
|
||||||
|
m_MotionVectors: 1
|
||||||
|
m_LightProbeUsage: 1
|
||||||
|
m_ReflectionProbeUsage: 1
|
||||||
|
m_RayTracingMode: 0
|
||||||
|
m_RayTraceProcedural: 0
|
||||||
|
m_RenderingLayerMask: 1
|
||||||
|
m_RendererPriority: 0
|
||||||
|
m_Materials:
|
||||||
|
- {fileID: 2100000, guid: a97c105638bdf8b4a8650670310a4cd3, type: 2}
|
||||||
|
m_StaticBatchInfo:
|
||||||
|
firstSubMesh: 0
|
||||||
|
subMeshCount: 0
|
||||||
|
m_StaticBatchRoot: {fileID: 0}
|
||||||
|
m_ProbeAnchor: {fileID: 0}
|
||||||
|
m_LightProbeVolumeOverride: {fileID: 0}
|
||||||
|
m_ScaleInLightmap: 1
|
||||||
|
m_ReceiveGI: 1
|
||||||
|
m_PreserveUVs: 0
|
||||||
|
m_IgnoreNormalsForChartDetection: 0
|
||||||
|
m_ImportantGI: 0
|
||||||
|
m_StitchLightmapSeams: 1
|
||||||
|
m_SelectedEditorRenderState: 0
|
||||||
|
m_MinimumChartSize: 4
|
||||||
|
m_AutoUVMaxDistance: 0.5
|
||||||
|
m_AutoUVMaxAngle: 89
|
||||||
|
m_LightmapParameters: {fileID: 0}
|
||||||
|
m_SortingLayerID: 0
|
||||||
|
m_SortingLayer: 0
|
||||||
|
m_SortingOrder: 0
|
||||||
|
m_Sprite: {fileID: 21300000, guid: 3cb7c35a750699348a04840d1ae1be5e, type: 3}
|
||||||
|
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
m_FlipX: 0
|
||||||
|
m_FlipY: 0
|
||||||
|
m_DrawMode: 0
|
||||||
|
m_Size: {x: 1, y: 1}
|
||||||
|
m_AdaptiveModeThreshold: 0.5
|
||||||
|
m_SpriteTileMode: 0
|
||||||
|
m_WasSpriteAssigned: 1
|
||||||
|
m_MaskInteraction: 0
|
||||||
|
m_SpriteSortPoint: 0
|
||||||
|
--- !u!114 &5890479828300330392
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 5890479828300330397}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 9b9747c571ad1fb47a3246703168172c, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
lightingTime: 0.1
|
||||||
|
lightingIntervalTime: 0.3
|
||||||
|
dir: -1
|
||||||
|
lightings: []
|
||||||
|
owner: {fileID: 0}
|
||||||
|
Stiff: 2
|
||||||
|
--- !u!1 &5890479828619809181
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 5890479828619809182}
|
||||||
|
- component: {fileID: 5890479828619809183}
|
||||||
|
- component: {fileID: 5890479828619809176}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: Square (1)
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 0
|
||||||
|
--- !u!4 &5890479828619809182
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 5890479828619809181}
|
||||||
|
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||||
|
m_LocalPosition: {x: 1.7, y: 0, z: 4.1154423}
|
||||||
|
m_LocalScale: {x: 0.4875, y: 1, z: 1}
|
||||||
|
m_Children: []
|
||||||
|
m_Father: {fileID: 5890479828300330399}
|
||||||
|
m_RootOrder: 1
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!212 &5890479828619809183
|
||||||
|
SpriteRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 5890479828619809181}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_CastShadows: 0
|
||||||
|
m_ReceiveShadows: 0
|
||||||
|
m_DynamicOccludee: 1
|
||||||
|
m_MotionVectors: 1
|
||||||
|
m_LightProbeUsage: 1
|
||||||
|
m_ReflectionProbeUsage: 1
|
||||||
|
m_RayTracingMode: 0
|
||||||
|
m_RayTraceProcedural: 0
|
||||||
|
m_RenderingLayerMask: 1
|
||||||
|
m_RendererPriority: 0
|
||||||
|
m_Materials:
|
||||||
|
- {fileID: 2100000, guid: a97c105638bdf8b4a8650670310a4cd3, type: 2}
|
||||||
|
m_StaticBatchInfo:
|
||||||
|
firstSubMesh: 0
|
||||||
|
subMeshCount: 0
|
||||||
|
m_StaticBatchRoot: {fileID: 0}
|
||||||
|
m_ProbeAnchor: {fileID: 0}
|
||||||
|
m_LightProbeVolumeOverride: {fileID: 0}
|
||||||
|
m_ScaleInLightmap: 1
|
||||||
|
m_ReceiveGI: 1
|
||||||
|
m_PreserveUVs: 0
|
||||||
|
m_IgnoreNormalsForChartDetection: 0
|
||||||
|
m_ImportantGI: 0
|
||||||
|
m_StitchLightmapSeams: 1
|
||||||
|
m_SelectedEditorRenderState: 0
|
||||||
|
m_MinimumChartSize: 4
|
||||||
|
m_AutoUVMaxDistance: 0.5
|
||||||
|
m_AutoUVMaxAngle: 89
|
||||||
|
m_LightmapParameters: {fileID: 0}
|
||||||
|
m_SortingLayerID: 0
|
||||||
|
m_SortingLayer: 0
|
||||||
|
m_SortingOrder: 0
|
||||||
|
m_Sprite: {fileID: 7482667652216324306, guid: 48e93eef0688c4a259cb0eddcd8661f7, type: 3}
|
||||||
|
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
m_FlipX: 0
|
||||||
|
m_FlipY: 0
|
||||||
|
m_DrawMode: 0
|
||||||
|
m_Size: {x: 1, y: 1}
|
||||||
|
m_AdaptiveModeThreshold: 0.5
|
||||||
|
m_SpriteTileMode: 0
|
||||||
|
m_WasSpriteAssigned: 1
|
||||||
|
m_MaskInteraction: 0
|
||||||
|
m_SpriteSortPoint: 0
|
||||||
|
--- !u!61 &5890479828619809176
|
||||||
|
BoxCollider2D:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 5890479828619809181}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_Density: 1
|
||||||
|
m_Material: {fileID: 0}
|
||||||
|
m_IsTrigger: 1
|
||||||
|
m_UsedByEffector: 0
|
||||||
|
m_UsedByComposite: 0
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
m_SpriteTilingProperty:
|
||||||
|
border: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
pivot: {x: 0.5, y: 0.5}
|
||||||
|
oldSize: {x: 1, y: 1}
|
||||||
|
newSize: {x: 1, y: 1}
|
||||||
|
adaptiveTilingThreshold: 0.5
|
||||||
|
drawMode: 0
|
||||||
|
adaptiveTiling: 0
|
||||||
|
m_AutoTiling: 0
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Size: {x: 1, y: 1}
|
||||||
|
m_EdgeRadius: 0
|
7
Assets/Prefabs/基督闪电攻击器.prefab.meta
Normal file
7
Assets/Prefabs/基督闪电攻击器.prefab.meta
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 7ed7629552eb2f146af80d04ebcb7691
|
||||||
|
PrefabImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
@ -940,7 +940,7 @@ GameObject:
|
|||||||
m_Icon: {fileID: 0}
|
m_Icon: {fileID: 0}
|
||||||
m_NavMeshLayer: 0
|
m_NavMeshLayer: 0
|
||||||
m_StaticEditorFlags: 0
|
m_StaticEditorFlags: 0
|
||||||
m_IsActive: 1
|
m_IsActive: 0
|
||||||
--- !u!114 &574826835
|
--- !u!114 &574826835
|
||||||
MonoBehaviour:
|
MonoBehaviour:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@ -1123,7 +1123,7 @@ GameObject:
|
|||||||
m_Icon: {fileID: 0}
|
m_Icon: {fileID: 0}
|
||||||
m_NavMeshLayer: 0
|
m_NavMeshLayer: 0
|
||||||
m_StaticEditorFlags: 0
|
m_StaticEditorFlags: 0
|
||||||
m_IsActive: 1
|
m_IsActive: 0
|
||||||
--- !u!61 &659041641
|
--- !u!61 &659041641
|
||||||
BoxCollider2D:
|
BoxCollider2D:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@ -1442,6 +1442,319 @@ Transform:
|
|||||||
m_Father: {fileID: 326335323}
|
m_Father: {fileID: 326335323}
|
||||||
m_RootOrder: 1
|
m_RootOrder: 1
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!1 &906466579
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 906466583}
|
||||||
|
- component: {fileID: 906466582}
|
||||||
|
- component: {fileID: 906466581}
|
||||||
|
- component: {fileID: 906466580}
|
||||||
|
- component: {fileID: 906466585}
|
||||||
|
- component: {fileID: 906466586}
|
||||||
|
- component: {fileID: 906466584}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: "\u57FA\u7763"
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!61 &906466580
|
||||||
|
BoxCollider2D:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 906466579}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_Density: 1
|
||||||
|
m_Material: {fileID: 0}
|
||||||
|
m_IsTrigger: 1
|
||||||
|
m_UsedByEffector: 0
|
||||||
|
m_UsedByComposite: 0
|
||||||
|
m_Offset: {x: -2.28, y: 0}
|
||||||
|
m_SpriteTilingProperty:
|
||||||
|
border: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
pivot: {x: 0.5, y: 0.5}
|
||||||
|
oldSize: {x: 1.365, y: 1.565}
|
||||||
|
newSize: {x: 1, y: 1}
|
||||||
|
adaptiveTilingThreshold: 0.5
|
||||||
|
drawMode: 0
|
||||||
|
adaptiveTiling: 0
|
||||||
|
m_AutoTiling: 0
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Size: {x: 3.72, y: 1.56}
|
||||||
|
m_EdgeRadius: 0
|
||||||
|
--- !u!61 &906466581
|
||||||
|
BoxCollider2D:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 906466579}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_Density: 1
|
||||||
|
m_Material: {fileID: 0}
|
||||||
|
m_IsTrigger: 0
|
||||||
|
m_UsedByEffector: 0
|
||||||
|
m_UsedByComposite: 0
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
m_SpriteTilingProperty:
|
||||||
|
border: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
pivot: {x: 0.5, y: 0.5}
|
||||||
|
oldSize: {x: 1.365, y: 1.565}
|
||||||
|
newSize: {x: 1, y: 1}
|
||||||
|
adaptiveTilingThreshold: 0.5
|
||||||
|
drawMode: 0
|
||||||
|
adaptiveTiling: 0
|
||||||
|
m_AutoTiling: 0
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Size: {x: 0.85, y: 1.565}
|
||||||
|
m_EdgeRadius: 0
|
||||||
|
--- !u!212 &906466582
|
||||||
|
SpriteRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 906466579}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_CastShadows: 0
|
||||||
|
m_ReceiveShadows: 0
|
||||||
|
m_DynamicOccludee: 1
|
||||||
|
m_MotionVectors: 1
|
||||||
|
m_LightProbeUsage: 1
|
||||||
|
m_ReflectionProbeUsage: 1
|
||||||
|
m_RayTracingMode: 0
|
||||||
|
m_RayTraceProcedural: 0
|
||||||
|
m_RenderingLayerMask: 1
|
||||||
|
m_RendererPriority: 0
|
||||||
|
m_Materials:
|
||||||
|
- {fileID: 2100000, guid: a97c105638bdf8b4a8650670310a4cd3, type: 2}
|
||||||
|
m_StaticBatchInfo:
|
||||||
|
firstSubMesh: 0
|
||||||
|
subMeshCount: 0
|
||||||
|
m_StaticBatchRoot: {fileID: 0}
|
||||||
|
m_ProbeAnchor: {fileID: 0}
|
||||||
|
m_LightProbeVolumeOverride: {fileID: 0}
|
||||||
|
m_ScaleInLightmap: 1
|
||||||
|
m_ReceiveGI: 1
|
||||||
|
m_PreserveUVs: 0
|
||||||
|
m_IgnoreNormalsForChartDetection: 0
|
||||||
|
m_ImportantGI: 0
|
||||||
|
m_StitchLightmapSeams: 1
|
||||||
|
m_SelectedEditorRenderState: 0
|
||||||
|
m_MinimumChartSize: 4
|
||||||
|
m_AutoUVMaxDistance: 0.5
|
||||||
|
m_AutoUVMaxAngle: 89
|
||||||
|
m_LightmapParameters: {fileID: 0}
|
||||||
|
m_SortingLayerID: 0
|
||||||
|
m_SortingLayer: 0
|
||||||
|
m_SortingOrder: 0
|
||||||
|
m_Sprite: {fileID: 21300000, guid: de4ec80e5d0cca6488cb449907a26438, type: 3}
|
||||||
|
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
m_FlipX: 1
|
||||||
|
m_FlipY: 0
|
||||||
|
m_DrawMode: 0
|
||||||
|
m_Size: {x: 1, y: 1}
|
||||||
|
m_AdaptiveModeThreshold: 0.5
|
||||||
|
m_SpriteTileMode: 0
|
||||||
|
m_WasSpriteAssigned: 1
|
||||||
|
m_MaskInteraction: 0
|
||||||
|
m_SpriteSortPoint: 0
|
||||||
|
--- !u!4 &906466583
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 906466579}
|
||||||
|
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||||
|
m_LocalPosition: {x: 8.95, y: 0.66, z: 0}
|
||||||
|
m_LocalScale: {x: -1, y: 1, z: 1}
|
||||||
|
m_Children: []
|
||||||
|
m_Father: {fileID: 0}
|
||||||
|
m_RootOrder: 9
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!114 &906466584
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 906466579}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: ab73d92b04780f04790d5a4ea79f3649, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
HP: 3
|
||||||
|
ATK: 1
|
||||||
|
speed: 1
|
||||||
|
coin: 0
|
||||||
|
canBeHit: 1
|
||||||
|
HPLeft: 0
|
||||||
|
state: 0
|
||||||
|
hitToflyParameter: {x: 3, y: 3}
|
||||||
|
deadRotationRangeMax: 500
|
||||||
|
deadRotationRangeMin: 500
|
||||||
|
inPath: 1
|
||||||
|
catchOffset: {x: 0, y: 0, z: 0}
|
||||||
|
breakFreeCount: 5
|
||||||
|
breakFreeCountLeft: 0
|
||||||
|
atkPositionOffset: 0.5
|
||||||
|
atkRange: 3
|
||||||
|
lightningAttack: {fileID: 5890479828300330397, guid: 7ed7629552eb2f146af80d04ebcb7691, type: 3}
|
||||||
|
--- !u!50 &906466585
|
||||||
|
Rigidbody2D:
|
||||||
|
serializedVersion: 4
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 906466579}
|
||||||
|
m_BodyType: 0
|
||||||
|
m_Simulated: 1
|
||||||
|
m_UseFullKinematicContacts: 0
|
||||||
|
m_UseAutoMass: 0
|
||||||
|
m_Mass: 1
|
||||||
|
m_LinearDrag: 0
|
||||||
|
m_AngularDrag: 0.05
|
||||||
|
m_GravityScale: 1
|
||||||
|
m_Material: {fileID: 0}
|
||||||
|
m_Interpolate: 0
|
||||||
|
m_SleepingMode: 1
|
||||||
|
m_CollisionDetection: 0
|
||||||
|
m_Constraints: 0
|
||||||
|
--- !u!114 &906466586
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 906466579}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: -333801856, guid: aa0b1eebb5db27a419fa4564bbe5c9c5, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
updateType: 0
|
||||||
|
isSpeedBased: 0
|
||||||
|
hasOnStart: 0
|
||||||
|
hasOnPlay: 0
|
||||||
|
hasOnUpdate: 0
|
||||||
|
hasOnStepComplete: 0
|
||||||
|
hasOnComplete: 0
|
||||||
|
hasOnTweenCreated: 0
|
||||||
|
hasOnRewind: 0
|
||||||
|
onStart:
|
||||||
|
m_PersistentCalls:
|
||||||
|
m_Calls: []
|
||||||
|
onPlay:
|
||||||
|
m_PersistentCalls:
|
||||||
|
m_Calls: []
|
||||||
|
onUpdate:
|
||||||
|
m_PersistentCalls:
|
||||||
|
m_Calls: []
|
||||||
|
onStepComplete:
|
||||||
|
m_PersistentCalls:
|
||||||
|
m_Calls: []
|
||||||
|
onComplete:
|
||||||
|
m_PersistentCalls:
|
||||||
|
m_Calls: []
|
||||||
|
onTweenCreated:
|
||||||
|
m_PersistentCalls:
|
||||||
|
m_Calls: []
|
||||||
|
onRewind:
|
||||||
|
m_PersistentCalls:
|
||||||
|
m_Calls: []
|
||||||
|
delay: 0
|
||||||
|
duration: 3
|
||||||
|
easeType: 1
|
||||||
|
easeCurve:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Curve:
|
||||||
|
- serializedVersion: 3
|
||||||
|
time: 0
|
||||||
|
value: 0
|
||||||
|
inSlope: 0
|
||||||
|
outSlope: 0
|
||||||
|
tangentMode: 0
|
||||||
|
weightedMode: 0
|
||||||
|
inWeight: 0
|
||||||
|
outWeight: 0
|
||||||
|
- serializedVersion: 3
|
||||||
|
time: 1
|
||||||
|
value: 1
|
||||||
|
inSlope: 0
|
||||||
|
outSlope: 0
|
||||||
|
tangentMode: 0
|
||||||
|
weightedMode: 0
|
||||||
|
inWeight: 0
|
||||||
|
outWeight: 0
|
||||||
|
m_PreInfinity: 2
|
||||||
|
m_PostInfinity: 2
|
||||||
|
m_RotationOrder: 4
|
||||||
|
loops: -1
|
||||||
|
id:
|
||||||
|
loopType: 0
|
||||||
|
orientType: 1
|
||||||
|
lookAtTransform: {fileID: 0}
|
||||||
|
lookAtPosition: {x: 0, y: 0, z: 0}
|
||||||
|
lookAhead: 0.01
|
||||||
|
autoPlay: 1
|
||||||
|
autoKill: 1
|
||||||
|
relative: 0
|
||||||
|
isLocal: 0
|
||||||
|
isClosedPath: 1
|
||||||
|
pathResolution: 10
|
||||||
|
pathMode: 3
|
||||||
|
lockRotation: 0
|
||||||
|
assignForwardAndUp: 0
|
||||||
|
forwardDirection: {x: 0, y: 0, z: 1}
|
||||||
|
upDirection: {x: 0, y: 1, z: 0}
|
||||||
|
tweenRigidbody: 0
|
||||||
|
wps:
|
||||||
|
- {x: 13.053112, y: 0.6342431, z: 0}
|
||||||
|
fullWps: []
|
||||||
|
path:
|
||||||
|
wpLengths:
|
||||||
|
- 0
|
||||||
|
- 4.1031933
|
||||||
|
- 4.1031933
|
||||||
|
wps:
|
||||||
|
- {x: 8.95, y: 0.66, z: 0}
|
||||||
|
- {x: 13.053112, y: 0.6342431, z: 0}
|
||||||
|
- {x: 8.95, y: 0.66, z: 0}
|
||||||
|
type: 0
|
||||||
|
subdivisionsXSegment: 10
|
||||||
|
subdivisions: 30
|
||||||
|
controlPoints: []
|
||||||
|
length: 8.206387
|
||||||
|
isFinalized: 1
|
||||||
|
timesTable:
|
||||||
|
- 0
|
||||||
|
- 0.5
|
||||||
|
- 1
|
||||||
|
lengthsTable: []
|
||||||
|
inspectorMode: 0
|
||||||
|
pathType: 0
|
||||||
|
handlesType: 0
|
||||||
|
livePreview: 1
|
||||||
|
handlesDrawMode: 0
|
||||||
|
perspectiveHandleSize: 0.5
|
||||||
|
showIndexes: 1
|
||||||
|
showWpLength: 0
|
||||||
|
pathColor: {r: 1, g: 1, b: 1, a: 0.5}
|
||||||
|
lastSrcPosition: {x: 8.95, y: 0.66, z: 0}
|
||||||
|
lastSrcRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||||
|
wpsDropdown: 0
|
||||||
|
dropToFloorOffset: 0
|
||||||
--- !u!1 &971340854
|
--- !u!1 &971340854
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
|
@ -74,11 +74,10 @@ public class AiYuPin : NormalEnemy
|
|||||||
/// 控制爱欲品追踪传入的Transform,每帧调用一次
|
/// 控制爱欲品追踪传入的Transform,每帧调用一次
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="target">要追踪的目标的transform组件</param>
|
/// <param name="target">要追踪的目标的transform组件</param>
|
||||||
protected void Seek(Transform target){
|
protected virtual void Seek(Transform target){
|
||||||
//!!!注意,需要修改。此时会给予爱欲品向上的速度,但Seek只需要左右的速度
|
|
||||||
Vector3 moveDir = (target.transform.position - transform.position).normalized;
|
Vector3 moveDir = (target.transform.position - transform.position).normalized;
|
||||||
//给刚体添加位移
|
//给刚体添加位移
|
||||||
m_rigidbody.position += (Vector2)moveDir * speed * Time.deltaTime;
|
m_rigidbody.position += (Vector2)moveDir * speed * Time.deltaTime * Vector2.right;
|
||||||
//将面部朝向与速度同步
|
//将面部朝向与速度同步
|
||||||
transform.rotation = Quaternion.
|
transform.rotation = Quaternion.
|
||||||
Euler
|
Euler
|
||||||
|
127
Assets/Scripts/JiDu.cs
Normal file
127
Assets/Scripts/JiDu.cs
Normal file
@ -0,0 +1,127 @@
|
|||||||
|
using System.Collections;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using UnityEngine;
|
||||||
|
using Sirenix.OdinInspector;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 基督小怪类,继承自爱欲品
|
||||||
|
/// </summary>
|
||||||
|
public class JiDu : AiYuPin
|
||||||
|
{
|
||||||
|
// _____ _ _ _
|
||||||
|
// | __ \ | | | (_)
|
||||||
|
// | |__) | _| |__ | |_ ___
|
||||||
|
// | ___/ | | | '_ \| | |/ __|
|
||||||
|
// | | | |_| | |_) | | | (__
|
||||||
|
// |_| \__,_|_.__/|_|_|\___|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 攻击相对于自身的位置偏移量
|
||||||
|
/// </summary>
|
||||||
|
[FoldoutGroup("基督")][Header("攻击相对于自身的位置偏移量")]
|
||||||
|
public float atkPositionOffset;
|
||||||
|
/// <summary>
|
||||||
|
/// 攻击范围
|
||||||
|
/// </summary>
|
||||||
|
[FoldoutGroup("基督")][Header("攻击范围")]
|
||||||
|
public float atkRange;
|
||||||
|
/// <summary>
|
||||||
|
/// 攻击时实例化的攻击器
|
||||||
|
/// </summary>
|
||||||
|
[FoldoutGroup("基督")][Header("闪电攻击器")]
|
||||||
|
public GameObject lightningAttack;
|
||||||
|
|
||||||
|
// _____ _ _
|
||||||
|
// | __ \ (_) | |
|
||||||
|
// | |__) | __ ___ ____ _| |_ ___
|
||||||
|
// | ___/ '__| \ \ / / _` | __/ _ \
|
||||||
|
// | | | | | |\ V / (_| | || __/
|
||||||
|
// |_| |_| |_| \_/ \__,_|\__\___|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 自身到玩家的位置
|
||||||
|
/// </summary>
|
||||||
|
[SerializeField][ReadOnly][FoldoutGroup("状态")][Header("自身到玩家的位置")]
|
||||||
|
private float distanceToPlayer;
|
||||||
|
|
||||||
|
// _____ _ _ ____ _
|
||||||
|
// / ____| | | | _ \ | |
|
||||||
|
// | | __ _| | | |_) | __ _ ___| | __
|
||||||
|
// | | / _` | | | _ < / _` |/ __| |/ /
|
||||||
|
// | |___| (_| | | | |_) | (_| | (__| <
|
||||||
|
// \_____\__,_|_|_|____/ \__,_|\___|_|\_\
|
||||||
|
|
||||||
|
void Update(){
|
||||||
|
//如果处于追踪状态,则每帧执行Seek
|
||||||
|
if(state == State.seek) Seek(target);
|
||||||
|
}
|
||||||
|
|
||||||
|
// _ _ _
|
||||||
|
// | \ | | | |
|
||||||
|
// | \| | ___ _ __ _ __ ___ __ _| |
|
||||||
|
// | . ` |/ _ \| '__| '_ ` _ \ / _` | |
|
||||||
|
// | |\ | (_) | | | | | | | | (_| | |
|
||||||
|
// |_| \_|\___/|_| |_| |_| |_|\__,_|_|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 如果处于Seek状态,则每帧执行一次
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="target">追踪目标</param>
|
||||||
|
protected override void Seek(Transform target){
|
||||||
|
//计算自己与玩家的距离
|
||||||
|
distanceToPlayer = Mathf.Abs(target.position.x - transform.position.x);
|
||||||
|
//如果距离小于攻击范围,则发动攻击
|
||||||
|
if(distanceToPlayer < atkRange)Atk();
|
||||||
|
//否则执行爱欲品的Seek,移动追向目标
|
||||||
|
else base.Seek(target);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 攻击的时候触发
|
||||||
|
/// </summary>
|
||||||
|
private void Atk(){
|
||||||
|
//修改自身状态至攻击
|
||||||
|
state = State.atk;
|
||||||
|
//判定一下自身和玩家的位置,确定攻击方向
|
||||||
|
int atkDir = ((target.position.x - transform.position.x > 0) ? 1:-1);
|
||||||
|
//生成一个攻击器预制体,并根据攻击方向给予X轴偏移
|
||||||
|
LightningAttackAdministrator l = Instantiate(
|
||||||
|
lightningAttack,
|
||||||
|
new Vector3(
|
||||||
|
transform.position.x + atkPositionOffset * atkDir,
|
||||||
|
transform.position.y,
|
||||||
|
transform.position.z
|
||||||
|
),
|
||||||
|
Quaternion.identity
|
||||||
|
).GetComponent<LightningAttackAdministrator>();
|
||||||
|
//初始化一下攻击器,给予攻击器主人和方向😍
|
||||||
|
l.owner = this;
|
||||||
|
l.dir = atkDir;
|
||||||
|
}
|
||||||
|
|
||||||
|
// ______ _
|
||||||
|
// | ____| | |
|
||||||
|
// | |____ _____ _ __ | |_
|
||||||
|
// | __\ \ / / _ \ '_ \| __|
|
||||||
|
// | |___\ V / __/ | | | |_
|
||||||
|
// |______\_/ \___|_| |_|\__|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 碰到玩家的时候触发。对于基督小怪来说,玩家碰到它会收到伤害,与继承到的爱欲品不同,但与爱欲品继承的相同,所以返回到父类的父类执行
|
||||||
|
/// 我超,不能,base.base,老老实实抄一遍代码吧
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="player">玩家</param>
|
||||||
|
protected override void OnTouchThePlayer(MyPlayer player){
|
||||||
|
//告诉玩家,你被攻击了
|
||||||
|
player.OnBeHit(ATK,
|
||||||
|
((transform.position.x -
|
||||||
|
player.transform.position.x)
|
||||||
|
> 0) ? 1 : -1);//通过自身位置和玩家位置的比较来返回玩家本次的受击方向
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 当攻击器攻击结束,Call这个,把状态恢复至Seek
|
||||||
|
/// </summary>
|
||||||
|
public void OnAtkEnd(){state = State.seek;}
|
||||||
|
|
||||||
|
}
|
11
Assets/Scripts/JiDu.cs.meta
Normal file
11
Assets/Scripts/JiDu.cs.meta
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: ab73d92b04780f04790d5a4ea79f3649
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
155
Assets/Scripts/LightningAttackAdministrator.cs
Normal file
155
Assets/Scripts/LightningAttackAdministrator.cs
Normal file
@ -0,0 +1,155 @@
|
|||||||
|
using System.Collections;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using UnityEngine;
|
||||||
|
using Sirenix.OdinInspector;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 管理基督小怪召出来的闪电攻击
|
||||||
|
/// </summary>
|
||||||
|
public class LightningAttackAdministrator : MonoBehaviour
|
||||||
|
{
|
||||||
|
// _____ _ _ _
|
||||||
|
// | __ \ | | | (_)
|
||||||
|
// | |__) | _| |__ | |_ ___
|
||||||
|
// | ___/ | | | '_ \| | |/ __|
|
||||||
|
// | | | |_| | |_) | | | (__
|
||||||
|
// |_| \__,_|_.__/|_|_|\___|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 单道闪电的持续时间
|
||||||
|
/// </summary>
|
||||||
|
[Header("单道闪电的持续时间")]
|
||||||
|
public float lightingTime;
|
||||||
|
/// <summary>
|
||||||
|
/// 两道闪电之间间隔的时间
|
||||||
|
/// </summary>
|
||||||
|
[Header("两道闪电之间间隔的时间")]
|
||||||
|
public float lightingIntervalTime;
|
||||||
|
/// <summary>
|
||||||
|
/// 攻击方向,产生这个闪电的怪物攻击时指定
|
||||||
|
/// </summary>
|
||||||
|
[Header("攻击方向,产生这个闪电的怪物攻击时指定")][ReadOnly]
|
||||||
|
public int dir;
|
||||||
|
/// <summary>
|
||||||
|
/// 这个攻击器的主人。请在发动攻击的时候指定。用来通知主人,本次攻击结束
|
||||||
|
/// </summary>
|
||||||
|
public JiDu owner;
|
||||||
|
/// <summary>
|
||||||
|
/// 基督小怪攻击硬直
|
||||||
|
/// </summary>
|
||||||
|
public float Stiff;
|
||||||
|
|
||||||
|
// _____ _ _
|
||||||
|
// | __ \ (_) | |
|
||||||
|
// | |__) | __ ___ ____ _| |_ ___
|
||||||
|
// | ___/ '__| \ \ / / _` | __/ _ \
|
||||||
|
// | | | | | |\ V / (_| | || __/
|
||||||
|
// |_| |_| |_| \_/ \__,_|\__\___|
|
||||||
|
[SerializeField][ListDrawerSettings][ReadOnly]
|
||||||
|
private List<Lighting> lightings;
|
||||||
|
|
||||||
|
// _____ _ _ ____ _
|
||||||
|
// / ____| | | | _ \ | |
|
||||||
|
// | | __ _| | | |_) | __ _ ___| | __
|
||||||
|
// | | / _` | | | _ < / _` |/ __| |/ /
|
||||||
|
// | |___| (_| | | | |_) | (_| | (__| <
|
||||||
|
// \_____\__,_|_|_|____/ \__,_|\___|_|\_\
|
||||||
|
void Start(){
|
||||||
|
Init();
|
||||||
|
StartCoroutine("ATK");
|
||||||
|
}
|
||||||
|
|
||||||
|
// _ _ _
|
||||||
|
// | \ | | | |
|
||||||
|
// | \| | ___ _ __ _ __ ___ __ _| |
|
||||||
|
// | . ` |/ _ \| '__| '_ ` _ \ / _` | |
|
||||||
|
// | |\ | (_) | | | | | | | | (_| | |
|
||||||
|
// |_| \_|\___/|_| |_| |_| |_|\__,_|_|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 初始化函数
|
||||||
|
/// </summary>
|
||||||
|
private void Init(){
|
||||||
|
//处理一下攻击器朝向问题
|
||||||
|
if(dir == -1) transform.localScale = new Vector3(
|
||||||
|
transform.localScale.x * -1,
|
||||||
|
transform.localScale.y,
|
||||||
|
transform.localScale.z
|
||||||
|
);
|
||||||
|
//初始化闪电列表,用来控制每一个小闪电
|
||||||
|
lightings = new List<Lighting>(transform.childCount);
|
||||||
|
for (int i = 0; i < transform.childCount; i++){
|
||||||
|
Transform temp = transform.GetChild(i);
|
||||||
|
lightings.Add(
|
||||||
|
temp.gameObject.AddComponent<Lighting>()
|
||||||
|
);
|
||||||
|
//初始化小闪电的主人和状态
|
||||||
|
lightings[i].state = Lighting.State.wait;
|
||||||
|
lightings[i].owner = this;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 攻击函数协程
|
||||||
|
/// </summary>
|
||||||
|
private IEnumerator ATK(){
|
||||||
|
//按顺序遍历每一个小闪电
|
||||||
|
foreach(Lighting l in lightings){
|
||||||
|
//如果处于等待状态
|
||||||
|
if(l.state == Lighting.State.wait){
|
||||||
|
//如果不是第一个闪电,则需要等待每个闪电的间隔的时间
|
||||||
|
if(l != lightings[0])yield return new WaitForSeconds(lightingIntervalTime);
|
||||||
|
//等待结束后令闪电攻击
|
||||||
|
l.gameObject.SetActive(true);
|
||||||
|
l.state = Lighting.State.atk;
|
||||||
|
//然后攻击持续每个小闪电的持续时间
|
||||||
|
yield return new WaitForSeconds(lightingTime);
|
||||||
|
//等待结束后关闭这个小闪电
|
||||||
|
l.gameObject.SetActive(false);
|
||||||
|
l.state = Lighting.State.over;
|
||||||
|
//循环至下一个小闪电
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//遍历结束后进入攻击硬直等待
|
||||||
|
yield return new WaitForSeconds(Stiff);
|
||||||
|
//等待结束后通知主人攻击结束,并销毁攻击器
|
||||||
|
owner.OnAtkEnd();
|
||||||
|
Destroy(gameObject);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// _______ _ _____ _
|
||||||
|
// |__ __| | |/ ____| |
|
||||||
|
// | | ___ ___ | | | | | __ _ ___ ___
|
||||||
|
// | |/ _ \ / _ \| | | | |/ _` / __/ __|
|
||||||
|
// | | (_) | (_) | | |____| | (_| \__ \__ \
|
||||||
|
// |_|\___/ \___/|_|\_____|_|\__,_|___/___/
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 单道小闪电类,主要控制一下碰撞体
|
||||||
|
/// </summary>
|
||||||
|
private class Lighting : MonoBehaviour
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 闪电的状态种类
|
||||||
|
/// </summary>
|
||||||
|
public enum State{wait,atk,over};
|
||||||
|
/// <summary>
|
||||||
|
/// 闪电的当前状态
|
||||||
|
/// </summary>
|
||||||
|
public State state;
|
||||||
|
/// <summary>
|
||||||
|
/// 这道闪电的主人,一个攻击器
|
||||||
|
/// </summary>
|
||||||
|
public LightningAttackAdministrator owner;
|
||||||
|
|
||||||
|
void OnTriggerEnter2D(Collider2D other){
|
||||||
|
if (other.TryGetComponent<MyPlayer>(out MyPlayer player)){
|
||||||
|
player.OnBeHit(owner.owner.ATK,
|
||||||
|
((owner.transform.position.x - player.transform.position.x > 0) ? 1 : -1)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
11
Assets/Scripts/LightningAttackAdministrator.cs.meta
Normal file
11
Assets/Scripts/LightningAttackAdministrator.cs.meta
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 9b9747c571ad1fb47a3246703168172c
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
@ -46,7 +46,7 @@ TextureImporter:
|
|||||||
spriteMeshType: 1
|
spriteMeshType: 1
|
||||||
alignment: 0
|
alignment: 0
|
||||||
spritePivot: {x: 0.5, y: 0.5}
|
spritePivot: {x: 0.5, y: 0.5}
|
||||||
spritePixelsToUnits: 100
|
spritePixelsToUnits: 200
|
||||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||||
spriteGenerateFallbackPhysicsShape: 1
|
spriteGenerateFallbackPhysicsShape: 1
|
||||||
alphaUsage: 1
|
alphaUsage: 1
|
||||||
@ -75,6 +75,42 @@ TextureImporter:
|
|||||||
overridden: 0
|
overridden: 0
|
||||||
androidETC2FallbackOverride: 0
|
androidETC2FallbackOverride: 0
|
||||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: Standalone
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: iPhone
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: Android
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
spriteSheet:
|
spriteSheet:
|
||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
sprites: []
|
sprites: []
|
||||||
|
Loading…
x
Reference in New Issue
Block a user