- Home /
How to give jump without rigidboy by using transform?
I'm making a game where, when my game object collides with Right or Left wall, it gets jump effect. For that i am using rigidbody.addforce but problem is, when it collides with that wall while falling down, the physics engine also calculte its velocity so the effect of jump just doesn't work there. So i guess i have to remove rigidbody and work everything with transforms. But i don't really know how to do that. Any one out there? Here is my script.
public class MainScript : MonoBehaviour {
public GameObject Ninja;
public bool pingpong;
Vector3 velocity;
public float speed, jumpforce , forcefactor;
float clickforce;
void Start()
{
pingpong = true;
velocity = Vector3.right;
}
void Update ()
{
if (pingpong)
{
velocity = Vector3.left;
} else
{
velocity = Vector3.right;
}
if (Input.GetMouseButtonDown (0))
{
if(pingpong){
Ninja.rigidbody.AddForce(new Vector3(jumpforce,jumpforce,0));
}else{
Ninja.rigidbody.AddForce(new Vector3(-jumpforce, jumpforce,0));
}
}
}
void OnCollisionEnter(Collision collision)
{
if (collision.collider.CompareTag ("Rwall"))
{
Ninja.rigidbody.AddForce(new Vector3(-jumpforce,jumpforce,0));
pingpong = false;
} else if (collision.collider.CompareTag ("Lwall"))
{
Ninja.rigidbody.AddForce(new Vector3(jumpforce,jumpforce,0));
pingpong = true;
}
}
}
Answer by RharryR · Oct 29, 2015 at 04:37 AM
Im not a physics nerd or a 3D developer but applying more velocity upwards than the current downwards velocity may help. Also, you may be able to wiz up a script that temporarily sets the downward velocity to 0 while that jump effect is happening. Hope i helped :D
Your answer
Follow this Question
Related Questions
Rigidbody Sink into BoxColider 0 Answers
Move object upon hitting camera ray 1 Answer
Rigidbody.MovePosition relativeTo parent 0 Answers
Maintaining specific distance between two objects 1 Answer
Moving character on x axis 1 Answer