- Home /
Rotating projectile
I have a simple game where a gorilla throws a banana ... here is the overall script thus far:
var force:int; var angle:int; //var prefabBanana:Transform; var temp:int; var temptwo:int; var prefabBanana : GameObject; //var gorilla : GameObject; var elevationAngle : Vector3; var throwForce : int;
function OnGUI () {
if(GUI.Button(Rect(10, 50, 80, 20), "Launch!!")) {
Launch();
}
var text = GUI.TextField(Rect(10, 10, 50, 20), angle.ToString());
var texttwo = GUI.TextField(Rect(10, 30, 50, 20), force.ToString());
if (int.TryParse(text, temp)){
angle = Mathf.Clamp(0, temp, 360);
}
else if (text == "") angle = 0;
if (int.TryParse(texttwo, temptwo)){
force = Mathf.Clamp(0, temptwo, 360);
}
else if (texttwo == "") force = 0;
}
function Launch() {
elevationAngle = Vector3(0,0,angle);
throwForce = force *100;
var banana : GameObject;
banana = Instantiate(prefabBanana, transform.position, Quaternion.identity);
var elevation : Vector3 = Quaternion.Euler(elevationAngle) * transform.forward;
new banana.rigidbody.AddForce(elevation * throwForce);
}
It all works correctly, except I would like the banana to travel while rotating on I believe is my z-axis in a clockwise rotation. Kinda stumped on what approach to take for this ... thanks!
BTW I tried animating and was having some issues with keeping banana on the correct path... I figured there would be a simpler approach with scripting... if animation provides a faster approach I'm all ears.
Answer by DaveA · Apr 08, 2011 at 12:11 AM
I think you want this: http://unity3d.com/support/documentation/ScriptReference/Rigidbody.AddRelativeTorque.html
Answer by zmar0519 · Apr 08, 2011 at 12:56 AM
try transform.roatate. if you do use this approach, then be sure to make the collider a child, otherwise it won't work.