Vector3 GetTarget()
{
Vector3 target;
if(vessel.targetObject!=null && vessel.targetObject.GetTransform()!=null)
{
target = vessel.targetObject.GetTransform ().position;
}
else
{
Vector3 mouseAim = new Vector3(Input.mousePosition.x/Screen.width, Input.mousePosition.y/Screen.height, 0);
Ray ray = FlightCamera.fetch.mainCamera.ViewportPointToRay(mouseAim);
RaycastHit hit;
if(Physics.Raycast(ray, out hit, maxTargetingRange, 557057))
{
target = hit.point;
try{
Part p = Part.FromGO(hit.rigidbody.gameObject);
if(p.vessel == this.vessel)
{
target = ray.direction * maxTargetingRange + FlightCamera.fetch.mainCamera.transform.position;
}
}catch(NullReferenceException){}
}else
{
target = ray.direction * maxTargetingRange + FlightCamera.fetch.mainCamera.transform.position;
}
}
localAimPoint = transform.InverseTransformPoint(target);
return target;
}