public virtual void OnActivate() { shot = GameObj.GetComponent <ShotBehavior>(); GameObj.EventParentChanged += GameObj_EventParentChanged; if (GameObj.Parent != null) { controller = GameObj.Parent.GetComponent <PlayerController>(); } }
// Update is called once per frame void Update() { Object[] objs = GameObject.FindObjectsOfType(typeof(ShotBehavior)); for (int i = 0; i < objs.Length; i++) { ShotBehavior laser = objs[i] as ShotBehavior; if (Vector3.Distance(gameObject.transform.position, laser.transform.position) > .9f) { continue; } GameObject laserObj = laser.gameObject; GameObject.Destroy(laser); Rigidbody rig = laserObj.AddComponent <Rigidbody>(); rig.useGravity = true; } }
// Update is called once per frame void Update() { if (cooldown != 0) { cooldown--; } if (Input.GetMouseButton(0) && cooldown == 0 && ammobar.value > 0) { if (chargePercent >= windupReq) { cooldown = heat; ammo -= ammocost; ammobar.value -= ammocost; for (int i = 0; i < bulletNumber; i++) { Vector3 inaccurate = Random.insideUnitSphere * inaccuracy; Quaternion inacc = Quaternion.Euler(inaccurate); GameObject bullet = Instantiate(shot, transform.position, transform.rotation * inacc) as GameObject; bullet.GetComponent <Rigidbody>().AddForce((transform.forward + inaccurate) * fireForce); bullet.GetComponent <Transform>().localScale *= size; ShotBehavior bulletProps = bullet.GetComponent <ShotBehavior>(); bulletProps.lifeTime = lifetime; bulletProps.damage = damage; bulletProps.piercing = piercing; if (!audio.isPlaying) { audio.Play(); } } } else { chargePercent++; } } else if (chargePercent > 0) { chargePercent--; } }
public virtual bool Shoot(Transform t) { bool hasShot = false; if (!_onCooldown) { SetRandomShootingTime(); RecoilCalculation(t); GameObject shot = Instantiate(shotPrefab, nozzle.position, nozzle.rotation); Destroy(shot, weaponInfo.shotLifeSpan); _onCooldown = true; ShotBehavior sb = shot.GetComponent <ShotBehavior>(); sb.movementSpeed = weaponInfo.projectileSpeed; sb.collisionDistance = weaponInfo.collisionDistance; sb.damage = weaponInfo.damage; hasShot = true; } return(hasShot); }
public void OnActivate() { targeter = GameObj.GetComponent <Targeter>(); shot = GameObj.GetComponent <ShotBehavior>(); }