Beispiel #1
0
    // Update is called once per frame
    void Update()
    {
        switch (CurrentState)
        {
        case canonState.idle:
            break;

        case canonState.shoot:
            if (Time.time > nextTimeFire)
            {
                if (target_ != null)
                {
                    GameObject go = Instantiate(CanonFireBall, firePoint.position, firePoint.rotation);
                    go.GetComponent <Rigidbody>().velocity = go.transform.forward * speed;
                    go.transform.GetChild(0).GetComponent <Rigidbody>().velocity = go.transform.forward * speed;
                    go.GetComponent <bullet>().changedam(GetComponent <towerInf>().damage);
                    go.GetComponent <bullet>().sender = gameObject;
                    go.GetComponent <canonFireBall>().pos(transform.position, target_.transform.position);
                    nextTimeFire = Time.time + gameObject.GetComponent <towerInf>().fireRate;
                }
                else
                {
                    CurrentState = canonState.idle;
                }
            }
            break;
        }
    }
Beispiel #2
0
 public void stopShoot()
 {
     CurrentState = canonState.idle;
     target_      = null;
 }
Beispiel #3
0
 public void shoot(GameObject targetGameObject)
 {
     CurrentState = canonState.shoot;
     target_      = targetGameObject;
     rotation();
 }