Вы ознакомились с руководством по космическим шутерам от Unity?
https://unity3d.com/learn/tutorials/projects/space-shooter-tutorial/moving-player?playlist=17147
Это кодируется в более старой версии Unity (Unity версия 4), но они проверяют, чтобы убедиться, что это совместимо с более новыми версиями (на сегодняшний день Unity версия 5.1). Я скопировал код, который они используют в видео, если ссылка изменится.
using UnityEngine;
using System.Collections;
[System.Serializable]
public class Boundary
{
public float xMin, xMax, zMin, zMax;
}
public class PlayerController : MonoBehaviour
{
public float speed;
public float tilt;
public Boundary boundary;
void FixedUpdate ()
{
float moveHorizontal = Input.GetAxis ("Horizontal");
float moveVertical = Input.GetAxis ("Vertical");
Vector3 movement = new Vector3 (moveHorizontal, 0.0f, moveVertical);
rigidbody.velocity = movement * speed;
rigidbody.position = new Vector3
(
Mathf.Clamp (rigidbody.position.x, boundary.xMin, boundary.xMax),
0.0f,
Mathf.Clamp (rigidbody.position.z, boundary.zMin, boundary.zMax)
);
rigidbody.rotation = Quaternion.Euler (0.0f, 0.0f, rigidbody.velocity.x * -tilt);
}
}
rigidBody.rotation
будет для наклона / крена, показанного на картинке, которую вы назначили, но в настоящее время не изменит направление вращения корабля вперед. нажатие клавиш со стрелками влево и вправо повлияет на скорость движения твердого тела и вызовет наклон, а после отпускания вернется в центральное положение корабля.