Throw a weapon in a physics arc with a lead to a target?

I am building a side-scrolling game and trying to throw grenades at characters on the screen at the same time, with the point of origin being the camera. While I’ve gotten the arc to work, it still needs a lead time in order to actually be visible on the screen. Can anyone suggest a method of doing a light arc with a lead to hit a target, using either physics or transform? I’m willing to switch if there’s a better method.

This is sort of an answer since it gets the job done, but, I too am wanting to know more about this topic. I have some basic scripting that instantiates, levels at a height of x, and shoots toward the enemy until hit, then explodes and dies.

//Shuriken.js

var Target : GameObject ;
var TargetDistance : float ;
var ShurikenSpeed : float = 50 ;
var Life : float = 3 ;

function Start () {
	Target = GameObject.Find ( "Troll" ) ;// Assign Target To ZTarget
}

function Update () {
	Life -= 1 * Time.deltaTime ;
	
	if ( Mathf.Ceil ( Life ) == 0 )
	{
		Instantiate( Resources.Load ( "Detonator-Crazysparks" ), transform.position, Quaternion.identity ) ;
		GameObject.Destroy ( gameObject ) ;
	}
	
	if ( Mathf.Ceil ( TargetDistance ) == 2 ){
		ShurikenSpeed = 10 ;
	}
	transform.rotation.y = 90 ;s
	transform.position += transform.forward * ShurikenSpeed * Time.deltaTime; // Move Entity Toward Target
	//transform.rotation = Quaternion.Slerp ( transform.rotation, Quaternion.LookRotation ( - ( transform.position - Vector3(Target.transform.position.x , Target.transform.position.y+0.1, Target.transform.position.z) ) ), 1 * Time.deltaTime ) ;
	transform.LookAt ( Target.transform ) ;
	transform.position.y = 1;	
}

function OnTriggerEnter ( collision : Collider )
{
	if ( collision.tag == "Zombie" ){
		
		Instantiate( Resources.Load ( "Detonator-Crazysparks" ), transform.position, Quaternion.identity ) ;
		GameObject.Destroy ( gameObject ) ;
	
	}
}

//NinjaController

function Update ( ) {
	if ( Input.GetKeyDown ( KeyCode.S ) && animator.GetFloat ( "CoolDown" ) < 0.1 )
		{
		
		Instantiate( Resources.Load ( "Shuriken" ), Vector3 ( transform.position.x, 1, transform.position.z), Quaternion.identity) ;
		
			
	}
}

Anyone have a better method than this, would be greatly appreciated to post ! :smiley: