topical media & game development

talk show tell print

lib-unity-future-HouseOfTheFuture-Assets-Scripts-MusicBall.js / js



  /* 
  * This file is part of the "House of the Future" showcase project by M2H (http://www.M2H.nl)
  *  The original author of this code Mike Hergaarden.
  *  Feel free to use this code for your own projects, drop me a line if you made something exciting! 
  */
  //Random sound/movement of these balls
  #pragma strict
  
  private var trans : Transform;
  private var rig : Rigidbody;
  private var playerTrans : Transform;
  
  function Awake () {
          trans = transform;
          rig=rigidbody;
          var size : float = Random.Range(0.4,2);
          trans.localScale= new Vector3( size, size, size);
          
          rig.mass = size;
          audio.pitch = Mathf.Clamp(2.5-size, 0, 1.3);
          RandomColor();
          
          playerTrans = Camera.main.transform;
          Disable();
          
  }
  
  private var disabled = false;
  
  function Update(){
          if(disabled){
                  return;                
          }
          if(Vector3.Distance(playerTrans.position, trans.position)>=14 || playerTrans.position.y>=17){
                  Disable();
          }
          
  
          if(rig.velocity.magnitude<=1){
                  var max : float = 6.0;
                  rig.velocity += new Vector3(Random.Range(-max,max), Random.Range(-max,max), Random.Range(-max,max));
          }else if(rig.velocity.magnitude<=3){
                  rig.velocity *= 3;
          }        
  }
  
  function Disable(){
          disabled = true;
          yield WaitForSeconds(1);
          disabled = false;        
  }
  
  function OnCollisionEnter(collision : Collision)  {
          if(disabled){
                  return;
          }
          
          if (collision.relativeVelocity.magnitude >= 0.02 && !audio.isPlaying ){
                  audio.volume=collision.relativeVelocity.magnitude;
                  audio.Play();
                  RandomColor();
          }
  }
  
  function SetRed(){
          renderer.material.color = Color.red;
          yield WaitForSeconds(0.1);
          renderer.material.color = Color.white;
  }
  
  function RandomColor(){
          var i : int = Random.Range(0, 6);
          var color : Color = Color.red;
          if(i==0){
                  color = Color.red;
          }else if(i==0){
                  color = Color.white;
          }else if(i==1){
                  color = Color.magenta;
          }else if(i==2){
                  color = Color.blue;
          }else if(i==3){
                  color = Color.yellow;
          }else if(i==4){
                  color = Color.cyan;
          }else if(i==5){
                  color = Color.green;
          }
          
          renderer.material.color = color;
  }


(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.