void SpawnMissile() { var settings = Settings.Instance; var speed = settings.projectileSpeedLevels[projectileSpeedLevel - 1]; var accuracy = settings.accuracyLevels[accuracyLevel - 1]; var explosionSize = settings.explosionSizeLevels[explosionSizeLevel - 1]; GameObject missileObject = Instantiate(missile, muzzle.position, this.transform.rotation); MissileBehavior mb = missileObject.GetComponent <MissileBehavior>(); mb.Initialize(speed, accuracy, explosionSize); lastShotTime = Time.time; }
private void OnCollisionEnter(Collision collision) { ContactPoint _contact = collision.contacts[0]; if (_contact.thisCollider.GetType() == typeof(BoxCollider) && _contact.otherCollider.gameObject.tag == "Grabbable" && isGrabbing && !isHolding) { AttachGrabbable(_contact.otherCollider.transform.gameObject); } if (_contact.thisCollider.GetType() == typeof(BoxCollider) && _contact.otherCollider.gameObject.tag == "Missile" && isHolding) { Debug.Log("missileBlock!"); MissileBehavior missile = _contact.otherCollider.transform.gameObject.GetComponent <MissileBehavior>(); missile.Detonate(); currentItem.GetComponent <ThrowableBehavior>().TakeDamage(missile.missileDamage); } }
// ------------------------------------------------------------- private IEnumerator ShootMissile() { if (pepprNbr > 0 && oilllNbr > 0) { pepprNbr--; oilllNbr--; anim.SetTrigger("Shake"); yield return(new WaitForSeconds(1.1f)); MissileBehavior missile = Instantiate(missilePrefab, transform.position + transform.forward * 0.5f, Quaternion.identity); missile.transform.LookAt(transform.position + transform.forward * 2); } else { Debug.LogWarning("PUT NOPE SOUND HERE"); yield return(null); } OnUseObject.Invoke(); }
public void Fire() { //for each enemy targeted, instantiate missiles //Debug.Log("Firing Missiles!"); nextShot = Time.time + timeBetweenShots; var qAngle = Quaternion.AngleAxis(-numShots / 2f * spreadAngle, transform.up) * transform.rotation; var qDelta = Quaternion.AngleAxis(spreadAngle, transform.up); for (var i = 0; i < numShots; i++) { MissileBehavior newMissile = Instantiate(missilePrefab, spawnPosition.position, qAngle); //target = target; for (var f = 0; f < targets.Count; f++) { newMissile.target = targets[f]; } } }