Grenade Question(FPS Game)

so i have a grenade that the player creates,i have it throwing properly except,i can’t throw it upwards when i look up,
code:

var radius : float = 5.0;
var power : float = 60000;
var playerScript : PlayerMovementScript;
var timer : float;
var explosion : GameObject;
var player : GameObject;

function Awake()
{
    player = GameObject.FindWithTag("Player");
	playerScript = GameObject.FindWithTag("Player").GetComponent(PlayerMovementScript);
	rigidbody.velocity = player.transform.TransformDirection(Vector3(0,0,playerScript.throwStrength));
}

function Update()
{
timer += 1;
if (timer >= 232)
{
Instantiate(explosion,transform.position,transform.rotation);
var explosionPos : Vector3 = transform.position;
var colliders : Collider[] = Physics.OverlapSphere (explosionPos, radius);
for (var hit : Collider in colliders) 
{
if (!hit)
continue;
if (hit.rigidbody)
hit.rigidbody.AddExplosionForce(power, explosionPos, radius, 10);
}
if (timer > 233)
Destroy(gameObject);
}
}

see, i don’t know what to put in the Y Axis of: rigidbody.velocity = player.transform.TransformDirection(Vector3(0,0,playerScript.throwStrength));

try this

 player.transform.TransformDirection(Vector3.Forward*playerScript.throwStrength);

Hi! Heres some simple code i made! Hope this helps you. :hushed:

var Grenade : GameObject;
var Explosion : GameObject;
var Timer : float = 5;

function Update()
{
  if(Input.GetMouseButton(0))
  {
    explode();
  }
}

function explode()
{
  yield WaitForSeconds(Timer);
  Destroy(Grenade.gameObject);
  Instantiate(Explosion,transform.position,transform.rotation);
}

quaker it didn’t work, just creates the grenade and doesn’t go anywhere

and Supervenom how is that supposed to help me? it wouldn’t go anywhere.

Lol… I see you’ve had two unhelpful responses… ill raise you one helpful response :wink:

I assume since this is FPS, that you have an FPS camera that is looking in the direction you are aiming (naturally)

in which case, just use camera.forward as your aiming direction for your grenade.

i get where your coming at. but can you put it in code please?

ok, here is how I would do it… this would be my grenade script… note: I dont use unityscript, so there may be some syntax errors.

var radius : float = 5.0;
var power : float = 60000;
var timer : float = 5.0;
var explosion : GameObject;

function ThrowGrenade(direction : Vector3, force: float)
{
  rigidbody.AddForce(direction, force);
  Invoke("Explode", timer);   
}

function Explode()
{
  Instantiate(explosion,transform.position,transform.rotation);
  var explosionPos : Vector3 = transform.position;
  var colliders : Collider[] = Physics.OverlapSphere (explosionPos, radius);

  for (var hit : Collider in colliders) 
  {
    if (!hit)
      continue;

    if (hit.rigidbody)
       hit.rigidbody.AddExplosionForce(power, explosionPos, radius, 10);

   }
}

In my player script…

var : Camera;
var : throwForce : float = 100;

function Start()
{
  _camera = Camera.main;
}

function ThrowGrenade()
{
   //instantiate grenade... im not writing this part...
   var grenade = Instantiate(.....);
   var grenadeController = (GrenadeController)grenade.GetComponent(typeof(GrenadeController));

   grenadeController.ThrowGrenade(_camera.forward, throwForce);
}

tried everything didn’t work

can you be more specific?

code wont compile? dont know where to put it? etc

it creates, doesn’t go anywhere

Possibly the force that’s the problem

try changing it to: rigidbody.AddForce(direction, force, ForceMode.Impulse);

what script language do you use?

I use c#, but thats unityscript there