- Home /
Hello, i am new to Unity and would like help making a player mechanic.
I am trying to make a spaceship game where the spaceship only moves left/right on the x-axis.
The spaceship moves forward automatically, so the user will only need to press A/D to move left/right.
I would also like the spaceship to rotate a little (not all the way. rotates on the z-axis.), this is where I am stuck.
the spaceship's position is set to 0 (neutral position) at the beginning so it just moves forward. if the user presses left/right key, the spaceship rotates (e.g. 20 degrees). when the user lets go of the key, spaceship goes back to the neutral position. This is what the script currently looks like:
//function - used for left/right
public class CharacterControls : MonoBehaviour { public float moveSpeed;
public GameObject Player;
//tranfrom, neutral
public float Neutral = 0f;
public float Transform;
public float zRotation;
public float minClamp = -20f;
public float maxClamp = 20f;
// Start is called before the first frame update
void Start()
{
moveSpeed = 50f;
}
// Update is called once per frame
void Update()
{
transform.Translate(moveSpeed * Input.GetAxis("Horizontal") * Time.deltaTime, 0f, 0f);
zRotation = Mathf.Clamp(zRotation - Input.GetAxis("Horizontal") * moveSpeed, minClamp, maxClamp);
transform.eulerAngles = new Vector3(0.0f, zRotation);
}
}
// if keycode (A/D), rotate mesh plane(transform), rotates on z axis. // lerp angle. // before if statement, on start, vector3 transform rotation of plane object. // if player presses left key, lerp quickly from roational values stored on start to (e.g) 20 degrees. // if get get key up (A/D), lerp from 20 degree angle to neutral value from start. // lerp - smoothens rotation.
// on start, neutral position (what its named) // when press left ()
//instantiate