Selaa lähdekoodia

制作冲击波中。。

SZAND\msx_2 1 vuosi sitten
vanhempi
commit
99ef1c970a

+ 8 - 0
ActionTowerDefense/Assets/Resources/Prefab/Boss/YuMenGuan.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 4fe9a637f48339241b57a8a4e06a5d25
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 1 - 1
ActionTowerDefense/Assets/Resources/Prefab/Boss/Boss_YuMenGuan.prefab → ActionTowerDefense/Assets/Resources/Prefab/Boss/YuMenGuan/Boss_YuMenGuan.prefab

@@ -1528,7 +1528,7 @@ MeshRenderer:
   m_LightmapParameters: {fileID: 0}
   m_SortingLayerID: 341237651
   m_SortingLayer: 3
-  m_SortingOrder: 0
+  m_SortingOrder: -2
   m_AdditionalVertexStreams: {fileID: 0}
 --- !u!95 &3333436509305836838
 Animator:

+ 0 - 0
ActionTowerDefense/Assets/Resources/Prefab/Boss/Boss_YuMenGuan.prefab.meta → ActionTowerDefense/Assets/Resources/Prefab/Boss/YuMenGuan/Boss_YuMenGuan.prefab.meta


+ 181 - 0
ActionTowerDefense/Assets/Resources/Prefab/Boss/YuMenGuan/ShockWave.prefab

@@ -0,0 +1,181 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &6818989632980075014
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 595621105094313979}
+  - component: {fileID: 1511199374513500728}
+  - component: {fileID: 6173982357823989696}
+  - component: {fileID: 4462262184620041724}
+  - component: {fileID: 8222308103590913532}
+  m_Layer: 0
+  m_Name: Square
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!4 &595621105094313979
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6818989632980075014}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 5, z: 1}
+  m_ConstrainProportionsScale: 0
+  m_Children: []
+  m_Father: {fileID: 7563468012801810871}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!212 &1511199374513500728
+SpriteRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6818989632980075014}
+  m_Enabled: 1
+  m_CastShadows: 0
+  m_ReceiveShadows: 0
+  m_DynamicOccludee: 1
+  m_StaticShadowCaster: 0
+  m_MotionVectors: 1
+  m_LightProbeUsage: 1
+  m_ReflectionProbeUsage: 1
+  m_RayTracingMode: 0
+  m_RayTraceProcedural: 0
+  m_RenderingLayerMask: 1
+  m_RendererPriority: 0
+  m_Materials:
+  - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0}
+  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: 311925a002f4447b3a28927169b83ea6, 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 &6173982357823989696
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6818989632980075014}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 9a4a2dbc1e482cd4b9f1532e1fddcb30, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  owner: {fileID: 0}
+  rb: {fileID: 0}
+  trigedObjs: []
+  damage: 0
+  force: 0
+  changeHurt: 0
+  repelValue: 0
+  bulletType: 0
+  isGetTarget: 0
+  speed: 0
+  maxFlyTime: 2
+  flyTime: 0
+  isTrack: 0
+  trackTarget: {fileID: 0}
+  isBack: 0
+  stayTime: 0
+  haveTransmit: 0
+  transmitTime: 0
+  portalsController: {fileID: 0}
+--- !u!65 &4462262184620041724
+BoxCollider:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6818989632980075014}
+  m_Material: {fileID: 0}
+  m_IsTrigger: 1
+  m_Enabled: 1
+  serializedVersion: 2
+  m_Size: {x: 1, y: 1, z: 0.2}
+  m_Center: {x: 0, y: 0, z: 0}
+--- !u!54 &8222308103590913532
+Rigidbody:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6818989632980075014}
+  serializedVersion: 2
+  m_Mass: 1
+  m_Drag: 0
+  m_AngularDrag: 0.05
+  m_UseGravity: 0
+  m_IsKinematic: 0
+  m_Interpolate: 0
+  m_Constraints: 120
+  m_CollisionDetection: 0
+--- !u!1 &8481532737664997307
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 7563468012801810871}
+  m_Layer: 0
+  m_Name: ShockWave
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!4 &7563468012801810871
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8481532737664997307}
+  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: 595621105094313979}
+  m_Father: {fileID: 0}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}

+ 7 - 0
ActionTowerDefense/Assets/Resources/Prefab/Boss/YuMenGuan/ShockWave.prefab.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 5e9b05873d774fa4888dc4c56a1002f0
+PrefabImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 25 - 9
ActionTowerDefense/Assets/Scripts/Boss/Boss.cs

@@ -133,30 +133,46 @@ public class Boss : MoveCharacter
         }
     }
 
-    public override void FixedUpdate()
+    public override void ChangeState(CharacterState newState)
     {
-        if (canMove)
+        switch (state)
         {
-            OnMove();
+            case CharacterState.Run:
+                rb.velocity = Vector3.zero;
+                break;
+            default:
+                break;
         }
-        else
+        state = newState;
+        switch (newState)
         {
-            rb.velocity = new Vector3(0, 0, 0);
+            case CharacterState.Run:
+                ToMove();
+                break;
+            case CharacterState.Die:
+                gameObject.SetActive(false);
+                break;
+            default:
+                break;
         }
     }
 
-    public override void ChangeState(CharacterState newState)
+    public override void OnState()
     {
-        switch (newState)
+        switch (state)
         {
-            case CharacterState.Die:
-                gameObject.SetActive(false);
+            case CharacterState.Run:
+                OnMove();
                 break;
             default:
                 break;
         }
     }
 
+    public virtual void ToMove()
+    {
+    }
+
     public virtual void OnMove()
     {
     }

+ 42 - 6
ActionTowerDefense/Assets/Scripts/Boss/YuMenGuan/YuMenGuan.cs

@@ -20,6 +20,12 @@ public class YuMenGuan : Boss
         B = 0,
     }
 
+    public struct Attack
+    {
+        public AttackMethods attack;
+        public int weight;              //权重
+    }
+
     [System.Serializable]
     public struct AttackType
     {
@@ -30,12 +36,14 @@ public class YuMenGuan : Boss
     [Header("攻击配置")]
     public AttackType[] attackConfigurations;
 
-    private void ToMove()
-    {
-        curTarget = TargetType.Tower;
-        CheckTarget();
-        canMove = true;
-    }
+    [Header("冲击波")]
+    public GameObject wave1;
+    public GameObject wave2;
+    public Transform wave1pos;
+    public Transform wave2pos;
+    private List<GameObject> wavePool = new List<GameObject>();
+    private int hasNum;     //池中已有的数量
+    private List<GameObject> usedWave = new List<GameObject>();
 
     public override void OnMove()
     {
@@ -56,4 +64,32 @@ public class YuMenGuan : Boss
         }
         rb.velocity = dir * moveSpeed;
     }
+
+    public override void ToMove()
+    {
+        base.ToMove(); curTarget = TargetType.Tower;
+        CheckTarget();
+        //canMove = true;
+    }
+
+    public void ShockWave(int id)
+    {
+        switch (id)
+        {
+            case 0:
+                ani.Play("attack_march", 0, 0);
+                if (hasNum == 0)
+                {
+                    GameObject wv1 = Instantiate(wave1, wave1pos.position, new Quaternion(0, 0, 0, 0), transform.parent);
+                    wavePool.Add(wv1);
+                    hasNum++;
+                }
+                break;
+            case 1:
+                break;
+            default:
+                break;
+        }
+    }
+
 }

+ 0 - 5
ActionTowerDefense/Assets/Scripts/Bullet.cs

@@ -127,11 +127,6 @@ public class Bullet : MonoBehaviour
                 return;
             }
         }
-        if (other.CompareTag("Plane"))
-        {
-            isGetTarget = true;
-            gameObject.SetActive(false);
-        }
         if (isGetTarget)
         {
             return;

BIN
ActionTowerDefense/Luban/Config/Datas/怪物表.xlsx