How to make a space ship fly after crosshair?

I’m trying to make a game like this: Star Wars Rogue Squadron [N64] :: Speed Run (1:01:17) by Evan K.N. - YouTube but I can’t make my space ship fly in the direction that I point my mouse towards (crosshair). I’ve tried to use different scripts but I can’t make anything work… I’ve been stuck at this for at least 2 hours now :confused:

using UnityEngine;
using System.Collections;

public class LookAtMouse : MonoBehaviour {

public GameObject player;
// speed is the rate at which the object will rotate
public float speed;

void FixedUpdate() {
    // Generate a plane that intersects the transform's position with an upwards normal.
    Plane player = new Plane(Vector3.up, transform.position);

    // Generate a ray from the cursor position
    Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);

    // Determine the point where the cursor ray intersects the plane.
    // This will be the point that the object must look towards to be looking at the mouse.
    // Raycasting to a Plane object only gives us a distance, so we'll have to take the distance,
    //   then find the point along that ray that meets that distance.  This will be the point
    //   to look at.
    float hitdist = 0.0f;
    // If the ray is parallel to the plane, Raycast will return false.
    if (player.Raycast(ray, out hitdist)) {
        // Get the point along the ray that hits the calculated distance.
        Vector3 targetPoint = ray.GetPoint(hitdist);

        // Determine the target rotation.  This is the rotation if the transform looks at the target point.
        Quaternion targetRotation = Quaternion.LookRotation(targetPoint - transform.position);

        // Smoothly rotate towards the target point.
        transform.rotation = Quaternion.Slerp(transform.rotation, targetRotation, speed * Time.deltaTime);
    }
}

}

Hey there dude. :slight_smile: From what you’re describing, you want the reticle (aka. target) to move the ship like Star Fox 64? (Or any star fox game i’ve seen anyway… :D)

In such a case, you would first convert your screen corrdinates into normalized viewport (0…1 range) ones, then take Vector2(0.5,0.5) away from your reticle’s coords. This will give you a vector you can then transform into some other coordinate space. (Not sure which coordinate space though… will have to do some research on that)