topical media & game development

talk show tell print

lib-unity-tutorial-gameplay-Assets-Editor-TwoDHelper.js / js



  
  // Make a menu item that move stuff on to the 2D plane
  @MenuItem ("2D/Move Onto 2D Plane ^2")
  static function MoveOnto2DPlane () {
          // Go over all transforms in Unity Editor's selection
          for (var transform in Selection.transforms) {
                  transform.position.z = 0;
          }
  }
  
  // This function is called to determine if the function can be executed.
  @MenuItem ("2D/Move Onto 2D Plane ^2", true)
  static function ValidateMoveOnto2DPlane () {
          // we only return true if we have a transform in the selection.
          return (Selection.activeTransform != null);
  }
  
  @MenuItem ("2D/Make Selection 2D Rigidbody")
  static function MakeSelection2DRigidbody () {
          // Start by moving all game objects onto the playing field plane
          MoveOnto2DPlane ();
          
          // Go over all transforms in selection.
          for (var transform in Selection.transforms) {
                  // Make sure that the transform has a rigidbody.
                  var rigidbody : Rigidbody = transform.GetComponent (Rigidbody);
                  if (!rigidbody)
                          transform.gameObject.AddComponent (Rigidbody);
                  
                  // Make sure that here is also a ConfigurableJoint
                  var configurableJoint : ConfigurableJoint = transform.GetComponent (ConfigurableJoint);        
                  if (!configurableJoint)
                          configurableJoint = transform.gameObject.AddComponent (ConfigurableJoint);
                  
                  // Make the joint force the object to only move in the XY plane and only rotate around Z
                  configurableJoint.xMotion = ConfigurableJointMotion.Free;
                  configurableJoint.yMotion = ConfigurableJointMotion.Free;
                  configurableJoint.zMotion = ConfigurableJointMotion.Locked;
                  configurableJoint.angularXMotion = ConfigurableJointMotion.Locked;
                  configurableJoint.angularYMotion = ConfigurableJointMotion.Locked;
                  configurableJoint.angularZMotion = ConfigurableJointMotion.Free;
          }        
  }
  
  // We can only execute the above menu command if there is a transform in the selection
  @MenuItem ("2D/Make Selection 2D Rigidbody", true)
  static function ValidateMakeSelection2DRigidbody () {
          return (Selection.activeTransform != null);
  }
  


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