Polygon normal issue + a cursor track question

Hi,
I’ve been playing unity for a while and so I started making a game. I stopped at the point, where i have a player object, which to you can pass some variables(other game objects) and it will make a little space ship out of them. So the problem is, that when i want to use one mesh(for example an engine model) which isn’t symetrical, I don’t know how to mirror it on the both sides of the ship, so I don’t have to make pretty much the same model twice(like engine_left, engine_right).

I tried scaling the object to -1 in x-axis but then the normals also fliped(i predict that it may be a vertex problem, but Im not sure). I also tried to make a new mesh from the existing one, and then make something like this:

//loop with x++
 vertices.SetValue( new Vector3(vertices[x].x * -1, vertices[x].y, vertices[x].z), x);

But it also didn’t worked. I think that i must use setTriangleStrip but Im not sure how. I also tried to make it backwards(x–), but with no effect.

I was googling for it for two day like crazy and I didin’t found a proper answer.

And the second thing I would like to ask: I have a camera and a ship. I want the ship to look directly at the cursor. I’ve mady it with raycast, and it worked pretty well until i put some different geometry to the scene. While moving the ship(and also the point of view) the point from the raycast sometimes jumped too far and i didn’t liked it this way. So I made a plane which I attached to the camera, put it in the separate layer and located him in the center of the ship and toggled off rendering. And now, when raycasting, the raycast point was always at this same point on the screen as the cursor. But Im a little concerned about the plane colliding with other object.
So, is there a way to make the object look at the point on the screen(like in 2d, but from, let’s say 3/4 view)only rotating in Y-axis?

Thanks for replies.

Hope you understand :wink:

Can you just flip the normals using Mesh.normals?

No, I can’t. For normals I’m making something like this:

//normals are a Vector3[]
normals.SetValue(new Vector3(normals[x].x * -1, normals[x].y, normals[x].z), x - 1); 
mesh.normals = normals;

Anyway, all I want to do is just mirror a mesh.