Je travail sur un mini jeu de sphère qui roule et se déplace dans un décor.
Ma camera suit le déplacement de la sphère(en faite elle suit un cube enfant de la sphère) je pilote la rotation de la caméra avec deux touches de manière indépendante.
Lorsque la sphère sort du parcours je réinitialise sa position au niveau du dernier check-point.
Mon soucis c'est que je n'arrive pas a repositionner ma caméra dans l'axe de la sphère.
voici le code de mon controler pour la caméra.
Mon Quaternion.LookRotation(direction) n'a aucun impacte sur la caméra.
Merci d'avance pour vos conseils ou solutions.
Code : Tout sélectionner
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CameraControler : MonoBehaviour {
public Transform player;
private Vector3 offset;
public static bool initCamera;
private Quaternion startRotation;
private float currentRotX;
private float currentRotY;
private float currentRotZ;
private Vector3 direction;
// Use this for initialization
void Start () {
offset = transform.position - player.transform.position;
currentRotX = player.transform.rotation.eulerAngles.x;
currentRotY = player.transform.rotation.eulerAngles.y;
currentRotZ = player.transform.rotation.eulerAngles.z;
}
// Update is called once per frame
void LateUpdate () {
transform.position = player.transform.position +offset;
}
void FixedUpdate()
{
float rotation = Input.GetAxis("Rotation");
offset = Quaternion.AngleAxis(Input.GetAxis("Rotation") * 2, Vector3.up) * offset;
transform.position = player.position + offset;
transform.LookAt(player.position);
if (initCamera)
{
offset = Quaternion.AngleAxis(0, Vector3.down) * offset;
direction = player.position - transform.position;
transform.rotation = Quaternion.LookRotation(direction);
}
}
}