예제 #1
0
    // Update is called once per frame
    void Update()
    {
        //turn lightsaber off and on//
        if (wand != null)
        {
            on = wand.IsGripDown();
        }
        endPos = cube;
        //extend the line//
        if (on)
        {
            endPos.localPosition = Vector3.zero;
            //update line positions//
            lineRend.SetPosition(0, startPos.position);
            lineRend.SetPosition(1, endPos.position);

            //pan texture//
            textureOffset -= Time.deltaTime * 2f;
            if (textureOffset < -10f)
            {
                textureOffset += 10f;
            }
            lineRend.sharedMaterials[1].SetTextureOffset("_MainTex", new Vector2(textureOffset, 0f));
        }
        else
        {
            lineRend.SetPosition(0, Vector3.zero);
            lineRend.SetPosition(1, Vector3.zero);
        }
    }
예제 #2
0
 // Update is called once per frame
 void Update()
 {
     on = wand.IsGripDown();
     if (on)
     {
         particlesys.Play();
         ParticleSystem.Particle[] particles = new ParticleSystem.Particle[GetComponent <ParticleSystem>().particleCount];
         particlesys.GetParticles(particles);
         for (int i = 0; i < particles.Length; i++)
         {
             Vector3 dir = target.position - particles[i].position;
             if (dir.sqrMagnitude < 1)
             {
                 particles[i].remainingLifetime = 0;
             }
             dir.Normalize();
             particles[i].velocity += dir * Time.deltaTime * 10f;
         }
         particlesys.SetParticles(particles, particles.Length);
     }
     else
     {
         ParticleSystem.Particle[] particles = new ParticleSystem.Particle[GetComponent <ParticleSystem>().particleCount];
         particlesys.GetParticles(particles);
         for (int i = 0; i < particles.Length; i++)
         {
             particles[i].remainingLifetime = 0;
         }
         particlesys.SetParticles(particles, particles.Length);
         particlesys.Stop();
     }
 }
예제 #3
0
 // Update is called once per frame
 void FixedUpdate()
 {
     if (wand != null)
     {
         on = wand.IsGripDown();
         lightObject.enabled = on;
     }
     if (intensity > 1.3f || intensity < 0.7f)
     {
         inc = !inc;
     }
     if (inc)
     {
         intensity += FlickerSpeed * Time.fixedDeltaTime;
     }
     else
     {
         intensity -= FlickerSpeed * Time.fixedDeltaTime;
     }
     lightObject.intensity = intensity;
 }