// 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; } }
public void stopShoot() { CurrentState = canonState.idle; target_ = null; }
public void shoot(GameObject targetGameObject) { CurrentState = canonState.shoot; target_ = targetGameObject; rotation(); }