private IEnumerator Dissolve() { //Dissolve object then move it back to it's initial position m_dissolving = true; m_timeLerper.Reset(); while (m_dissolveAmmount != 1) { m_dissolveAmmount = m_timeLerper.Lerp(0, 1, 0.5f); foreach (Material mat in m_materials) { mat.SetFloat("_Amount", m_dissolveAmmount); } yield return(null); } transform.position = m_initialPos; transform.rotation = m_initialRot; GetComponent <Rigidbody>().velocity = Vector3.zero; StartCoroutine(Resolve()); }
// Update is called once per frame void Update() { if (!m_canSpawn) { return; } if (m_devilInScene) { return; } //Wait for specified seconds before starting random spawn again if (m_wait) { m_waitTimer -= Time.deltaTime; if (m_waitTimer <= 0) { m_wait = false; } return; } //Every second, check if random number is less than spawnChance m_timer -= Time.deltaTime; m_spawnChance = m_lerper.Lerp(0, 1000, m_maxTime); if (m_timer <= 0) { float spawn = Random.Range(0, 1000); if (spawn < m_spawnChance) { //Spawn the devil m_lerper.Reset(); SpawnDevil(); } m_timer = 1; } }
public override void Init(Transform transform) { m_initPos = transform.position; m_lerper.Reset(); }
// Start is called before the first frame update private void OnEnable() { m_startedGame = false; m_gameTimer.value = 0; m_lerper.Reset(); }