Bläddra i källkod

厨师失去所有肉串后向敌方阵营移动

SZAND\msx_2 1 år sedan
förälder
incheckning
742093812d

+ 207 - 12
ActionTowerDefense/Assets/Resources/Prefab/Spirits_Cook.prefab

@@ -1,5 +1,112 @@
 %YAML 1.1
 %TAG !u! tag:unity3d.com,2011:
+--- !u!1 &521512167738909524
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 1104288316767999960}
+  - component: {fileID: 8325992048587392257}
+  - component: {fileID: 3188552688043224385}
+  - component: {fileID: 262752280175630838}
+  - component: {fileID: 3402650366513594425}
+  m_Layer: 8
+  m_Name: HP
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &1104288316767999960
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 521512167738909524}
+  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 0.5, y: 0.5, z: 0.5}
+  m_ConstrainProportionsScale: 0
+  m_Children:
+  - {fileID: 7032149864581384072}
+  m_Father: {fileID: 3103190932458336017}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0.5, y: 0.5}
+  m_AnchorMax: {x: 0.5, y: 0.5}
+  m_AnchoredPosition: {x: 0, y: 450}
+  m_SizeDelta: {x: 150, y: 30}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &8325992048587392257
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 521512167738909524}
+  m_CullTransparentMesh: 1
+--- !u!114 &3188552688043224385
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 521512167738909524}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 0.3301887, g: 0, b: 0, a: 1}
+  m_RaycastTarget: 1
+  m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_Sprite: {fileID: 21300000, guid: 97bdb0b0817469147954ce720ea6f795, type: 3}
+  m_Type: 0
+  m_PreserveAspect: 0
+  m_FillCenter: 1
+  m_FillMethod: 4
+  m_FillAmount: 1
+  m_FillClockwise: 1
+  m_FillOrigin: 0
+  m_UseSpriteMesh: 0
+  m_PixelsPerUnitMultiplier: 1
+--- !u!114 &262752280175630838
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 521512167738909524}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: e19747de3f5aca642ab2be37e372fb86, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_EffectColor: {r: 0, g: 0, b: 0, a: 1}
+  m_EffectDistance: {x: 3, y: -3}
+  m_UseGraphicAlpha: 1
+--- !u!114 &3402650366513594425
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 521512167738909524}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: c5cfe48b68a3fd64f95e7a1c19316726, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  imgHp: {fileID: 3739203877081235694}
 --- !u!1 &650183981426157255
 GameObject:
   m_ObjectHideFlags: 0
@@ -116,7 +223,7 @@ GameObject:
   m_Icon: {fileID: 0}
   m_NavMeshLayer: 0
   m_StaticEditorFlags: 0
-  m_IsActive: 1
+  m_IsActive: 0
 --- !u!4 &6069085609270885073
 Transform:
   m_ObjectHideFlags: 0
@@ -143,8 +250,8 @@ BoxCollider:
   m_IsTrigger: 1
   m_Enabled: 1
   serializedVersion: 2
-  m_Size: {x: 0, y: 0, z: 1}
-  m_Center: {x: 0, y: 0, z: 0}
+  m_Size: {x: 2.132753, y: 2.3543785, z: 1}
+  m_Center: {x: 0.024625063, y: 1.1450654, z: 0}
 --- !u!114 &3377671071202039733
 MonoBehaviour:
   m_ObjectHideFlags: 0
@@ -218,10 +325,17 @@ MonoBehaviour:
   m_EditorClassIdentifier: 
   text: {fileID: 979388067414062712}
   chuan: 10
+  isEnemy: 0
+  isGood: 1
+  colliders:
+  - {fileID: 4480734502875862885}
+  - {fileID: 1322232727721152541}
+  - {fileID: 2460330936527559963}
   value: 50
   effect: {fileID: 417478504669294145, guid: 07c7a53ff610e0b45898f0f09276d995, type: 3}
   activeAniTime: 3.3
   larger: 1.2
+  canMove: 1
 --- !u!1 &3483054690158852324
 GameObject:
   m_ObjectHideFlags: 0
@@ -401,8 +515,8 @@ BoxCollider:
   m_IsTrigger: 1
   m_Enabled: 1
   serializedVersion: 2
-  m_Size: {x: 0, y: 0, z: 1}
-  m_Center: {x: 0, y: 0, z: 0}
+  m_Size: {x: 4.4262385, y: 4.7369604, z: 1}
+  m_Center: {x: 0.039123774, y: 0.081486225, z: 0}
 --- !u!114 &4259433079752244006
 MonoBehaviour:
   m_ObjectHideFlags: 0
@@ -426,7 +540,7 @@ GameObject:
   m_Component:
   - component: {fileID: 5669356131851076493}
   - component: {fileID: 925594141286007562}
-  m_Layer: 12
+  m_Layer: 7
   m_Name: BodyCollider
   m_TagString: Untagged
   m_Icon: {fileID: 0}
@@ -459,8 +573,8 @@ BoxCollider:
   m_IsTrigger: 0
   m_Enabled: 1
   serializedVersion: 2
-  m_Size: {x: 0, y: 0, z: 1}
-  m_Center: {x: 0, y: 0, z: 0}
+  m_Size: {x: 2.1781316, y: 2.2643359, z: 1}
+  m_Center: {x: 0.014367342, y: 1.1206616, z: 0}
 --- !u!1 &4579126894259554924
 GameObject:
   m_ObjectHideFlags: 0
@@ -680,7 +794,7 @@ MonoBehaviour:
   rb: {fileID: 5440846222648032765}
   bodyTrans: {fileID: 6459001683917408033}
   beSearchTrigger: {fileID: 4259433079752244006}
-  uiHp: {fileID: 0}
+  uiHp: {fileID: 3402650366513594425}
   state: 0
   attackTime: 0
   totalAttack1Time: 0
@@ -711,10 +825,11 @@ MonoBehaviour:
   rope: {fileID: 0}
   hasHpUp: 0
   beLarger: 0
+  canMove: 0
   foot: {fileID: 5440846222604650418}
   extraRiseGravity: 0
   extraFallGravity: 0
-  moveSpeed: 0
+  moveSpeed: 3
   beRepelValue: 0
   totalBeRepelValue: 0
   weakTime: 0
@@ -731,6 +846,7 @@ MonoBehaviour:
   maxRotateSpeed: 0
   minRotateSpeed: 0
   floatTime: 0
+  floatState: 0
   outlineMats:
   - {fileID: 2100000, guid: 30969c92738eb7d4da3885e08f1ec2f0, type: 2}
   - {fileID: 2100000, guid: 98fc94309ab120b4c83b2cebb9226222, type: 2}
@@ -740,6 +856,8 @@ MonoBehaviour:
   searchState: 0
   attackDistance: 0
   canFly: 0
+  flyHeight: 0
+  flyUpSpeed: 10
   sortingOrder: 0
   playerID: 0
   hasEffect: 0
@@ -791,7 +909,7 @@ RectTransform:
   m_Children:
   - {fileID: 5649507295576249902}
   m_Father: {fileID: 3103190932458336017}
-  m_RootOrder: 0
+  m_RootOrder: 1
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0.5, y: 0.5}
   m_AnchorMax: {x: 0.5, y: 0.5}
@@ -896,6 +1014,82 @@ BoxCollider:
   serializedVersion: 2
   m_Size: {x: 0, y: 0, z: 0}
   m_Center: {x: 0, y: 0, z: 0}
+--- !u!1 &6824693000491653481
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 7032149864581384072}
+  - component: {fileID: 5910879074260295435}
+  - component: {fileID: 3739203877081235694}
+  m_Layer: 8
+  m_Name: Progress
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &7032149864581384072
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6824693000491653481}
+  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: 1104288316767999960}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0.5, y: 0.5}
+  m_AnchorMax: {x: 0.5, y: 0.5}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 150, y: 30}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &5910879074260295435
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6824693000491653481}
+  m_CullTransparentMesh: 1
+--- !u!114 &3739203877081235694
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6824693000491653481}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 0, b: 0, a: 1}
+  m_RaycastTarget: 1
+  m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_Sprite: {fileID: 21300000, guid: 97bdb0b0817469147954ce720ea6f795, type: 3}
+  m_Type: 3
+  m_PreserveAspect: 0
+  m_FillCenter: 1
+  m_FillMethod: 0
+  m_FillAmount: 1
+  m_FillClockwise: 1
+  m_FillOrigin: 0
+  m_UseSpriteMesh: 0
+  m_PixelsPerUnitMultiplier: 1
 --- !u!1 &7208291223413765209
 GameObject:
   m_ObjectHideFlags: 0
@@ -1107,7 +1301,7 @@ GameObject:
   m_Icon: {fileID: 0}
   m_NavMeshLayer: 0
   m_StaticEditorFlags: 0
-  m_IsActive: 0
+  m_IsActive: 1
 --- !u!224 &3103190932458336017
 RectTransform:
   m_ObjectHideFlags: 0
@@ -1120,6 +1314,7 @@ RectTransform:
   m_LocalScale: {x: 0.01, y: 0.01, z: 1}
   m_ConstrainProportionsScale: 0
   m_Children:
+  - {fileID: 1104288316767999960}
   - {fileID: 1544714013328383648}
   m_Father: {fileID: 5440846222648032754}
   m_RootOrder: 3

+ 4 - 1
ActionTowerDefense/Assets/Resources/Prefab/Spirits_Invisible.prefab

@@ -130,7 +130,7 @@ GameObject:
   - component: {fileID: 2437299196472462353}
   - component: {fileID: 2437299196472462355}
   - component: {fileID: 8394241662262430318}
-  m_Layer: 7
+  m_Layer: 12
   m_Name: Spirits_Invisible
   m_TagString: Demonic
   m_Icon: {fileID: 0}
@@ -262,12 +262,15 @@ MonoBehaviour:
   maxRotateSpeed: 20
   minRotateSpeed: 5
   floatTime: 20
+  floatState: 0
   outlineMats: []
   id: 0
   costMp: 1
   searchState: 0
   attackDistance: 1.5
   canFly: 0
+  flyHeight: 0
+  flyUpSpeed: 10
   sortingOrder: 1000
   playerID: 0
   hasEffect: 0

+ 41 - 38
ActionTowerDefense/Assets/Scripts/Demonic.cs

@@ -125,55 +125,58 @@ public class Demonic : MoveCharacter
     public override Vector3 GetMoveDir()
     {
         Vector3 moveDir = Vector3.zero;
-        switch (searchState)
+        if (canMove)
         {
-            case SearchState.NoTarget:
-                //if (PlayerController.instance.bodyTrans.localScale.x > 0)
-                //{
-                //    moveDir = Vector3.left;
-                //}
-                //else
-                //{
-                //    moveDir = Vector3.right;
-                //}
-                moveDir = Vector3.left;
-                break;
-            case SearchState.InSearchScope:
-                if (targetCharacter)
-                {
-                    if (targetCharacter.transform.position.x - transform.position.x < 0)
+            switch (searchState)
+            {
+                case SearchState.NoTarget:
+                    //if (PlayerController.instance.bodyTrans.localScale.x > 0)
+                    //{
+                    //    moveDir = Vector3.left;
+                    //}
+                    //else
+                    //{
+                    //    moveDir = Vector3.right;
+                    //}
+                    moveDir = Vector3.left;
+                    break;
+                case SearchState.InSearchScope:
+                    if (targetCharacter)
                     {
-                        moveDir = Vector3.left;
+                        if (targetCharacter.transform.position.x - transform.position.x < 0)
+                        {
+                            moveDir = Vector3.left;
+                        }
+                        else
+                        {
+                            moveDir = Vector3.right;
+                        }
                     }
                     else
                     {
-                        moveDir = Vector3.right;
+                        moveDir = Vector3.zero;
                     }
-                }
-                else
-                {
-                    moveDir = Vector3.zero;
-                }
-                break;
-            case SearchState.InAttackScope:
-                if (targetCharacter)
-                {
-                    if (targetCharacter.transform.position.x - transform.position.x < 0)
+                    break;
+                case SearchState.InAttackScope:
+                    if (targetCharacter)
                     {
-                        moveDir = Vector3.left;
+                        if (targetCharacter.transform.position.x - transform.position.x < 0)
+                        {
+                            moveDir = Vector3.left;
+                        }
+                        else
+                        {
+                            moveDir = Vector3.right;
+                        }
                     }
                     else
                     {
-                        moveDir = Vector3.right;
+                        moveDir = Vector3.zero;
                     }
-                }
-                else
-                {
-                    moveDir = Vector3.zero;
-                }
-                break;
-            default:
-                break;
+                    break;
+                default:
+                    break;
+            }
         }
         return moveDir;
     }

+ 1 - 0
ActionTowerDefense/Assets/Scripts/MoveCharacter.cs

@@ -4,6 +4,7 @@ using UnityEngine;
 
 public class MoveCharacter : Character
 {
+    public bool canMove = true;
     public Foot foot;
 
     public float extraRiseGravity = 0; //ÉÏÉýʱ¶îÍâÖØÁ¦¼ÓËÙ¶È

+ 71 - 4
ActionTowerDefense/Assets/Scripts/Spirits/Spirits_Cook.cs

@@ -13,14 +13,20 @@ public class Spirits_Cook : MonoBehaviour
     private Animator ani;           //厨子动画
     private Collider col;           //厨子的碰撞体
     public int chuan;               //厨子拥有多少串
+    public bool isEnemy;            //厨子是否是敌方
+    public bool isGood;             //厨子是否是好厨子
+    public GameObject[] colliders;  //一些要开要关的collider
 
     public float value;             //加血程度百分比
     public GameObject effect;       //加血效果
 
     private Demonic dem;            //厨子的demonic脚本
+    private Enemy ene;              //厨子的enemy脚本
 
     private bool once = false;      //死一次
     private bool goAway = false;    //厨子命尽
+    private bool toCatch = false;   //没串了去抓人
+    private bool isRunning = false; //开跑
 
     private float activeTime;       //厨子已出现的时长
     public float activeAniTime;     //厨子出现动画的时长
@@ -31,16 +37,35 @@ public class Spirits_Cook : MonoBehaviour
 
     public float larger;            //顾客变大的程度
 
-    private void OnEnable()
+    public bool canMove = false;    //厨师可移动
+
+    public enum cookState
+    {
+        sell = 0,
+        run = 1,
+        cook = 2,
+    }
+
+    private cookState state;
+
+    private void Start()
     {
         cook = transform.parent;
-        dem = cook.GetComponent<Demonic>();
+        if (isEnemy)
+        {
+            ene = cook.GetComponent<Enemy>();
+        }
+        else
+        {
+            dem = cook.GetComponent<Demonic>();
+        }
         ani = dem.ani;
         col = GetComponent<Collider>();
         col.enabled = false;
         dia = text.transform.parent.gameObject;
         dia.SetActive(false);
         customers = new GameObject[chuan];
+        state = 0;
     }
 
     private void OnTriggerEnter(Collider other)
@@ -60,9 +85,10 @@ public class Spirits_Cook : MonoBehaviour
                     customers[count] = ga;
                     count += 1;
                     Instantiate(effect, ga.transform.position, new Quaternion(0, 0, 0, 0), ga.transform);
-                    if (chuan <= 0)
+                    if (chuan == 0)
                     {
-                        goAway = true;
+                        toCatch = true;
+                        ChangeState(cookState.run);
                     }
                 }
             }
@@ -84,6 +110,47 @@ public class Spirits_Cook : MonoBehaviour
         }
     }
 
+    private void ChangeState(cookState cs)
+    {
+        switch (cs)
+        {
+            case cookState.cook:
+                break;
+            case cookState.run:
+                canMove = true;
+                col.enabled = false;
+                dia.SetActive(false);
+                foreach(GameObject g in colliders)
+                {
+                    g.SetActive(true);
+                }
+                if (isEnemy)
+                {
+                    ene.canMove = true;
+                }
+                else
+                {
+                    dem.canMove = true;
+                }
+                break;
+            case cookState.sell:
+                canMove = false;
+                foreach (GameObject g in colliders)
+                {
+                    g.SetActive(false);
+                }
+                if (isEnemy)
+                {
+                    ene.canMove = false;
+                }
+                else
+                {
+                    dem.canMove = false;
+                }
+                break;
+        }
+    }
+
     private void Update()
     {
         if (!isAct)