how to: Velocity or addForce to 2D (Instantiated?) Object
I'd like any easy script with
public GameObject yourObject;
or
public Rigidbody2D yourObject;
to add my prefab which is a GameObject with a sprite renderer, if needed also a Rigidbody2D (Or you have a better idea?)
I want to shoot this prefab everytime i press my button "m_AttackAxisName" in direction of my mouse position.
All i need is a script for velocity or to addForce on a prefab ( so probably have to instantiate? )
Dont forget 2D and compatible with the API of the newest Unity 5.3...
Its ok if you have a script which does not go to mouse position direction, if you got a good working one i could do that alone.
I already tried online solutions but i never can add force or do velocity to INSTANTIATED objects ;(
Answer by TBruce · May 02, 2016 at 07:35 PM
Lets suppose you have a gun and you want to shoot a bullet prefab from it
GameObject bulletInstance = Instantiate (bulletPrfab, gun.transform.position, Quaternion.Euler (new Vector3 (0, 0, 0))) as GameObject;
This creates a bulletPrefab instance as a GameObject (at gun.transform.position). GameObjects can have components added to them, like this:
Rigidbody2D rigidBody = bulletInstance.AddComponent<Rigidbody2D>();
or if the bulletPrefab already hace a Rigidbody2D then you can get it like this
Rigidbody2D rigidBody = bulletInstance.GetComponent<Rigidbody2D>();
You can then play with the rigidBody all you like.
rigidBody.AddForce(new Vector2(10.0f, 0f));
The second part was quite new for me. Now i also understand what AddComponent is for and how to correctly use GetComponent. This works perfectly. I can easily adjust it for my project. Thanks a lot, take my little reward. You are my $$anonymous$$VP of the day. Really good explanation.