topical media & game development

talk show tell print

lib-unity-tutorial-platform-start-Assets-Scripts-Enemies-LaserTrap.js / js



  var height = 3.2;
  var speed = 2.0;
  var timingOffset = 0.0;
  var laserWidth = 12.0;
  var damage = 1;
  var hitEffect : GameObject;
  
  private var originalPosition : Vector3;
  private var hit : RaycastHit;
  private var lastHitTime = 0.0;
  
  function Start ()
  {
          originalPosition = transform.position;
          GetComponent(LineRenderer).SetPosition(1, Vector3.forward * laserWidth);
  }
  
  function Update ()
  {
          var offset = (1 + Mathf.Sin(Time.time * speed + timingOffset)) * height / 2;
          transform.position = originalPosition + Vector3(0, offset, 0);
  
          if (Time.time > lastHitTime + 0.25 && Physics.Raycast(transform.position, transform.forward, hit, laserWidth))
          {
                  if (hit.collider.tag == "Player" || hit.collider.tag == "Enemy")
                  {
                          Instantiate(hitEffect, hit.point, Quaternion.identity);
                          hit.collider.SendMessage("ApplyDamage", damage, SendMessageOptions.DontRequireReceiver);
                          lastHitTime = Time.time;
                  }
          }
  }
  
  @script RequireComponent (LineRenderer)


(C) Æliens 04/09/2009

You may not copy or print any of this material without explicit permission of the author or the publisher. In case of other copyright issues, contact the author.