Перемещение персонажа по оси камеры с помощью джойстика [Unity]
Недавно я начал практиковаться с Unity3D и создал своего рода камеру, которая медленно отстает от игрока в направлении, в котором они движутся. Мое намерение состоит в том, чтобы движение игроков основывалось на направлении, с которым сталкивается камера, а не на движение персонажей, основанное исключительно на мировом пространстве.
Если бы кто-нибудь мог помочь мне в том, как бы я поступил так, чтобы движение персонажей основывалось на оси камеры, а не на мировой оси, это было бы очень полезно.
Скрипт движения персонажа
if (gameObject.GetComponent<CharacterJumpScript>().isGrounded)
{
Vector3 posi = new Vector3((Input.GetAxis("LeftJoystickHorizontal") * characterMovement), 0.0f, (Input.GetAxis("LeftJoystickVertical") * characterMovement));
this.transform.position += posi;
}
камера следит за сценарием
private void FixedUpdate()
{
float rot = followTarget.gameObject.transform.rotation.eulerAngles.y;
print(rot);
Vector3 oldOffset = cameraOffset;
cameraOffset = Vector3.Lerp(oldOffset, new Vector3(-Mathf.Sin(Mathf.Deg2Rad * rot) * 20.0f, 8.0f, -Mathf.Cos(Mathf.Deg2Rad * rot) * 20.0f), Time.deltaTime);
Vector3 desiredPosition = followTarget.position + cameraOffset;
Vector3 smoothPosition = Vector3.Lerp(transform.position, desiredPosition, smoothSpeed);
transform.position = smoothPosition ;
transform.LookAt(followTarget);
}
Заранее большое спасибо.