help with mouse scrolling

What im trying to do is when im dragging an object if i roll the scrollwheel up i want the object to go farther away and when i roll the scroll wheel down i want the object to come closer while im still dragging it. Here is my script:

function OnMouseDown () { 
   var screenPos = Camera.main.WorldToScreenPoint(transform.position); 
   var offset = transform.position - Camera.main.ScreenToWorldPoint(Vector3(Input.mousePosition.x, Input.mousePosition.y, screenPos.z));

while (Input.GetMouseButton(0)) 
   { 
      var curScreenPos = Vector3(Input.mousePosition.x, Input.mousePosition.y, screenPos.z); 
      var curPos = Camera.main.ScreenToWorldPoint(curScreenPos) + offset; 
      transform.position = curPos; 
      yield; 

      if(Input.GetAxis("Scrollwheel"))
      {

     WHAT DO I PUT HERE
              transform.position= ????

      }

   } 
}

Can you tell me the code to put inside of that if statement to be able to read the mouse wheel up and down movements?

1 Answer

1

To get the input from the scrollwheel use Input.GetAxis ("Mouse ScrollWheel").

This is a default axis and is defined in the Input Manager.

If you want to zoom in or out you could change camera.fieldOfView:

var zoomfactor : float = 10.0;
camera.fieldOfView += Input.GetAxis ("Mouse ScrollWheel") * zoomfactor;

(You should tweak the zoomfactor to get the best results.)


Edit:

var scrollfactor : float = 10.0;
transform.position.z += Input.GetAxis ("Mouse ScrollWheel") * scrollfactor;

(And of course tweak the scrollfactor to get the best results)

edited my answer

I don't know how your game's designed, so this might not be an issue, but what if your player isn't looking along the global z-axis? Then changing the transform's z-axis won't move the object away from, or closer to the player.