- Home /
Store First OnMouseDown position
Hi all,
I'm making a house building system, what I would like to do is to store the first OnMouseDown(0) position as ("first"), so I can call back that position later, so when I OnMouseDown(1) the wall finishes off at that "first" position.
This seems like it would be pretty easy to implement, but I'm only good at butchering code not writing it.
Thanks in advance.
void getInput() {
if (Input.GetMouseButtonDown (0)) {
setStart ();
} else if (Input.GetMouseButtonDown (1)) {
setEnd ();
} else {
if (creating) {
adjust ();
}
}
if (Input.GetKey (KeyCode.X)) {
zSnapping = true;
} else if (Input.GetKey (KeyCode.X)) {
zSnapping = false;
}
if (Input.GetKey (KeyCode.Y)) {
xSnapping = true;
} else {
xSnapping = false;
}
}
void setStart() {
creating = true;
//start.transform.position = gridSnap(getWorldPoint());
start.transform.position = getWorldPoint();
wall = (GameObject)Instantiate(wallPrefab, start.transform.position, Quaternion.identity);
start = (GameObject)Instantiate (start, start.transform.position, Quaternion.identity);
}
void setEnd() {
creating = false;
//end.transform.position = gridSnap(getWorldPoint());
end.transform.position = getWorldPoint();
end = (GameObject)Instantiate (end, end.transform.position, Quaternion.identity);
}
void adjust() {
//end.transform.position = gridSnap(getWorldPoint());
end.transform.position = getWorldPoint();
if(xSnapping) {
end.transform.position = new Vector3(start.transform.position.x, end.transform.position.y, end.transform.position.z);
}
if(zSnapping) {
end.transform.position = new Vector3(end.transform.position.x, end.transform.position.y, start.transform.position.z);
}
adjustWall();
}
void adjustWall() {
start.transform.LookAt(end.transform.position);
end.transform.LookAt(start.transform.position);
float distance = Vector3.Distance(start.transform.position, end.transform.position);
wall.transform.position = start.transform.position + distance/2 * start.transform.forward;
wall.transform.rotation = start.transform.rotation;
wall.transform.localScale = new Vector3(wall.transform.localScale.x, wall.transform.localScale.y, distance);
}
Comment