SZAND\msx_2 hace 1 año
padre
commit
fa3c1f19d1

+ 15 - 13
ActionTowerDefense/Assets/Scenes/SampleScene.unity

@@ -927,7 +927,7 @@ Transform:
   m_PrefabAsset: {fileID: 0}
   m_GameObject: {fileID: 546706452}
   m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
-  m_LocalPosition: {x: -10.299998, y: -2.2999992, z: -4.84}
+  m_LocalPosition: {x: -9, y: -2.2999992, z: -4.84}
   m_LocalScale: {x: 1, y: 1, z: 1}
   m_ConstrainProportionsScale: 0
   m_Children: []
@@ -16167,7 +16167,7 @@ Transform:
   m_PrefabAsset: {fileID: 0}
   m_GameObject: {fileID: 946427696}
   m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
-  m_LocalPosition: {x: -8.359996, y: -2.2999992, z: -1.59}
+  m_LocalPosition: {x: -7.5, y: -2.2999992, z: -3.27}
   m_LocalScale: {x: 1, y: 1, z: 1}
   m_ConstrainProportionsScale: 0
   m_Children: []
@@ -16878,7 +16878,7 @@ Transform:
   m_PrefabAsset: {fileID: 0}
   m_GameObject: {fileID: 1316598307}
   m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
-  m_LocalPosition: {x: 6.210002, y: -2.2999992, z: 0}
+  m_LocalPosition: {x: 6, y: -2.2999992, z: -1.59}
   m_LocalScale: {x: -1, y: 1, z: 1}
   m_ConstrainProportionsScale: 0
   m_Children: []
@@ -17585,7 +17585,7 @@ Transform:
   m_PrefabAsset: {fileID: 0}
   m_GameObject: {fileID: 1583294796}
   m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
-  m_LocalPosition: {x: -6.329997, y: -2.2999992, z: 0}
+  m_LocalPosition: {x: -6, y: -2.2999992, z: -1.59}
   m_LocalScale: {x: 1, y: 1, z: 1}
   m_ConstrainProportionsScale: 0
   m_Children: []
@@ -17616,7 +17616,7 @@ Transform:
   m_PrefabAsset: {fileID: 0}
   m_GameObject: {fileID: 1614988426}
   m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
-  m_LocalPosition: {x: 10.329997, y: -2.2999992, z: -5.19}
+  m_LocalPosition: {x: 9, y: -2.2999992, z: -5.19}
   m_LocalScale: {x: -1, y: 1, z: 1}
   m_ConstrainProportionsScale: 0
   m_Children: []
@@ -17683,7 +17683,7 @@ Transform:
   m_PrefabAsset: {fileID: 0}
   m_GameObject: {fileID: 1682582306}
   m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
-  m_LocalPosition: {x: 8.349997, y: -2.2999992, z: -1.67}
+  m_LocalPosition: {x: 7.5, y: -2.2999992, z: -3.35}
   m_LocalScale: {x: -1, y: 1, z: 1}
   m_ConstrainProportionsScale: 0
   m_Children: []
@@ -28758,7 +28758,7 @@ Transform:
   m_PrefabAsset: {fileID: 0}
   m_GameObject: {fileID: 3971010482257382174}
   m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
-  m_LocalPosition: {x: 4.35, y: -2.3, z: -1.67}
+  m_LocalPosition: {x: 4.35, y: -2.3, z: -3.35}
   m_LocalScale: {x: -1, y: 1, z: 1}
   m_ConstrainProportionsScale: 0
   m_Children:
@@ -28774,7 +28774,7 @@ Transform:
   m_PrefabAsset: {fileID: 0}
   m_GameObject: {fileID: 1490892333648768192}
   m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
-  m_LocalPosition: {x: -4.36, y: -2.3, z: -1.59}
+  m_LocalPosition: {x: -4.36, y: -2.3, z: -3.27}
   m_LocalScale: {x: 1, y: 1, z: 1}
   m_ConstrainProportionsScale: 0
   m_Children:
@@ -30361,11 +30361,12 @@ MonoBehaviour:
   m_EditorClassIdentifier: 
   doorOrig: {fileID: 6768741358348549837}
   doorSpecial: {fileID: 3360956086587234430}
-  canCount: 1
+  canCount: 0
   col: {fileID: 0}
-  intervalTime: 30
-  maxSpirits: 6
+  intervalTime: 5
+  maxSpirits: 0
   greenLions: {fileID: 1507415183}
+  lions: []
 --- !u!1 &7232179490363835475
 GameObject:
   m_ObjectHideFlags: 0
@@ -30429,6 +30430,7 @@ MonoBehaviour:
   outSpirits: []
   poses: {fileID: 1803098782}
   maxPos: 6
+  index: 0
 --- !u!1 &7724000536078886812
 GameObject:
   m_ObjectHideFlags: 0
@@ -30523,7 +30525,7 @@ Transform:
   m_PrefabAsset: {fileID: 0}
   m_GameObject: {fileID: 6046525366900488227}
   m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
-  m_LocalPosition: {x: -3.3300018, y: -2.3, z: 0}
+  m_LocalPosition: {x: -3.3300018, y: -2.3, z: -1.59}
   m_LocalScale: {x: 1, y: 1, z: 1}
   m_ConstrainProportionsScale: 0
   m_Children:
@@ -30606,7 +30608,7 @@ Transform:
   m_PrefabAsset: {fileID: 0}
   m_GameObject: {fileID: 7232179490363835475}
   m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
-  m_LocalPosition: {x: 3.2100017, y: -2.3, z: 0}
+  m_LocalPosition: {x: 3.2100017, y: -2.3, z: -1.59}
   m_LocalScale: {x: -1, y: 1, z: 1}
   m_ConstrainProportionsScale: 0
   m_Children:

+ 14 - 4
ActionTowerDefense/Assets/Scripts/Spirits/Base_Spirits/BackDoor.cs

@@ -7,7 +7,7 @@ public class BackDoor : MonoBehaviour
     public GameObject doorOrig;
     public GameObject doorSpecial;
     private SpiritOutDoor door;
-    public bool canCount = true;    //没满,还可以存英灵
+    public bool canCount;    //没满,还可以存英灵
 
     public Collider col;
 
@@ -16,10 +16,11 @@ public class BackDoor : MonoBehaviour
 
     public int maxSpirits;          //最多屯几次
     public GameObject greenLions;
-    private GameObject[] lions;
+    public GameObject[] lions;
 
     private void Start()
     {
+        maxSpirits = 6;
         col = doorSpecial.GetComponent<Collider>();
         door = doorSpecial.GetComponent<SpiritOutDoor>();
         lions = new GameObject[maxSpirits];
@@ -36,6 +37,7 @@ public class BackDoor : MonoBehaviour
 
     public void LionDark(int id)
     {
+        print(id);
         lions[id].SetActive(false);
     }
 
@@ -47,13 +49,21 @@ public class BackDoor : MonoBehaviour
             if (pastTime >= intervalTime)
             {
                 pastTime = 0;
-                LionGreen(door.times);
+                for(int i = 0; i < 6; i++)
+                {
+                    if (!SpiritOutDoor.restPoses[i])
+                    {
+                        SpiritOutDoor.restPoses[i] = true;
+                        LionGreen(i);
+                        break;
+                    }
+                }
                 door.times += 1;
                 if (door.times == 1)
                 {
                     col.enabled = true;
                 }
-                if (door.times == maxSpirits)
+                if (door.times == maxSpirits - 1)
                 {
                     canCount = false;
                 }

+ 6 - 0
ActionTowerDefense/Assets/Scripts/Spirits/Base_Spirits/Base_Spirits.cs

@@ -17,6 +17,9 @@ public class Base_Spirits : MonoBehaviour
     private PlayerController pc;
     private Spirits s;
     private int id;
+    public int posId;   //µÚ¼¸¸ö
+
+    public BackDoor bd;
 
     private void Start()
     {
@@ -112,6 +115,9 @@ public class Base_Spirits : MonoBehaviour
                                 break;
                         }
                         SpiritOutDoor.curPos--;
+                        bd.maxSpirits++;
+                        SpiritOutDoor.restPoses[posId] = true;
+                        bd.canCount = true;
                     }
                 }
                 else

+ 26 - 9
ActionTowerDefense/Assets/Scripts/Spirits/Base_Spirits/SpiritOutDoor.cs

@@ -42,6 +42,9 @@ public class SpiritOutDoor : MonoBehaviour
     public int maxPos = 6;
     static public int curPos;
 
+    static public bool[] restPoses = new bool[6] { true, true, true, true, true, true };
+    public int index;
+
     private void RandomSpirit()
     {
         int num = spirits.Count;
@@ -51,16 +54,30 @@ public class SpiritOutDoor : MonoBehaviour
 
     private void OutSpirit(int id)
     {
-        GameObject g = Instantiate(spirits[id].spiritPrefab, poses.transform.GetChild(curPos++).transform.position, new Quaternion(0, 0, 0, 0), null);
-        if (curPos == maxPos)
+        for(int i = 0; i < 6; i++)
         {
-            doorController.canCount = false;
+            if (restPoses[i])
+            {
+                restPoses[i] = false;
+                Vector3 pos = poses.transform.GetChild(i).transform.position;
+                index = i;
+                GameObject g = Instantiate(spirits[id].spiritPrefab, pos, new Quaternion(0, 0, 0, 0), null);
+                curPos += 1;
+                if (curPos == maxPos)
+                {
+                    doorController.canCount = false;
+                }
+                outSpirits.Add(g);
+                Base_Spirits bs = g.GetComponentInChildren<Base_Spirits>();
+                bs.needCorpse = spirits[id].corpse;
+                bs.type = (int)spirits[id].type;
+                bs.ultimateTimes = spirits[id].ultimateTimes;
+                bs.posId = index;
+                doorController.maxSpirits -= 1;
+                bs.bd = doorController;
+                break;
+            }
         }
-        outSpirits.Add(g);
-        Base_Spirits bs = g.GetComponentInChildren<Base_Spirits>();
-        bs.needCorpse = spirits[id].corpse;
-        bs.type = (int)spirits[id].type;
-        bs.ultimateTimes = spirits[id].ultimateTimes;
     }
 
     private void OnTriggerEnter(Collider other)
@@ -70,8 +87,8 @@ public class SpiritOutDoor : MonoBehaviour
             times -= 1;
             if (times >= 0)
             {
-                doorController.LionDark(times);
                 RandomSpirit();
+                doorController.LionDark(5 - index);
                 if (times == doorController.maxSpirits - 1 && curPos < maxPos)
                 {
                     doorController.canCount = true;