Example #1
0
    protected IEnumerator TrackHit(SingleLaserHit hit, ArcReactor_Launcher launcher)
    {
        while (hit.hitLastFrame || hit.hitThisFrame)
        {
            yield return(new WaitForEndOfFrame());

            hit.hitLastFrame = hit.hitThisFrame;
            hit.hitThisFrame = false;
        }
        DoHitEnd(hit, launcher);
    }
Example #2
0
    public void DoHitStart(ArcReactorHitInfo hit)
    {
        //Update the hit position of the particle effect
        SingleLaserHit newHit = new SingleLaserHit();

        newHit.particles = GameObject.Instantiate <ParticleSystem> (hitParticles);
        newHit.particles.transform.position = hit.raycastHit.point;
        newHit.particles.transform.LookAt(hit.raycastHit.point + hit.raycastHit.normal);
        newHit.hitThisFrame = true;
        allLaserHits.Add(hit.launcher, newHit);
        StartCoroutine(TrackHit(newHit, hit.launcher));
    }
Example #3
0
 public void DoHitEnd(SingleLaserHit hit, ArcReactor_Launcher launcher)
 {
     hit.particles.enableEmission = false;
     hit.particles.gameObject.SetActive(false);
     allLaserHits.Remove(launcher);
 }
Example #4
0
 private void DoHitContinue(SingleLaserHit existingHit, ArcReactorHitInfo hit)
 {
     existingHit.particles.transform.position = hit.raycastHit.point;
     existingHit.particles.transform.LookAt(hit.raycastHit.point + hit.raycastHit.normal);
     existingHit.hitThisFrame = true;
 }