- Home /
Snapping object to .25 grid
I have this little tile drawing object for my little side project:
public class DragTile : MonoBehaviour {
//declaring some variables
private bool mousedwn;
void OnMouseDown() {
if (!GameData.freemove){
mousedwn = true;
}
}
void OnMouseUp() {
mousedwn = false;
}
// Update is called once per frame
void Update () {
if ((mousedwn) && (Input.GetMouseButton(0))){
if (Input.GetButton("Control")){
this.transform.Translate(Input.GetAxis("Mouse X"),0,Input.GetAxis("Mouse Y"),Space.World);
} else {
this.transform.Translate(Input.GetAxis("Mouse X"),0,Input.GetAxis("Mouse Y"),Space.World);
}
}
}
}
You may recognize it from my previous question. I'd like to be able to snapping tiles to grid when dragging when pressing down Control key, however I don't know how to do so as tile is pretty small (1/4 of world unit, scale 0.25 in x/z). Could you help me out?
I've tried to use following code in if (Input.GetButton("Control")):
Vector3 pos = this.transform.position;
if (Input.GetAxisRaw("Mouse X")>0){
pos.x=pos.x+0.25f;
} else if (Input.GetAxisRaw("Mouse X")<0) {
pos.x=pos.x-0.25f;
}
if (Input.GetAxisRaw("Mouse Y")>0){
pos.x=pos.z+0.25f;
} else if (Input.GetAxisRaw("Mouse Y")<0) {
pos.x=pos.z-0.25f;
}
this.transform.position=pos;
but it didn't work (movement was giving strange and unpredictable results - you could move tile to the opposite side of map by moving mouse by 1 pixel).
Your answer
Follow this Question
Related Questions
Mouse Orbit snapping issues 0 Answers
Snap to grid not working for me 1 Answer
detect mouseover with grid buttons? 1 Answer
Drag to grid script help? 1 Answer
Is it possible to create a grid and highlight cells as you mouse over them? 1 Answer