Example #1
0
 public void OnTrigger(GateCollider collider, int id)
 {
     if (collider.Equals(frontCollider))
     {
         if (!passedFirst.Contains(id))
         {
             Debug.Log("Passed 1");
             passedFirst.Add(id);
             StartCoroutine(RemoveID(id, 1));
         }
     }
     else           //second collider
     {
         if (passedFirst.Contains(id))
         {
             Debug.Log("Passed 2");
             manager.OnGatePassed(this, id);
             passedFirst.Remove(id);
         }
     }
 }
        public static void Create(BlobBuilder builder, HitObject src, ref BlobPtr <Collider> dest)
        {
            switch (src)
            {
            case TriggerHitCircle triggerHitCircle:
                CircleCollider.Create(builder, triggerHitCircle, ref dest, ColliderType.TriggerCircle);
                break;

            case TriggerHitLineSeg triggerHitLine:
                LineCollider.Create(builder, triggerHitLine, ref dest, ColliderType.TriggerLine);
                break;

            case BumperHit bumperHit:
                CircleCollider.Create(builder, bumperHit, ref dest, ColliderType.Bumper);
                break;

            case HitCircle hitCircle:
                CircleCollider.Create(builder, hitCircle, ref dest);
                break;

            case LineSegSlingshot lineSegSlingshot:
                LineSlingshotCollider.Create(builder, lineSegSlingshot, ref dest);
                break;

            case FlipperHit flipperHit:
                FlipperCollider.Create(builder, flipperHit, ref dest);
                break;

            case GateHit gateHit:
                GateCollider.Create(builder, gateHit, ref dest);
                break;

            case LineSeg lineSeg:
                LineCollider.Create(builder, lineSeg, ref dest);
                break;

            case HitLine3D hitLine3D:
                Line3DCollider.Create(builder, hitLine3D, ref dest);
                break;

            case HitLineZ hitLineZ:
                LineZCollider.Create(builder, hitLineZ, ref dest);
                break;

            case HitPoint hitPoint:
                PointCollider.Create(builder, hitPoint, ref dest);
                break;

            case Hit3DPoly hit3DPoly:
                Poly3DCollider.Create(builder, hit3DPoly, ref dest);
                break;

            case HitPlane hitPlane:
                PlaneCollider.Create(builder, hitPlane, ref dest);
                break;

            case PlungerHit plungerCollider:
                PlungerCollider.Create(builder, plungerCollider, ref dest);
                break;

            case SpinnerHit spinnerHit:
                SpinnerCollider.Create(builder, spinnerHit, ref dest);
                break;

            case HitTriangle hitTriangle:
                TriangleCollider.Create(builder, hitTriangle, ref dest);
                break;

            default:
                Logger.Warn("Unknown collider {0}, skipping.", src.GetType().Name);
                break;
            }
        }
    void Start()
    {
        //	Make sure same number of prefabs as maxNumEnemy
        if (monsterPrefabs.Length != maxNumEnemy.Length) {
            Debug.Log("Error in MonsterGenerator: size of maxNumEnemy must be the same as monsterPrefabs.");
            Application.Quit();
        }

        //	Set current monster counts to 0
        currNumEnemy = new int[maxNumEnemy.Length];
        for (int i = 0; i < currNumEnemy.Length; ++i)
            currNumEnemy [i] = 0;

        allMonsters = new List<GameObject> ();

        gc = gateCollider.GetComponent<GateCollider> ();
    }