// Use this for initialization
    void Start()
    {
        for (int i = 0; i < 4000; i++)
        {
            GameObject newBullet =
                Instantiate(bulletPrefab,
                            new Vector3(Random.Range(-5f, 5f), Random.Range(-6f, 6f), 0f),
                            Quaternion.identity) as GameObject;
            newBullet.transform.DOMove(new Vector3(Random.Range(-5f, 5f), Random.Range(-6f, 6f), 0f), 5f).SetEase(Ease.Linear).SetLoops(-1, LoopType.Yoyo);

            UBulletCollider ubc = newBullet.GetComponentInChildren <UBulletCollider>();
            ubc.SetEnable(true);

            ubc.GetActor().AddDefaultCallback(() => {
                ubc.trans.GetComponentInChildren <SpriteRenderer>().color = Color.white;
            });

            ubc.GetActor().AddCollisionCallback(() => {
                ubc.trans.GetComponentInChildren <SpriteRenderer>().color = Color.red;
            });

            monitor.AddBulletCollider(ubc);
        }
        var mousePos = Input.mousePosition;

        mousePos.z = 10;         // select distance = 10 units from the camera

        //		mouseBullet = Instantiate (bulletPrefab, Camera.main.ScreenToWorldPoint(mousePos), Quaternion.identity) as GameObject;
        //
        //		mouseBullet.transform.localScale = new Vector3 (1f, 1f, 1f);
        //		mouseBullet.GetComponent<UCircleCollider> ().SetRadius (0.15f);
        mouseBullet.GetComponentInChildren <SpriteRenderer> ().color = Color.green;
        mouseBullet.GetComponentInChildren <UTargetCollider> ().SetEnable(true);

        monitor.AddTargetCollider(mouseBullet.GetComponentInChildren <UTargetCollider>());

        // Add monitor to executor for mono-like update and start
        //executor.AddModule (monitor);
    }
Example #2
0
    IEnumerator TestCoroutine()
    {
        int count = 0;

        while (true)
        {
            count++;

            GameObject newBullet = Instantiate(bulletPrefab, shooter.transform.position, Quaternion.identity) as GameObject;

            Vector3 randVec = Random.insideUnitCircle;
            randVec.Scale(new Vector3(8f, 8f, 0f));
            newBullet.transform.DOMove(randVec, 5f);

            UBulletCollider ubc = newBullet.GetComponentInChildren <UBulletCollider>();
            ubc.SetEnable(true);

            ubc.GetActor().AddDefaultCallback(() => {
                ubc.trans.GetComponentInChildren <SpriteRenderer>().color = Color.white;
            });
            ubc.GetActor().AddCollisionCallback(() => {
                ubc.trans.GetComponentInChildren <SpriteRenderer>().color = Color.red;
            });
            ubc.GetActor().AddBoundaryCallback(() => {
                newBullet.transform.DOKill();
                ubc.GetActor().ClearDefaultCallbacks();
                ubc.GetActor().ClearDefaultCallbacks();
                ubc.trans.GetComponentInChildren <SpriteRenderer>().color = Color.blue;
                ubc.GetActor().ClearBoundaryCallbacks();
            });

            monitor.AddBulletCollider(ubc);

            yield return(new WaitForSeconds(0.03f));

            if (count % 100 == 0)
            {
                //Debug.Log ("Bullet: " + count.ToString ());
                txt.text = "Bullet: " + count.ToString();
            }
        }
    }