Avec ce script basique,j'exerce un mouvement circulaire sur un objet.
Code : Tout sélectionner
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
//ça saute dès changement de vitesse(le mouvement circulaire n'est pas continu)!
public class essai : MonoBehaviour {
public GameObject obj;
public Text speedText;
public float rayonl,acceleration1;
float TimeCounter,vitesse;
public KeyCode accel1;
public KeyCode decel1;
// Use this for initializationTimeCounter);
void Start () {
vitesse=0;
}
// Update is called once per frame
void Update () {
print ("vitesse" + vitesse);
speedText.text ="vitesse: "+vitesse.ToString("N")+ " km/h";
TimeCounter+=Time.deltaTime;
if (Input.GetKeyDown(accel1))
{ vitesse += acceleration1; }
if (Input.GetKeyDown(decel1))
{ vitesse-= acceleration1; }
float x = rayon * Mathf.Sin (vitesse * TimeCounter);//l'argument de Mathf.Sin est en radians
float y = 0;
float z = rayon * Mathf.Cos (vitesse * TimeCounter);//l'argument de Mathf.Cos est en radians
obj.transform.position=new Vector3(x,y,z);
}
}
problème mathématique:
A chaque incrémentation,l'objet saute(change de position brutalement sur sa même orbite circulaire) au cours de son mouvement:le mouvement n'est pas continu bien que circulaire.
Bien que mathématicien,je n'arrive à résoudre ce problème(ça ne doit plus sauter!)
Quelqu'un peut-il le résoudre?
merci de votre aide