Jaxor
1
Hello everybody,
I’m trying to make my character tilting and rotating at the same time. And I have a little problem with rotation. Tilt function works well (character turns back to the right position), but the problem is: character turns back with its rotation to the first position too. Like a plane with an autopilot
Have you any sugestions to solve this problem? Thank you for help 
Js
var speed = 1.0;
var smooth = 2.0;
var tiltAngle = 30.0;
function Update () {
transform.Translate(Vector3.forward * Time.deltaTime * speed);
var tiltAroundZ = Input.GetAxis("Horizontal") * tiltAngle;
var tiltAroundX = Input.GetAxis("Vertical") * tiltAngle;
var tiltAroundY = Input.GetAxis("Horizontal") * tiltAngle;
var target = Quaternion.Euler (tiltAroundX, -tiltAroundY, tiltAroundZ);
transform.rotation = Quaternion.Slerp(transform.rotation, target,
Time.deltaTime * smooth);
}
Not sure if this is what you are going for since you don’t provide a clear vision for the behavior. To rotate on the ‘y’, you will need to add a variable that you increment and decrement from each frame:
#pragma strict
var speed = 1.0;
var smooth = 2.0;
var tiltAngle = 30.0;
var ySpeed = 2.0;
private var yRotation = 0;
function Update () {
transform.Translate(Vector3.forward * Time.deltaTime * speed);
var tiltAroundZ = Input.GetAxis("Horizontal") * tiltAngle;
var tiltAroundX = Input.GetAxis("Vertical") * tiltAngle;
yRotation -= Input.GetAxis("Horizontal") * ySpeed;
var target = Quaternion.Euler (tiltAroundX, yRotation, tiltAroundZ);
transform.rotation = Quaternion.Slerp(transform.rotation, target, Time.deltaTime * smooth);
}