/* * * * * * * * * * * * * * * * * * * Section 7.17.1 A Basic Example * * * * * * * * * * * * * * * * * * */ void UseSelfDestructor() { SelfDestructor bomb = new SelfDestructor("Bob-omb"); // Bob-omb says hello. // after ~5 seconds // Bob-omb says goodbye. }
private void Awake() { _shiftable = GetComponent<Shiftable>(); _rotateSpeed = Random.insideUnitSphere * RotateSpeed; _destructor = GetComponent<SelfDestructor>(); _lifeTimeCooldown = Random.Range(MinLifetime, MaxLifetime); _fadeCooldown = FadeTime; _collectibleTracker = GetComponent<CollectibleTracker>(); }
private IEnumerator SelfDestruct(float time) { yield return(new WaitForSeconds(time)); GameObject explosion = Instantiate(m_timeoutDestroySprite[Random.Range(0, m_timeoutDestroySprite.Length)], transform.position, transform.rotation) as GameObject; SelfDestructor selfDest = explosion.AddComponent <SelfDestructor>(); selfDest.DestructTime = 0.25f; Destroy(gameObject); }
void Dispense() { if (Dispensing) { _dispenseLocation = transform.Find("DispenseLocation").transform.position; SelfDestructor sd = (SelfDestructor)Instantiate(DispenseItem, _dispenseLocation, Quaternion.identity); GameObject g = sd.gameObject; var gLayeredController = sd.GetComponent <LayeredController>(); gLayeredController.Layer = _dispenserLayeredController.Layer; Rigidbody rb = g.GetComponent <Rigidbody>(); rb.AddForce((_dispenseLocation - transform.position) * DispenseSpeed); sd.Lifetime = DispenseItemLifetime; } Invoke("Dispense", DispenseDelay); }
public void Die() { MakeDissolve(); Destroyed = true; ResourceManager.CreateExplosion(transform.position, "effect_explosionship", "ShipExplosion", 2.5f, 5f, true); unitMeshObject.tag = "Exploder"; Destroy(forceField.gameObject); unitMeshObject.transform.parent = null; SelfDestructor selfDestructor = unitMeshObject.AddComponent <SelfDestructor>(); selfDestructor.lifeTimer = 2f; GameManager.instance.exploder.ExplodeObject(unitMeshObject); shipManager.RemoveFromSelection(this); gameObject.SetActive(false); }
void FixedUpdate() { if (m_enginesOn) { m_timePassed += Time.fixedDeltaTime; if (m_timePassed > m_flareSpeed) { m_timePassed = 0f; float offsetter = Random.Range((m_flareSize * 2 - m_scaleFactor), (m_flareSize * 2 + m_scaleFactor)); GameObject flare = (GameObject)Instantiate(m_rocketFlares[Random.Range(0, m_rocketFlares.Length)], transform.position, transform.rotation); flare.transform.position += new Vector3(0f, offsetter / 20, 0f); flare.transform.localScale = new Vector3(Random.Range(m_flareSize, (m_flareSize + m_scaleFactor / 3)), m_flareSize, offsetter); SelfDestructor selfDestructor = flare.AddComponent <SelfDestructor>(); //Selfdestructor thoe!! selfDestructor.DestructTime = m_flareSpeed; } } }