示例#1
0
 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());
 }
示例#2
0
    // 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;
        }
    }
示例#3
0
 public override void Init(Transform transform)
 {
     m_initPos = transform.position;
     m_lerper.Reset();
 }
示例#4
0
 // Start is called before the first frame update
 private void OnEnable()
 {
     m_startedGame     = false;
     m_gameTimer.value = 0;
     m_lerper.Reset();
 }