# Rotation and force?

Hello, I have two questions regarding force and rotation? 1: Is there anyway to have force dependent on rotation (the object moves towards its relative forward direction, etc.) rather than vectors (my current script is this):

``````function Update() {
if (Input.GetButton ("Fire1")) {
rigidbody.velocity = Vector3(0,0,40);
}}

``````

2: Is there any way to have an continually object rotate from -45 degrees to 45 degrees?

Its for a bowling game is that helps put the questions into context. thanks.

To add a force in the direction of the object's own forward direction, you can use AddForce and use transform.forward as the vector direction. This vector (along with .right and .up) has a length of 1, so you can multiply it by any value you like to give the total power of the force applied. For example:

``````var power = 40.0;

function Update() {
if (Input.GetButtonDown("Fire1")) {
}
}

``````

To rotate an object using physics, you generally should use the rotational equivalent of AddForce, which is AddTorque. However, if you want to precisely rotate an object from -45 to 45 degrees, this might be better done without using the physics engine (since using physics forces tends to yield imprecise results).

I'm going to take a wild guess here and assume this is a power meter needle for a power gauge which goes from -45 to 45.

To implement this, I would have the power range go from 0-1 while you hold the fire button down, and then add the force when you release the button. The code might look something like this:

``````// public vars (settable in inspector)
var powerNeedle : Transform;
var maxPower = 40.0;
var powerMeterSpeed = 0.2;

// private vars (for internal use)
private var powerFactor = 0.0;

function Update() {

if (Input.GetButtonDown("Fire1")) {
// start the meter at 0 when the button is first pressed
powerFactor = 0.0;
}

if (Input.GetButton("Fire1")) {
// increase power factor smoothly while button is held down
powerFactor += Time.time * powerMeterSpeed;
}

if (Input.GetButtonUp("Fire1") || powerFactor >= 1) {
// apply force when button is released, or power reaches max