- Home /
 
               Question by 
               BZS · Jan 19, 2014 at 03:37 PM · 
                javascriptinstantiategrid  
              
 
              Instantiate prefab on a grid pattern?
I have this code that works but how would I spawn the prefab only on a grid pattern? Here is the code:
 var Block:GameObject;
  
 function Update () 
     {
     if (Input.GetButtonDown ("Fire1")) 
         {
         var mousePos = Input.mousePosition;
         mousePos.z = 12.48309;
  
         var objectPos = Camera.main.ScreenToWorldPoint(mousePos);
         Instantiate(Block, objectPos, Quaternion.identity);
         }
     }
Any advice? Thanks in advanced.
               Comment
              
 
               
               
               Best Answer 
              
 
              Answer by nesis · Jan 19, 2014 at 03:55 PM
If you're wanting to lock the object to a grid, then you'd take objectPos after it's been set and the use Mathf.Round(), Mathf.Floor(), or Mathf.Ceil() on objectPos.x, objectPos.y, and objectPos.z... assuming you're wanting a grid of one metre squares, of course!
For a grid with squares of any size:
 var Block:GameObject;
 var squareSize : float = 1.0f;
 function Update ()
 {
     if (Input.GetButtonDown ("Fire1")) 
     {
         var mousePos : Vector3 = Input.mousePosition;
         mousePos.z = 12.48309; //I'm not sure why you're setting this to such a specific value?
         var objectPos : Vector3 = Camera.main.ScreenToWorldPoint(mousePos);
         //now you've gotten objectPos' initial value, 
         //lock it to a nearby grid point
         objectPos.x = Mathf.Round(objectPos.x/squareSize) * squareSize;
         objectPos.y = Mathf.Round(objectPos.y/squareSize) * squareSize;
         objectPos.z = Mathf.Round(objectPos.z/squareSize) * squareSize;
         
         Instantiate(Block, objectPos, Quaternion.identity);
     }
 }
Your answer
 
 
             Follow this Question
Related Questions
Can someone help me fix my Javascript for Flickering Light? 6 Answers
Setting Scroll View Width GUILayout 1 Answer
Instantiate at wrong position 1 Answer
OnTriggerEnter2D Rapid Fire 0 Answers
 koobas.hobune.stream
koobas.hobune.stream 
                       
                
                       
			     
			 
                