Help with a movement script.


#pragma strict

function Start () {

var move : GameObject;

private var speed: float;
private var turnSpeed: float;
private var interaction: String; //interaction type
private var ship: String;
function Update () {
	interaction = GameObject.Find("First Person Controller").GetComponent(Interactions).interaction; //Check interaction
	speed = 100;
	turnSpeed = 10;
	ship = GameObject.Find("First Person Controller").GetComponent(Interactions).Helm;
	move = GameObject.Find(ship);
		if (Input.GetKey(KeyCode.W) && interaction == "Helm") {
			move.rigidbody.AddForce(move.transform.forward * speed); // Add a forward motion onto it.
			move.rigidbody.AddForce(transform.forward * speed);


I need help trying to move a ship (Sorry for some sloppy work, I haven’t clean it up yet).
Well, I can’t get it to work like I want to. I’m trying to get it to go forward from the ship front, but it doesn’t. Also I am trying to keep it on top of the water at the same time. Just won’t work like I want it to. I’ve done several things. Rigidbody won’t work for me. Cause everytime I put it on and I hit play, when the player get on the ship (he is dropped) the ship is repelled to the bottom of the ocean floor. So I lock the y position and it won’t, but when I do this I can’t move forward.

Can someone please help me with this problem.

add a

debug.drawray(move.transform.position, move.transform.forward,,10);

that should draw a line from the ship towards it’s front

the thing is i think the model you imported was imported wonky or made wonky in the program.

I dont think your forward is what you think your forward is.
I think your forward points up, or it points down.

Confirm forward isn’t in fact forward (i’m sure im right)
then go fix it in your modelling program so the positive z axis numbers go towards the bow of the ship and the negative towards the rear.

Then reimport and happy sailling :slight_smile: