J'ai commencé à élaborer ce petit script qui a pour but de déterminer à chaque appui d'une touche la direction du vecteur vitesse avant chaque rebond d'un objet en mouvement rectigne qui rebondit sur des murs...mais je n'y arrive pas bien!
Voici mon script:
Code : Tout sélectionner
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
//ce script a pour but lors de l'appui d'une touche de détecter le vecteur direction que prend un objet,avant que cette dernière ne change à cause du rebond.
//au cours de sa trajectoire en supposant que son mouvement est rectiligne
//probleème : pourquoi la composante_y de V3 est non nulle?(déplacement plan)
public class detect_vecteur : MonoBehaviour
{
public GameObject obj;
//facteur permet de déterminer l'écart temporel entre time et tick
public float facteur;
private float timer,time,tick;
Vector3 V1,V2,V3;
void Awake()
{
time=Time.time;
}
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{timer += Time.deltaTime;
time=Time.time;
tick=time+facteur*Time.deltaTime;
if (Input.GetKeyDown(KeyCode.I))
{
detect_v();
}
}
Vector3 detect_v()
{
V1=obj.GetComponent<Transform>().position;
if(time>=tick)
{
V2=obj.GetComponent<Transform>().position;
}
V3=V2-V1;
print("--------------");
print("temps1: "+time);
print("vecteur1 direction de l'objet: ("+V1.x+" , "+V1.y+" , "+V1.z+")");
print("temps2: "+tick);
print("vecteur2 direction de l'objet: ("+V2.x+" , "+V2.y+" , "+V2.z+")");
print("vecteur3 direction de l'objet: ("+V3.x+" , "+V3.y+" , "+V3.z+")");
print("--------------");
return V3;
}
}
merci de votre aide