- Home /
Roll ball towards Vector3 point (Rigidbody)
Hi! I'm very new with C# and I've followed a bunch of tutorials and gathered SOME knowledge about the Unity Editor and the C# language.
So I have an idea in mind and I'm trying to make it so I can move a ball which is a rigidbody via addforce and so far I've got it working but it applies more force the further away from the ball I point.
This is what I've got:
Vector3 moveToPos;
Vector3 playerPos;
void Update(){
RaycastHit hit;
Ray ray = Camera.main.ScreenPointToRay (Input.mousePosition);
if (Physics.Raycast (ray, out hit, 100) && Input.GetButton("Fire1")) {
moveToPos = hit.point;
ClickToMove();
}
}
void FixedUpdate(){
playerPos = gameObject.GetComponent<Transform> ().transform.position;
Debug.Log (playerPos);
Debug.Log(moveToPos);
}
void ClickToMove(){
rigidbody.AddForce ((moveToPos.x - playerPos.x) * 5, 0f, (moveToPos.z - playerPos.z) * 5);
}
}
So I probably need some help getting it a bit more optimized as well cause I can imagine this being a very bad solution to what I'm trying to do.
Also I'm having a bit of trouble with iTween with getting a menu to come in from the left hand side (the very edge of the menu is visible with an arrow so you know you can click it). Currently, this I've gotten to work as well but I remember getting it work much better previously, when I tried to replicate that it moves in the Y axis aswell, I only want it to swoop in from the left in the x axis.
public void MenuSlide(){
if (transform.position.x <= 150) {
Vector3 pos = transform.position;
pos.x = 300f;
iTween.MoveTo (MenuWindow, pos, 2f);
} else {
Vector3 pos = transform.position;
pos.x = 0f;
iTween.MoveTo (MenuWindow, pos, 2f);
}
}
Thanks in advance guys!
Your answer
Follow this Question
Related Questions
Get RaycastHit Local Coords (C#) 1 Answer
C# Transform modification. 1 Answer
Raycast stops when false, even in update() 1 Answer
Snapping object to raycast hit in 1 local axis. 1 Answer
addition of vector3 1 Answer