- Home /
Fired object won't move
Hello, I've been looking all morning through similar posts but I haven't found a solution.
I'm trying to setup a simple 2D cannon firing a projectile across XY space. My problem is the projectile appears, but just drops down in front of the cannon. Here is my code:
var fireBall : GameObject;
var shootPoint : Transform;
var speed = 10000;
function Update (){
if(Input.GetKeyDown("space")){
Instantiate(fireBall, shootPoint.position, transform.rotation);
fireBall.rigidbody.AddForce(transform.right * speed);
}
}
I've tried transform.forward instead of .right and get the same result. My fireBall has a rigidbody with PosZ, RotX and Y locked. Thanks.
Answer by henry96 · Nov 01, 2011 at 04:41 AM
I am so sure about this one. But I think there is a solution.
if(Input.GetKeyDown("space")){
var bullet = Instantiate(fireBall, shootPoint.position, transform.rotation);
bullet.rigidbody.AddForce(transform.right * speed);
}
The thing is you need to tell the script that you want to add force to a specific object. (I think). So, we make another var to specify the object which is just instantiated. Well, I hope this helps.
Answer by GoSuNeem · Oct 31, 2011 at 09:04 PM
I would personally just attach a script for the projectile to move forward on update(right in your case I would imagine) instead of adding a force to their rigid body.
When the "fireball" gets instantiated, the "transform.rotation" would make the fireball to have the same rotation as the cannon that you are aiming with. making it fire "forward" if the cannon is rotating correct.
Good Luck!
Your answer

Follow this Question
Related Questions
2d - calculating velocity needed to pass by point 1 Answer
Rigidbody2d not falling once in the air 1 Answer
2d crane physics hinge joint 2d 0 Answers
2D walls affect my jump height 1 Answer
HingeJoint2D Teleportation 1 Answer