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()); }
public override bool UpdateAnim(Transform transform) { //Get new target from target and offset Vector3 offset = m_target.value.transform.forward * m_forwardOffset + m_target.value.transform.right * m_rightOffset + m_target.value.transform.up * m_upOffset; Vector3 target = m_target.value.transform.position + offset; //Lock axis so it doesn't move along it but checks still work if (m_lockX) { target.x = transform.position.x; } if (m_lockY) { target.y = transform.position.y; } if (m_lockZ) { target.z = transform.position.z; } //Only check along these axes Vector3 check = transform.position; if (m_checkX) { check.x = target.x; } if (m_checkY) { check.y = target.y; } if (m_checkZ) { check.z = target.z; } //Move and check for target pos if (Vector3.Distance(transform.position, check) > 0.1f) { transform.position = m_lerper.Lerp(m_initPos, target, m_moveTime); if (m_stareAtTarget) { transform.LookAt(new Vector3(m_target.value.transform.position.x, transform.position.y, m_target.value.transform.position.z)); } return(false); } return(true); }
// 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; } }