Exemple #1
0
    public void Fire(Vector3 dest, XBulletProperty prop, Transform[] targets, System.Func <XBulletComponent, Transform, bool> callback)
    {
        destPos_     = dest;
        property     = prop;
        hitTargets   = targets;
        hitCallback_ = callback;

        Init();
    }
Exemple #2
0
    private static void FireBullet(GameObject go, Vector3 dest, XBulletProperty property,
                                   System.Func <XBulletComponent, Transform, bool> callback, Transform[] hitTargets)
    {
        XBulletComponent bullet = go.GetComponent <XBulletComponent>();

        if (bullet != null)
        {
            bullet.Fire(dest, property, hitTargets, callback);
        }
        else
        {
            GameObject.Destroy(go);
        }
    }
Exemple #3
0
 public static void GenerateBulletAsync(bool isPvp, string path, Vector3 position, Vector3 dest, XBulletProperty property,
                                        System.Func <XBulletComponent, Transform, bool> callback, Transform[] hitTargets)
 {
     GenerateBulletAsync(isPvp, path, position, dest, property, callback, hitTargets, null);
 }
Exemple #4
0
    public static void GenerateBulletAsync(bool isPvp, string path, Vector3 position, Vector3 dest, XBulletProperty property,
                                           System.Func <XBulletComponent, Transform, bool> callback, Transform[] hitTargets, System.Action <XBulletComponent> loadDone)
    {
        XCoroutine.Run(Instance.GetBullet(path, delegate(XBulletComponent bullet) {
            if (bullet != null)
            {
                bullet.transform.position = position;
                bullet.transform.rotation = Quaternion.identity;
                if (position.x >= dest.x)
                {
                    bullet.transform.localEulerAngles = new Vector3(0, 180, 0);
                }

                if (isPvp)
                {
                    property.time = Mathf.RoundToInt(Vector3.Distance(position, dest) / property.speed * 1000) * 0.001f;
                }

                bullet.Fire(dest, property, hitTargets, callback);
            }

            if (loadDone != null)
            {
                loadDone(bullet);
            }
        }));
    }